[
https://issues.apache.org/jira/browse/AMQ-3008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish resolved AMQ-3008.
-------------------------------
Resolution: Fixed
Fix Version/s: 5.6.0
Fixed by latest changes made for AMQ-2455
> Queue destination bridge does not stay up
> -----------------------------------------
>
> Key: AMQ-3008
> URL: https://issues.apache.org/jira/browse/AMQ-3008
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.3.2, 5.4.1
> Reporter: Trey Hyde
> Fix For: 5.6.0
>
>
> 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.ByteSequence@224f68dc, marshalledProperties =
> org.apache.activemq.util.ByteSequence@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.ByteSequence@224f68dc, marshalledProperties =
> org.apache.activemq.util.ByteSequence@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.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira