Unsubscribe of durable topic fails
carstenrudat Jun 15, 2009 12:12 PMHi 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