The cluster consist of 2 identical nodes. The Client connects to the Cluster using a
ClusteredConnection.
It then creates a Temporary destination for replyTo on node1. Node1 is killed, and the
ClusteredConnection tries a failover to node2, but failes to lookup the Temporary
Destination with the following exception:
| 30276 [main] ERROR org.jboss.jms.client.FailoverCommandCenter - Failover failed
| javax.jms.InvalidDestinationException: No such destination:
JBossTemporaryQueue[f-46mldp6f-1-75lldp6f-izthbc-273333a] has it been deployed?
| at
org.jboss.jms.server.endpoint.ServerSessionEndpoint.createConsumerDelegateInternal(ServerSessionEndpoint.java:1872)
| at
org.jboss.jms.server.endpoint.ServerSessionEndpoint.createConsumerDelegate(ServerSessionEndpoint.java:245)
| at
org.jboss.jms.server.endpoint.advised.SessionAdvised.org$jboss$jms$server$endpoint$advised$SessionAdvised$createConsumerDelegate$aop(SessionAdvised.java:87)
| at
org.jboss.jms.server.endpoint.advised.SessionAdvised$createConsumerDelegate_8721389917985689973.invokeNext(SessionAdvised$createConsumerDelegate_8721389917985689973.java)
| at
org.jboss.jms.server.container.SecurityAspect.handleCreateConsumerDelegate(SecurityAspect.java:123)
| 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:597)
| at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
| at
org.jboss.jms.server.endpoint.advised.SessionAdvised$createConsumerDelegate_8721389917985689973.invokeNext(SessionAdvised$createConsumerDelegate_8721389917985689973.java)
| at
org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
| at
org.jboss.jms.server.endpoint.advised.SessionAdvised$createConsumerDelegate_8721389917985689973.invokeNext(SessionAdvised$createConsumerDelegate_8721389917985689973.java)
| at
org.jboss.jms.server.endpoint.advised.SessionAdvised.createConsumerDelegate(SessionAdvised.java)
| at
org.jboss.jms.wireformat.SessionCreateConsumerDelegateRequest.serverInvoke(SessionCreateConsumerDelegateRequest.java:100)
| at
org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:144)
| 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)
|
The lookup in createConsumerDelegateIneral is looking for the Destination in the
DestinationManager.
| ManagedDestination mDest = dm.getDestination(jmsDestination.getName(),
jmsDestination.isQueue());
| if (mDest == null)
| {
| throw new InvalidDestinationException("No such destination: " +
jmsDestination + " has it been deployed?");
| }
|
As far as I have debuged; the Temporary Destination MappingInfo is sent to node2 so the
Destination
is bound in memory, but not in the DestinationManager.
-aslak-
(if Destinations had been bound to the DestinationManager, shouldn't deploying
destinations only on one node also work?)
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085239#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...