On 8/25/06, Manuel Teira <[EMAIL PROTECTED]> wrote:

 Hello and sorry for the previous message, it seems I pressed the wrong
button.


 I'm using ActiveMQ 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>

 under ActiveMQ 4.0.1

 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.

 3.-Once I restart ActiveMQ broker (with SunMQ previously restarted) two
things can happen:
   a.-ActiveMQ sends the previously queued messages to SunMQ. I can find
SUNRECV queue in the 'queues' section of the jmx console with the correct
number of dequeued messages.
   b.-ActiveMQ sends nothing to SunMQ. The jmx console doesn't show the
bridged queue, however, there's an advisory topic called:
ActiveMQ.Advisory.Consumer.Queue.SUNRECV.
       When a new message is sent to SUNRECV, the queue is created in
ActiveMQ, but the old messages seems to be lost (The jmx console shows 1 for
the Enqueue and Dequeue count and SunMQ shows one message in its queue).


 This situation is far from desired. So, I would like to know:
 -Is there any way to make ActiveMQ broker test the bridge connection state?

No not really

Is there any way to force a reconnection?

If a send fails we should tear down and reconnect the producer. Could
you raise a JIRA for this please?


 -Should ActiveMQ detect the remote side shutdown?

It can't really - all it can do is respond to the send/consume failing

--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to