Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-635

Lost messages if JDBC store is disconnected

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • A-MQ 7.0.0.CR1
    • A-MQ 7.0.0.ER18
    • None
    • Hide

      See instructions how to setup your environment before you can run the test.

      Run following commands:

      git clone git@gitlab.mw.lab.eng.bos.redhat.com:jbossqe-eap/messaging-cloud-testsuite.git
      cd messaging-cloud-testsuite
      mvn clean install -Deap=7x -Deap.version=7.1.0.DR16 -DfailIfNoTests=false -DstartNodesDelay=0 -Dtest=JDBCNetworkFailureTestCase#disconnecNetworkWithMDB | tee log
      

      Server logs and the configuration you can find in directory messaging-cloud-testsuite/eap7-tests/target/org.jboss.qa.messaging.tests.eap7.JDBCNetworkFailureTestCase.disconnecNetworkWithMDB

      Show
      See instructions how to setup your environment before you can run the test. Run following commands: git clone git@gitlab.mw.lab.eng.bos.redhat.com:jbossqe-eap/messaging-cloud-testsuite.git cd messaging-cloud-testsuite mvn clean install -Deap=7x -Deap.version=7.1.0.DR16 -DfailIfNoTests= false -DstartNodesDelay=0 -Dtest=JDBCNetworkFailureTestCase#disconnecNetworkWithMDB | tee log Server logs and the configuration you can find in directory messaging-cloud-testsuite/eap7-tests/target/org.jboss.qa.messaging.tests.eap7.JDBCNetworkFailureTestCase.disconnecNetworkWithMDB

      Scenario

      • There is one EAP configured to use JDBC persistence storage.
      • Producer sends 300 messages to InQueue.
      • After that MDB is deployed. It sends messages from InQueue to OutQueue.
      • When half of the messages occurs in the OutQueue, network between EAP and database is failed.
      • Network is down for 16 minutes to cause closing of JDBC connection.
      • Then network is restored and EAP is restarted.
      • After the restart MDB continues in resending of messages from InQueue to OutQueue.
      • Test waits until all prepared transactions are resolved.
      • Receiver receives all messages from OutQueue.

      Expectation: Receiver receives all messages sent by producer.
      Reality: Receiver doesn't receive all messages sent by producer. Some of them are lost.

      Customer impact: If network between EAP and database fails, some messages may be lost.

      When EAP is started after the network was restored, I can see log messages [1] in server.log. These messages corresponds to lost messages.

      When I tracked the XA transactions of lost messages, last information I found was that transactions were successfully rollbacked.

      [1]

      2017-04-11 13:46:38,170 INFO  [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 74) AMQ221019: Deleting unreferenced message id=432 from the journal
      2017-04-11 13:46:38,170 INFO  [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 74) AMQ221019: Deleting unreferenced message id=434 from the journal
      2017-04-11 13:46:38,171 INFO  [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 74) AMQ221019: Deleting unreferenced message id=444 from the journal
      2017-04-11 13:46:38,171 INFO  [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 74) AMQ221019: Deleting unreferenced message id=446 from the journal
      

              mtaylor1@redhat.com Martyn Taylor (Inactive)
              mtaylor1@redhat.com Martyn Taylor (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: