[
http://jira.jboss.com/jira/browse/JBMESSAGING-1219?page=comments#action_1... ]
Jeff Mesnil commented on JBMESSAGING-1219:
------------------------------------------
The root cause of this issue is JBREM-888.
When the network fails, the bridge is not notified that its source is no longer
reachable.
On the other side, the messaging instance hosting the source will see the network failure
and close its resources associated to the bridge
If the bridge was active during the network failure, it will have accumulate messages and
acknowledge them before delivering them by batch to the target.
The ack sent to the source will block (until the tcp timeout occurs)... and fails when the
network is up again (because the source has closed its resources). The bridge will catch
the exception, reconnect to the source and all the messages will be delivered.
The bridge which is idle will never know that its associated resources have been closed on
the source side and will wait forever messages which will never be sent. The only way to
receive them will be to restart the bridge.
Messages are not redelivered after reconnection of message bridge
-----------------------------------------------------------------
Key: JBMESSAGING-1219
URL:
http://jira.jboss.com/jira/browse/JBMESSAGING-1219
Project: JBoss Messaging
Issue Type: Bug
Components: Messaging Core
Affects Versions: 1.4.0.SP3
Environment: JBoss-EAP-4.2_CP1 , JBM-1.4.0-SP3, RHEL5
Reporter: Tyronne Wickramarathne
Assigned To: Tim Fox
Fix For: Stable branch
Attachments: configuration.zip
JBM Bridge reconnection happens successfully but messages are not delivered to the
destination via the bridge. however this problem doesn't occur on Windows
environment.
modify the attached jms-ds.xml file with your remote machine's IP address, for the
remote provider.
SourceProviderLoader is the remote machine, and our TargetProviderLoader is the local
machine.
deploy the test-bridge-service.xml file on your local machine.
it has two bridges defined :
TestBridgeA remote queue/A -> local queue/C
TestBridgeB remote queue/B -> local queue/D
Add 10 messages to both queue A and queue B on the remote machine (we used a JSP page on
the remote machine to do that) in order to establish everything is working.
Add 20000 (or more) messages to queue A on the remote machine.
wait until some of the messages have been delivered to queue C on the local machine.
disconnect the local machine from the network by pulling the network cable.
wait a couple of minutes.
re-connect the local machine to the network.
after a few seconds the message delivery should start again.
wait for all of the message to be delivered.
now - try sending 500 messages to queue/B on the remote machine
those 500 messages will never be delivered !
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira