Queue destination bridge does not stay up
-----------------------------------------
Key: AMQ-3008
URL: https://issues.apache.org/activemq/browse/AMQ-3008
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.4.1, 5.3.2
Reporter: Trey Hyde
I'm not sure of cause of any of these exceptions. The IllegalStateException
seems be be due to the direct interaction between the OpenMQ and ActiveMQ jms
code. I haven't the faintest why the reconnect code can't connect again in
the normal circumstance. The agents that talk directly to OpenMQ do no have
issues during these times and nothing is logged in the OpenMQ log.
2010-10-29 10:54:44,170 | ERROR | failed to forward message on attempt: 1
reason: javax.jms.IllegalStateException: [C4064]: Cannot perform operation,
producer is closed. message: ActiveMQMapMessage {commandId = 3,
responseRequired = false, messageId = ID:mq1.cdlocal-27338-12
88370972745-6:24434:-1:1:1, originalDestination = null, originalTransactionId =
null, producerId = ID:mq1.cdlocal-27338-1288370972745-6:24434:-1:1, destination
= queue://CD.live.search.needsretrieve, transactionId = null, expiration = 0,
timestamp = 1288374884167, arrival =
0, brokerInTime = 1288374884167, brokerOutTime = 1288374884167, correlationId =
null, replyTo = null, persistent = true, type = null, priority = 0, groupID =
null, groupSequence = 0, targetConsumerId = null, compressed = false, userID =
null, content = org.apache.activemq.ut
il.byteseque...@224f68dc, marshalledProperties =
org.apache.activemq.util.byteseque...@b6d551d, dataStructure = null,
redeliveryCounter = 0, size = 1797, properties = {transformation=jms-map-json},
readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQMa
pMessage{ theTable = {} } | org.apache.activemq.network.jms.DestinationBridge |
ActiveMQ Session: ID:mq1.cdlocal-27338-1288370972745-4:0:2
javax.jms.IllegalStateException: [C4064]: Cannot perform operation, producer is
closed.
at
com.sun.messaging.jmq.jmsclient.MessageProducerImpl.checkState(MessageProducerImpl.java:175)
at
com.sun.messaging.jmq.jmsclient.MessageProducerImpl.send(MessageProducerImpl.java:719)
at
com.sun.messaging.jmq.jmsclient.QueueSenderImpl.send(QueueSenderImpl.java:145)
at
org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:80)
at
org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:129)
at
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1229)
at
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
at
org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at
org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
2010-10-29 10:54:45,179 | ERROR | failed to forward message on attempt: 2
reason: com.sun.messaging.jms.JMSException: [C4003]: Error occurred on
connection creation [search2.cdlocal:6076]. - cause: java.net.ConnectException:
Connection refused message: ActiveMQMapMessage {co
mmandId = 3, responseRequired = false, messageId =
ID:mq1.cdlocal-27338-1288370972745-6:24434:-1:1:1, originalDestination = null,
originalTransactionId = null, producerId =
ID:mq1.cdlocal-27338-1288370972745-6:24434:-1:1, destination =
queue://CD.live.search.needsretrieve, t
ransactionId = null, expiration = 0, timestamp = 1288374884167, arrival = 0,
brokerInTime = 1288374884167, brokerOutTime = 1288374884167, correlationId =
null, replyTo = null, persistent = true, type = null, priority = 0, groupID =
null, groupSequence = 0, targetConsumerId =
null, compressed = false, userID = null, content =
org.apache.activemq.util.byteseque...@224f68dc, marshalledProperties =
org.apache.activemq.util.byteseque...@b6d551d, dataStructure = null,
redeliveryCounter = 0, size = 1797, properties = {transformation=jms-map-json},
rea
dOnlyProperties = true, readOnlyBody = true, droppable = false}
ActiveMQMapMessage{ theTable = {} } |
org.apache.activemq.network.jms.DestinationBridge | ActiveMQ Session:
ID:mq1.cdlocal-27338-1288370972745-4:0:2
com.sun.messaging.jms.JMSException: [C4003]: Error occurred on connection
creation [search2.cdlocal:6076]. - cause: java.net.ConnectException: Connection
refused
at
com.sun.messaging.jmq.jmsclient.ExceptionHandler.throwConnectionException(ExceptionHandler.java:274)
at
com.sun.messaging.jmq.jmsclient.ExceptionHandler.handleConnectException(ExceptionHandler.java:220)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMapperClient.java:241)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.init(PortMapperClient.java:150)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.<init>(PortMapperClient.java:92)
at
com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPConnectionHandler.<init>(TCPConnectionHandler.java:164)
at
com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler.openConnection(TCPStreamHandler.java:135)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:778)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(ConnectionInitiator.java:254)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:208)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:158)
at
com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.java:816)
at
com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.java:1529)
at
com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2327)
at
com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1024)
at
com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:418)
at
com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:60)
at
com.sun.messaging.jmq.jmsclient.QueueConnectionImpl.<init>(QueueConnectionImpl.java:59)
at
com.sun.messaging.ConnectionFactory.createQueueConnection(ConnectionFactory.java:98)
at
com.sun.messaging.ConnectionFactory.createQueueConnection(ConnectionFactory.java:83)
at
com.centraldesktop.mq.openmq.QueueConnectionFactory.createQueueConnection(QueueConnectionFactory.java:33)
at
org.apache.activemq.network.jms.JmsQueueConnector.initializeForeignQueueConnection(JmsQueueConnector.java:223)
at
org.apache.activemq.network.jms.JmsQueueConnector.restartProducerConnection(JmsQueueConnector.java:184)
at
org.apache.activemq.network.jms.DestinationBridge.restartProducer(DestinationBridge.java:177)
at
org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:115)
at
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1229)
at
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
at
org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at
org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381)
at java.net.Socket.connect(Socket.java:537)
at java.net.Socket.connect(Socket.java:487)
at java.net.Socket.<init>(Socket.java:384)
at java.net.Socket.<init>(Socket.java:198)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.makeSocketWithTimeout(PortMapperClient.java:268)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMapperClient.java:220)
... 27 more
this exception repeats 10 times IMMEDIATELY and no further attempts are made at
reconnecting. A restart of ActiveMQ reestablishes the bridge.
Code and configuration for the AMQ->IMQ bridge is available here:
http://github.com/centraldesktop/openmq-spring-bean
This has to be somewhat related to AMQ-2455 which I was told may resolve this
issue (it didn't).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.