JBoss 4.2.2 GA with JBM 1.4.0.SP1 configured as per documentation, deployed identically
over a two node cluster (ServerPeers 0 and 1 respectively).
I send 1000 messages to a queue. An MDB is listening to the queue, and it redispatches
each message to one of 50 topics (randomly).
Each topic has a durable subscription client that is already listening before the message
sending begins.
At some point after messages have started being sent, redispatched and received, I kill
the receiving node in the cluster with a kill -9. Sometimes failover works, but in my
experience this is not the norm. More often I get a 'Failover failed'. See
stacktrace below. It's complaining about duplicate clientIDs, but it isn't my code
that is setting them, so I don't see what I can do. Any ideas?
| 638453 [Thread-259] ERROR org.jboss.jms.client.FailoverCommandCenter - Failover
failed
| javax.jms.IllegalStateException: Cannot set clientID, already set as
DurableSubscriberExample31
| at
org.jboss.jms.server.endpoint.ServerConnectionEndpoint.setClientID(ServerConnectionEndpoint.java:309)
| at
org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$setClientID$aop(ConnectionAdvised.java:85)
| at
org.jboss.jms.server.endpoint.advised.ConnectionAdvised$setClientID_N1479100880614063379.invokeNext(ConnectionAdvised$setClientID_N1479100880614063379.java)
| at
org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
| at
org.jboss.jms.server.endpoint.advised.ConnectionAdvised$setClientID_N1479100880614063379.invokeNext(ConnectionAdvised$setClientID_N1479100880614063379.java)
| at
org.jboss.jms.server.endpoint.advised.ConnectionAdvised.setClientID(ConnectionAdvised.java)
| at
org.jboss.jms.wireformat.ConnectionSetClientIDRequest.serverInvoke(ConnectionSetClientIDRequest.java:73)
| at
org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
| at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:769)
| at
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
| at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:387)
| at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
| at
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:163)
| at org.jboss.remoting.Client.invoke(Client.java:1634)
| at org.jboss.remoting.Client.invoke(Client.java:548)
| at org.jboss.remoting.Client.invoke(Client.java:536)
| at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:187)
| at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:158)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate.org$jboss$jms$client$delegate$ClientConnectionDelegate$setClientID$aop(ClientConnectionDelegate.java:228)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate$setClientID_N1479100880614063379.invokeNext(ClientConnectionDelegate$setClientID_N1479100880614063379.java)
| at
org.jboss.jms.client.container.ConnectionAspect.handleSetClientID(ConnectionAspect.java:105)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate$setClientID_N1479100880614063379.invokeNext(ClientConnectionDelegate$setClientID_N1479100880614063379.java)
| at
org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:114)
| at
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate$setClientID_N1479100880614063379.invokeNext(ClientConnectionDelegate$setClientID_N1479100880614063379.java)
| at
org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
| at
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate$setClientID_N1479100880614063379.invokeNext(ClientConnectionDelegate$setClientID_N1479100880614063379.java)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate.setClientID(ClientConnectionDelegate.java)
| at
org.jboss.jms.client.delegate.ClientConnectionDelegate.synchronizeWith(ClientConnectionDelegate.java:120)
| at
org.jboss.jms.client.FailoverCommandCenter.failureDetected(FailoverCommandCenter.java:145)
| at
org.jboss.jms.client.container.ConnectionFailureListener.handleConnectionException(ConnectionFailureListener.java:62)
| at
org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener.handleConnectionException(ConsolidatedRemotingConnectionListener.java:81)
| at org.jboss.remoting.ConnectionValidator$1.run(ConnectionValidator.java:452)
|
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4110242#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...