2 Replies Latest reply on Jul 2, 2009 4:35 PM by Markus Lutum

    Bridge Stuck after reconnect

    Markus Lutum Novice

      Using 1.4.4 GA

      I have 2 Servers where messages are bridged from 2 Queues via 2 bridges.

      Server A Server B
      outgoing >>---OutgoingBridge_Liberte2--->> local_outgoing
      incoming <<---IncomingBridge_Liberte2---<< local_incoming

      Sometimes the messages stuck at the Server B site:
      Before that happens the bridge losts the connection and reconnects. Here are the logs:

      13:49:37,942 WARN [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.preparefailed] [com.arjuna.ats.internal.jta.resources.arjunacore.preparefailed] XAResourceRecord.prepare - prepare failed with exception XAException.XA_RETRY
      13:49:37,942 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_36] - BasicAction.End() - prepare phase of action-id a046bd8:bcc:4a4c98a3:2fdbb failed.
      13:49:37,942 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_38] - Action Aborting
      13:49:38,223 WARN [org.jboss.jms.server.bridge.Bridge] jboss.messaging:name=OutgoingBridge_Liberte2,service=Bridge Failed to send + acknowledge batch, closing JMS objects
      javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
       at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:255)
       at org.jboss.jms.server.bridge.Bridge.sendBatchXA(Bridge.java:1322)
       at org.jboss.jms.server.bridge.Bridge.sendBatch(Bridge.java:1382)
       at org.jboss.jms.server.bridge.Bridge.access$2000(Bridge.java:68)
       at org.jboss.jms.server.bridge.Bridge$BatchTimeChecker.run(Bridge.java:1648)
       at java.lang.Thread.run(Unknown Source)
      13:49:38,426 WARN [org.jboss.remoting.Client] unable to remove remote callback handler: Can not remove callback listener from target server with id of a42z60-xlstvn-fwne1cca-1-fwne21xq-27+a42z60-xlstvn-fwne1cca-1-fwne21y6-2a as it does not exist as a registered callback listener.
      13:49:38,442 ERROR [org.jboss.jms.client.container.ClosedInterceptor] ClosedInterceptor.ClientSessionDelegate[c2-mb22enwf-1-acc1enwf-nvtslx-06z24a]: method getXAResource() did not go through, the interceptor is CLOSED
      13:49:38,442 WARN [org.jboss.jms.server.bridge.Bridge] jboss.messaging:name=OutgoingBridge_Liberte2,service=Bridge Will retry after a pause of 10000 ms
      13:49:49,598 INFO [org.jboss.jms.server.bridge.Bridge] jboss.messaging:name=OutgoingBridge_Liberte2,service=Bridge Succeeded in reconnecting to servers
      


      After that I have some messages in the incoming. And it seams that the incomming bridge is not working anymore.
      After I restarted the bridges and the Queues it starts bridging again.
      See log:

      14:00:17,266 INFO [Aeos.BridgeGeneratorServiceImpl] Stopping bridge 'jboss.messaging:name=IncommingBridge_Liberte2,service=Bridge'.
      14:00:18,688 WARN [org.jboss.remoting.Client] unable to remove remote callback handler: Can not remove callback listener from target server with id of a42z60-xlstvn-fwne1cca-1-fwne1zkn-1f+a42z60-xlstvn-fwne1cca-1-fwne21ij-1m as it does not exist as a registered callback listener.
      14:00:18,688 INFO [Aeos.BridgeGeneratorServiceImpl] Stopping bridge 'jboss.messaging:name=OutgoingBridge_Liberte2,service=Bridge'.
      
      ... see that the Warning is on the incoming bridge.
      
      14:01:45,250 INFO [Aeos.BridgeGeneratorServiceImpl] Started bridge jboss.messaging:name=IncommingBridge_Liberte2,service=Bridge. Source: /queue/local_incomingSyncRequests Target: /queue/incomingSyncRequests
      14:01:45,968 INFO [Aeos.BridgeGeneratorServiceImpl] Started bridge jboss.messaging:name=OutgoingBridge_Liberte2,service=Bridge. Source: /queue/outgoingSyncRequests_Liberte2 Target: /queue/local_outgoingSyncRequests
      


      After restarting the 2 Bridges the messages are send again...
      I use a self written BridgeGeneratorServiceImpl that dynamically configures and starts the Bridge.

      The transport is ssl.

      Any Idea why the message stuck after this connection error at the other bridge?

      Greets

        • 1. Re: Bridge Stuck after reconnect
          Yong Hao Gao Master

          Hi Markus,

          Are there not 4 queues involved?


          outgoing >>---OutgoingBridge_Liberte2--->> local_outgoing
          incoming <<---IncomingBridge_Liberte2---<< local_incoming


          Also where are the two bridges deployed, i mean which bridge with which server?

          • 2. Re: Bridge Stuck after reconnect
            Markus Lutum Novice

            Of course. You are right.

            2 Queues on Server A
            2 Queues on Server B (Liberte2)

            Both Bridges are deployed on Server A.
            One send data from local Queue on A to Remote Queue on B (the outgoing thing)
            One send data from remote Queue on B to local Queue on A (the incommin thing)

            I used the SSL Bisocket configuration like in the example. I have not changed any setting there.

            It only happens if the servers are under heavy load.