You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Janet Cooper (JIRA)" <ji...@apache.org> on 2006/06/04 16:47:51 UTC
[jira] Commented: (AMQ-734) Network connections do not reconnect
when using static: with failover=true
[ https://issues.apache.org/activemq/browse/AMQ-734?page=comments#action_36230 ]
Janet Cooper commented on AMQ-734:
----------------------------------
(using active-mq-snapshot-30-may / linux)
Some comments:
Given a network of brokers in a demand forwarding environment: Broker A + Broker B in a _real_ network on different hosts (a lot of bugs are not reproducable in a localhost-environment)
UseCase 1:
Start Broker A
Start Broker B
Do a network-split (aka "unplugging the cable") [There is an exception attached that will be generated in such a case]
Create new message m1 on Broker A (that is stored for later delivery)
Reconnect network
Brokers will reconnect with exception (see below)
It is actually possible to LOSE MESSAGES that way. I found out that under certain circumstances message m1 will not be delivered. Even restarting every broker does not help in such a case.
EXCEPTION ON UPLUGGING:
INFO Service:185 - Async error occurred: java.lang.IllegalStateException: Cannot lookup a connection that had not been registered: ID:develop-43781-1149388950450-3:0
java.lang.IllegalStateException: Cannot lookup a connection that had not been registered: ID:develop-43781-1149388950450-3:0
at org.apache.activemq.broker.AbstractConnection.lookupConnectionState(AbstractConnection.java:241)
at org.apache.activemq.broker.AbstractConnection.processRemoveConnection(AbstractConnection.java:519)
at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:59)
at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:76)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
at org.apache.activemq.network.DemandForwardingBridgeSupport$2.transportInterupted(DemandForwardingBridgeSupport.java:138)
at org.apache.activemq.transport.TransportFilter.transportInterupted(TransportFilter.java:98)
at org.apache.activemq.transport.TransportFilter.transportInterupted(TransportFilter.java:98)
at org.apache.activemq.transport.failover.FailoverTransport.handleTransportFailure(FailoverTransport.java:223)
at org.apache.activemq.transport.failover.FailoverTransport.access$300(FailoverTransport.java:53)
at org.apache.activemq.transport.failover.FailoverTransport$1.onException(FailoverTransport.java:111)
at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:94)
at org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:120)
at org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:149)
at org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:100)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:156)
at java.lang.Thread.run(Thread.java:595)
EXCEPTION ON RECONNECTING:
INFO Service:185 - Async error occurred: javax.jms.InvalidClientIDException: Broker: develop - Client: NC_testbroker_inbounddevelop already connected
javax.jms.InvalidClientIDException: Broker: develop - Client: NC_testbroker_inbounddevelop already connected
at org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:176)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:69)
at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:69)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:69)
at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:82)
at org.apache.activemq.broker.AbstractConnection.processAddConnection(AbstractConnection.java:507)
at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:118)
at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:76)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
at org.apache.activemq.network.DemandForwardingBridgeSupport.startLocalBridge(DemandForwardingBridgeSupport.java:215)
at org.apache.activemq.network.DemandForwardingBridgeSupport$3.run(DemandForwardingBridgeSupport.java:184)
Question: Why is necessary that the localClientId is created in a fixed way?
From DemandForwardingBridgeSupport.java:
localClientId="NC_"+remoteBrokerName+"_inbound"+name;
How about changing that to e.g.
localClientId="NC_"+remoteBrokerName+"_inbound"+name + "_" + System.currentTimemillis();
If a broker crashes and is restarted it would have a new ClientId -> no exceptions on reconnect.
> Network connections do not reconnect when using static: with failover=true
> --------------------------------------------------------------------------
>
> Key: AMQ-734
> URL: https://issues.apache.org/activemq/browse/AMQ-734
> Project: ActiveMQ
> Type: Bug
> Components: Connector
> Versions: 4.0
> Environment: winxp java1.5.6
> Reporter: tao
> Priority: Critical
> Fix For: 4.0.1
>
>
> If I pull out RJ45 port from net card ,waiting a time ,then put RJ45 port net card .Network is resume.Other computer always throw errors and net channel can't work.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira