You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2009/05/01 17:45:38 UTC

[jira] Created: (AMQ-2241) On failover it is possible to get duplicate connections broker side which can result in: Cannot add a consumer to a session that had not been registered:

On failover it is possible to get duplicate connections broker side which can result in: Cannot add a consumer to a session that had not been registered:
---------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: AMQ-2241
                 URL: https://issues.apache.org/activemq/browse/AMQ-2241
             Project: ActiveMQ
          Issue Type: Bug
          Components: Transport
    Affects Versions: 5.2.0
            Reporter: Gary Tully
            Assignee: Gary Tully
             Fix For: 5.3.0


localhost Cannot add a consumer to a session that had not been registered: ID:localhost-40888-1241048176812-0:19:-1
	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
	at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1255)
	at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:50)
	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1359)
	at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:300)
	at org.apache.activemq.ra.ManagedConnectionProxy.createSessionProxy(ManagedConnectionProxy.java:119)
	at org.apache.activemq.ra.ManagedConnectionProxy.createSession(ManagedConnectionProxy.java:105)
	at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
	at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:462)
	... 35 more
Caused by: java.lang.IllegalStateException: localhost Cannot add a consumer to a session that had not been registered: ID:localhost-40888-1241048176812-0:19:-1
	at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:540)
	at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
	at java.lang.Thread.run(Thread.java:619)


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-2241) On failover it is possible to get duplicate connections broker side which can result in: Cannot add a consumer to a session that had not been registered:

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-2241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51477#action_51477 ] 

Gary Tully commented on AMQ-2241:
---------------------------------

problem is that on a duplicate connection, for instance on failover but when the broker has not yet disposed of its connection info, it is possible to get a duplicate connection request. the state is reset to have the second connection take over which is ok, but the default session is not recreated on the reset state so the submission of the advisory consumer fails with no session.

> On failover it is possible to get duplicate connections broker side which can result in: Cannot add a consumer to a session that had not been registered:
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2241
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2241
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 5.2.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.3.0
>
>
> localhost Cannot add a consumer to a session that had not been registered: ID:localhost-40888-1241048176812-0:19:-1
> 	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
> 	at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1255)
> 	at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:50)
> 	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1359)
> 	at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:300)
> 	at org.apache.activemq.ra.ManagedConnectionProxy.createSessionProxy(ManagedConnectionProxy.java:119)
> 	at org.apache.activemq.ra.ManagedConnectionProxy.createSession(ManagedConnectionProxy.java:105)
> 	at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
> 	at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:462)
> 	... 35 more
> Caused by: java.lang.IllegalStateException: localhost Cannot add a consumer to a session that had not been registered: ID:localhost-40888-1241048176812-0:19:-1
> 	at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:540)
> 	at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> 	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> 	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
> 	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
> 	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> 	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
> 	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
> 	at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-2241) On failover it is possible to get duplicate connections broker side which can result in: Cannot add a consumer to a session that had not been registered:

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-2241.
-----------------------------

    Resolution: Fixed

resolved in r771718

> On failover it is possible to get duplicate connections broker side which can result in: Cannot add a consumer to a session that had not been registered:
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2241
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2241
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 5.2.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.3.0
>
>
> localhost Cannot add a consumer to a session that had not been registered: ID:localhost-40888-1241048176812-0:19:-1
> 	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
> 	at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1255)
> 	at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:50)
> 	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1359)
> 	at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:300)
> 	at org.apache.activemq.ra.ManagedConnectionProxy.createSessionProxy(ManagedConnectionProxy.java:119)
> 	at org.apache.activemq.ra.ManagedConnectionProxy.createSession(ManagedConnectionProxy.java:105)
> 	at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
> 	at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:462)
> 	... 35 more
> Caused by: java.lang.IllegalStateException: localhost Cannot add a consumer to a session that had not been registered: ID:localhost-40888-1241048176812-0:19:-1
> 	at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:540)
> 	at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> 	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> 	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
> 	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
> 	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> 	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
> 	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
> 	at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.