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 2010/09/01 12:25:42 UTC
[jira] Resolved: (AMQ-2831) Set ClientID - InvalidClientIDException
with http transport
[ https://issues.apache.org/activemq/browse/AMQ-2831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully resolved AMQ-2831.
-----------------------------
Resolution: Fixed
The http transport now has an inactivity monitor, configure the http transport url with a low inactivity timeout value and the server end of the http transport will timeout when the client jvm crashes.
{code}http://localhost:61617??transport.readCheckTime=4000&transport.initialDelayTime=4000{code}
> Set ClientID - InvalidClientIDException with http transport
> -----------------------------------------------------------
>
> Key: AMQ-2831
> URL: https://issues.apache.org/activemq/browse/AMQ-2831
> Project: ActiveMQ
> Issue Type: Bug
> Components: Transport
> Affects Versions: 5.3.2
> Reporter: Colombo Marco
> Assignee: Gary Tully
> Priority: Blocker
> Fix For: 5.4.1
>
> Attachments: broker-config.xml, TestVaseClientID.zip
>
>
> I have a client that do a durable subscriptio to a topic.
> It register with a static client id.
> After a connectivity loss (an so a new re-connection), this exception is thrown and connection cannot be
> re-established:
> 2010-07-15 13:49:04,700 ERROR - javax.jms.InvalidClientIDException: Broker: localhost - Client: (SchedulerId = '1') already connected from blockingQueue_8461294
> at org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:216)
> at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
> at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
> at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:77)
> at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
> at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
> ....
> This is not possible, because is the only client with that name and previos connection was closed . .close().
> If I kill all the clients an I leave active only the broker,
> If I try to reconnect using http (or tcp) I get the same error.
> So client is not de-registered.
> This appens also if I use failover protocol. After client kill/restart. Same exception is raised (javax.jms.InvalidClientIDException - with the clientID of the killed client).
> I have to restart broker in order to register again the client.
> A test case is attached.
> If you connect to http the first time, connection is ok.
> If you kill the JVM and the try to restart the test case, 'myclid already connected from blockingQueue_' is always raised. Also after some hours. I have to restart the broker in order to have a new conection with that client id.
> This test simulate a JVM crash with no resource cleanup.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.