[jboss-jira] [JBoss JIRA] Commented: (JBMESSAGING-1462) Message expiration is not correctly managed

Yong Hao Gao (JIRA) jira-events at lists.jboss.org
Mon Sep 5 00:16:26 EDT 2011


    [ https://issues.jboss.org/browse/JBMESSAGING-1462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12626144#comment-12626144 ] 

Yong Hao Gao commented on JBMESSAGING-1462:
-------------------------------------------

Hi,

I think this is expected. The JMS api doc says the following about the unsubscribe method:

"It is erroneous for a client to delete a durable subscription while there is an active TopicSubscriber for the subscription, or while a consumed message is part of a pending transaction or has not been acknowledged in the session."

So I think the client should acked all its messages before doing the unsubscription.

I'm going to reject it.

Thanks,
Howard




> Message expiration is not correctly managed
> -------------------------------------------
>
>                 Key: JBMESSAGING-1462
>                 URL: https://issues.jboss.org/browse/JBMESSAGING-1462
>             Project: JBoss Messaging
>          Issue Type: Bug
>          Components: Messaging Core
>    Affects Versions: 1.4.1.GA
>         Environment: JBAS 5.0GA, JBM 1.4.1GA, persistence on Oracle 10i
>            Reporter: Ivan Rododendro
>            Assignee: Yong Hao Gao
>             Fix For: 1.4.0.SP3.CP15, 1.4.8.SP3
>
>         Attachments: JBMESSAGING-1462.java
>
>
> 1) A topic is created 
> 2) A durable subscriber is created fro the topic 
> 3) A message is sent on the topic 
> 4) The durable subscriber pulls the message from the topic ( receive() ) but don't ack 
> 5) The durable subscriber is closed, subscriber session.unsuscribe(name) is called but an exception is thrown and then the subsciber session is closed. 
> As result of this a message, expired, with DELIVERY_COUNT = 1 will remain on the database forever. 
> The stacktrace of the exception thrown: 
> java.lang.IllegalStateException: Cannot remove references while deliveries are in progress (Channel 521), there are 1
>         at org.jboss.messaging.core.impl.ChannelSupport.removeAllReferences(ChannelSupport.java:394)
>         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:829)
>         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.invokeTarget(SessionAdvised$unsubscribe_8775578479443985821.java)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
>         at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>         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)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list