[jboss-user] [Clustering/JBoss] - HAJNDI not handling failover

warmachine do-not-reply at jboss.com
Fri Jul 31 14:23:12 EDT 2009


I have two JBoss 4.2.3GA nodes in a cluster with a Tomcat 5 application calling SLSBs on them.  Standard stuff.  If either node is down, the client can find the other when it first needs a service.  If both are up, the client finds the first one to use a service, then the first node is shut down, the client fails with a CannotConnectException despite the second node still being available.

I can reproduce the problem on my local PC and logs like the following show the nodes recognise the other cluster member as it's started and shutdown.
18:45:30,405 INFO  [UefaPartition] New cluster view for partition UefaPartition (id: 3, delta: 1) : [127.0.0.1:1299, 127.0.0.1:1099]
  | 18:45:30,405 INFO  [UefaPartition] I am (127.0.0.1:1299) received membershipChanged event:
  | 18:45:30,405 INFO  [UefaPartition] Dead members: 0 ([])
  | 18:45:30,405 INFO  [UefaPartition] New Members : 1 ([127.0.0.1:1099])
  | 18:45:30,405 INFO  [UefaPartition] All Members : 2 ([127.0.0.1:1299, 127.0.0.1:1099])
  | 18:48:40,850 INFO  [UefaPartition] New cluster view for partition UefaPartition (id: 4, delta: -1) : [127.0.0.1:1299]
  | 18:48:40,850 INFO  [UefaPartition] I am (127.0.0.1:1299) received membershipChanged event:
  | 18:48:40,850 INFO  [UefaPartition] Dead members: 1 ([127.0.0.1:1099])
  | 18:48:40,850 INFO  [UefaPartition] New Members : 0 ([])
  | 18:48:40,850 INFO  [UefaPartition] All Members : 1 ([127.0.0.1:1299])

The client fails with the following.
Caused by: org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection for InvokerLocator [socket://127.0.0.1:4446/?dataType=invocation&enableTcpNoDelay=true&marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller&socketTimeout=600000&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller]
  | 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:579)
  | 	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
  | 	at org.jboss.remoting.Client.invoke(Client.java:1634)
  | 	at org.jboss.remoting.Client.invoke(Client.java:548)
  | 	at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:184)
  | 	at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
  | 	at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)
  | 	at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
  | 	at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
  | 	at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
  | 	at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
  | 	at $Proxy14.getStatusSuccessFail(Unknown Source)

This doesn't make sense as the client proxy should know there is another member of the cluster and try that.  What am I missing?

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4247340#4247340

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4247340



More information about the jboss-user mailing list