[JBoss Messaging] - Completely confused by client failover
by chtimi2
First i will explain my use case so that you can get a general sense of what i'm trying to do:
1/ Use case
I have a clustered JBoss 5.1.0 ear application (with default JBM so 1.4?).
A Swing application is connected to both nodes and receives JMS notifications via a ClusteredXAConnectionFactory. When one of of the nodes fails, the other detects the change in topology and posts a "LostNode" message on a topic which the client listens to.
2/ Problem
The failover sometimes works, sometimes not (maybe depending on which node the connection was last pointing to?)
3/ Things i'm confused about:
* The FailoverOnNodeLeave attribute in oracle-persistence-service.xml. From what i read it forces same failover on Ctrl-C as on brutal kill-9 or crash?
* Do i have to do anything in the client (interceptor, exception listener,...)? I'm getting mixed messages, so is the failover transparent or not? If it's not, what do i need to do (the connection is injected via Spring if it makes any difference)
* Does specifying ClusteredXAConnectionFactory/ClusteredConnectionFactory/others in the client make any difference? I don't see what XA or not would change for a remote client but i could be horribly wrong?
Any examples of a transparently reconnecting client? I see only xml files in the JBoss messaging examples directory?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4237704#4237704
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4237704
17 years, 1 month
[JBoss Messaging] - Unsubscribe of durable topic fails
by CarstenRudat
Hi all,
I have JBoss Messageing 1.4.1 with JBoss Remoting 2.5.1 running on JBoss AS 4.2.3.GA (all config) and I have serveral clients connected to a durable topic.
Sometimes, when a client application closes and therefore unsubscribes from the topic, I have a server-side-exception:
| 2009-06-12 22:17:16,795 ERROR [org.jboss.messaging.util.ExceptionUtil]
| SessionEndpoint[q42-mnskbvvf-1-i3sj4vvf-52puvc-110j3] unsubscribe
| [a62-v72bcvvf-1-i3sj4vvf-52puvc-110j3]
| java.lang.IllegalStateException: Cannot remove references while
| deliveries are in progress (Channel 721), there are 5
| at
| org.jboss.messaging.core.impl.ChannelSupport.removeAllReferences(ChannelSupport.java:402)
| at
| org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.internalRemoveBinding(MessagingPostOffice.java:1939)
| at
| org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.removeBinding(MessagingPostOffice.java:474)
| at
| org.jboss.jms.server.endpoint.ServerSessionEndpoint.unsubscribe(ServerSessionEndpoint.java:831)
| at
| org.jboss.jms.server.endpoint.advised.SessionAdvised.org$jboss$jms$server$endpoint$advised$SessionAdvised$unsubscribe$aop(SessionAdvised.java:135)
| at
| org.jboss.jms.server.endpoint.advised.SessionAdvised$unsubscribe_8775578479443985821.invokeNext(SessionAdvised$unsubscribe_8775578479443985821.java)
| at
| org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
| at
| org.jboss.jms.server.endpoint.advised.SessionAdvised$unsubscribe_8775578479443985821.invokeNext(SessionAdvised$unsubscribe_8775578479443985821.java)
| at
| org.jboss.jms.server.endpoint.advised.SessionAdvised.unsubscribe(SessionAdvised.java)
| at
| org.jboss.jms.wireformat.SessionUnsubscribeRequest.serverInvoke(SessionUnsubscribeRequest.java:74)
| at
| org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
| at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908)
| at
| org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742)
| at
| org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695)
| at
| org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:549)
| at
| org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230)
|
But the client received its last message a long time ago. That means JBoss has stopped the delivery to that particular client. There is a JMS-Exception-Handler registered on the client that reconnects, if any problems on the underlying communication occurs, but this Handler is not called.
How can I turn on more logging, to see why JBoss Messaging does not deliver the last messages?
And is there a way to say "unsubscribe and discard undelivered messages"?
Your help is very appreciated.
Thx,
Carsten
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4237701#4237701
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4237701
17 years, 1 month