activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Silva (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (AMQ-895) JMS to JMS Bridge never reconnects under remote broker restarts.
Date Thu, 01 May 2008 23:45:43 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=42515#action_42515
] 

jsilva edited comment on AMQ-895 at 5/1/08 4:45 PM:
--------------------------------------------------------

the attached patch has a slight error

while (maximumRetries > 0 && attempt >= maximumRetries);

should be

while (maximumRetries > 0 && attempt <= maximumRetries);

correct?  

Even with this change, you can see the number of retries increment, but the producer does
not begin sending.  I have also tried the patch in the comments of AMQ-1220 and this actually
does reconnect the bridge (no more connection failures) but the producer fails to send the
messages which are enqueued during the time the foreign connection is down.  

The exception in 4.1.1 is:

javax.jms.IllegalStateException: The producer is closed
        at org.apache.activemq.ActiveMQMessageProducer.checkClosed(ActiveMQMessa
geProducer.java:333)
        at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:445)
        at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:415)
        at org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java
:116)
        at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.j
ava:87)
        at org.apache.activemq.network.jms.DestinationBridge.onMessage(Destinati
onBridge.java:134)
        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageC
onsumer.java:854)
        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionE
xecutor.java:99)
        at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionEx
ecutor.java:166)
        at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskR
unner.java:101)
        at org.apache.activemq.thread.DedicatedTaskRunner.access$000(DedicatedTa
skRunner.java:25)
        at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRun
ner.java:39)

My foreign queue is using https if that makes a difference.

      was (Author: jsilva):
    the attached patch has a slight error

while (maximumRetries > 0 && attempt >= maximumRetries);

should be

while (maximumRetries > 0 && attempt <= maximumRetries);

correct?  

Even with this change, you can see the number of retries increment, but the producer does
not begin sending.  I have also tried the patch in the comments of AMQ-1220 and this actually
does reconnect the bridge (no more connection failures) but the producer fails to send the
messages which are enqueued during the time the foreign connection is down.  

The exception in 4.1.1 is:

javax.jms.IllegalStateException: The producer is closed
        at org.apache.activemq.ActiveMQMessageProducer.checkClosed(ActiveMQMessa
geProducer.java:333)
        at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:445)
        at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:415)
        at org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java
:116)
        at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.j
ava:87)
        at org.apache.activemq.network.jms.DestinationBridge.onMessage(Destinati
onBridge.java:134)
        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageC
onsumer.java:854)
        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionE
xecutor.java:99)
        at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionEx
ecutor.java:166)
        at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskR
unner.java:101)
        at org.apache.activemq.thread.DedicatedTaskRunner.access$000(DedicatedTa
skRunner.java:25)
        at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRun
ner.java:39)
  
> JMS to JMS Bridge never reconnects under remote broker restarts.
> ----------------------------------------------------------------
>
>                 Key: AMQ-895
>                 URL: https://issues.apache.org/activemq/browse/AMQ-895
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 4.0 RC2, 4.0.1
>            Reporter: Manuel Teira
>             Fix For: 5.2.0
>
>         Attachments: test_patch.diff
>
>
> I'm using ActiveMQ (4.0.1) JMS to JMS Bridge functionality to connect to a  SunMQ JMS
Broker (3.6 SP3  (Build 02-A)). I'm using two queues, an input and an output one, with the
following configuration:
>     <jmsBridgeConnectors>
>       <jmsQueueConnector outboundQueueConnectionFactory="#REMOTE">
>       <outboundQueueBridges>
>         <outboundQueueBridge outboundQueueName="SUNRECV"/>
>       </outboundQueueBridges>
>       <inboundQueueBridges>
>         <inboundQueueBridge inboundQueueName="SUNSEND"/>
>       </inboundQueueBridges>
>       </jmsQueueConnector>
>     </jmsBridgeConnectors>
> The system works really well until the SunMQ broker needed to be restarted. This is what
I found:
> 1.-ActiveMQ is not aware of the remote broker shutdown. I waited for a while, but no
log on ActiveMQ indicates knowledge about the new situation.
> 2.-When I send a message to the output queue SUNRECV, ActiveMQ complains that the producer
is closed:
> [ERROR][2006/08/25.09:47:12.039][ActiveMQ Session Task]failed to forward message: ActiveMQTextMessage
{commandId = 5, responseRequired = false, messageId = ID:trabucco-43457-1156491843149-3:4:1:1:1,
originalDestination = null, originalTransactionId = null, producerId = ID:trabucco-43457-1156491843149-3:4:1:1,
destination = queue://SUNRECV, transactionId = null, expiration = 0, timestamp = 1156492032027,
arrival = 0, correlationId = null, replyTo = null, persistent = false, type = null, priority
= 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID
= null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter
= 0, size = 2, properties = null, readOnlyProperties = true, readOnlyBody = true, text = 1}([C4064]:
Cannot perform operation, producer is closed.)
>  After this, it is automatically queueing messages without sending them, showing the
log:
> [DEBUG][2006/08/25.09:47:42.721][RMI TCP Connection(4)-10.95.89.20]No subscriptions registered,
will not dispatch message at this time.
>  Even if SunMQ is started again, ActiveMQ is not detecting the new situation, and continues
queueing messages sent to SUNRECV.
> Please, make me know if more information is needed to understand the situation.

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


Mime
View raw message