Uploaded image for project: 'AMQ Interconnect'
  1. AMQ Interconnect
  2. ENTMQIC-2004

Transactional behaviour different in client router broker scenario versus client broker

    XMLWordPrintable

Details

    • Release Notes
    • Hide
      Previously, if a link was repeatedly drained and then restarted, flow-control credit would not always be accounted correctly (particularly when using the AMQ JMS client). This issue has been corrected, and credit is now correctly tracked over multiple drain-restart cycles.
      Show
      Previously, if a link was repeatedly drained and then restarted, flow-control credit would not always be accounted correctly (particularly when using the AMQ JMS client). This issue has been corrected, and credit is now correctly tracked over multiple drain-restart cycles.
    • Documented as Resolved Issue
    • Hide

      Replace the TransactionalExample with the to be attached amqp version. Use the given router and broker config, update for local network environment and run mvn -PnoServer verify from the TransactionExample directory in the Artemis source tree.

      Show
      Replace the TransactionalExample with the to be attached amqp version. Use the given router and broker config, update for local network environment and run mvn -PnoServer verify from the TransactionExample directory in the Artemis source tree.
    • Interconnect - June Sprint

    Description

      Using the TransactionalExample from AMQ Broker 7 located in
      ./examples/features/standard/transactional
      but modified to utilize Qpid JMS to work over AMQP through the router when going
      client <> router <> broker we see that upon the first execution:

      [INFO] --- artemis-maven-plugin:2.7.0-SNAPSHOT:runClient (runClient) @ transactional ---
      [INFO] Best match for SASL auth was: SASL-ANONYMOUS
      [INFO] Connection ID:627a4d36-ea7c-4967-bec1-ea5dc7a20f02:1 connected to remote Broker: amqp://ic1rh:5672
      Sent message1: This is a text message1
      Sent message2: This is a text message2
      Message received before send commit: null
      [INFO] A JMS MessageConsumer has been closed: JmsConsumerInfo: { ID:627a4d36-ea7c-4967-bec1-ea5dc7a20f02:1:1:1, destination = abc.LB.1.testQueue }
      [ERROR] 
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.apache.activemq.artemis.maven.ArtemisClientPlugin.doExecute(ArtemisClientPlugin.java:61)
              at org.apache.activemq.artemis.maven.ArtemisAbstractPlugin.execute(ArtemisAbstractPlugin.java:74)
              at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
              at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
              at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
              at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
              at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
              at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
              at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
              at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
              at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
              at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
              at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
              at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
              at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
              at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
      Caused by: org.apache.qpid.jms.JmsOperationTimedOutException: Remote did not respond to a drain request in time
              at org.apache.qpid.jms.provider.amqp.AmqpConsumer$1.run(AmqpConsumer.java:138)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD FAILURE
      [INFO] ------------------------------------------------------------------------
      

      However a second immediate execution shows:

      [INFO] --- artemis-maven-plugin:2.7.0-SNAPSHOT:runClient (runClient) @ transactional ---
      [INFO] Best match for SASL auth was: SASL-ANONYMOUS
      [INFO] Connection ID:ab16c6e7-0ed0-442c-944c-29ed00c86e87:1 connected to remote Broker: amqp://ic1rh:5672
      Sent message1: This is a text message1
      Sent message2: This is a text message2
      Message received before send commit: JmsTextMessage { org.apache.qpid.jms.provider.amqp.message.AmqpJmsTextMessageFacade@51b51641 }
      Message received after send commit: This is a text message2
      Message1 received after receive rollback: This is a text message2
      Message2 received after receive rollback: This is a text message1
      Message3 received after receive rollback: JmsTextMessage { org.apache.qpid.jms.provider.amqp.message.AmqpJmsTextMessageFacade@f9a5e3f }
      Message received after receive commit: null
      [INFO] 
      [INFO] --- artemis-maven-plugin:2.7.0-SNAPSHOT:cli (stop) @ transactional ---
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      

      While a slight update to connect directly to the broker shows:

      [INFO] --- artemis-maven-plugin:2.7.0-SNAPSHOT:runClient (runClient) @ transactional ---
      [INFO] Best match for SASL auth was: SASL-ANONYMOUS
      [INFO] Connection ID:62a1bf91-a5b8-4843-b163-995ed426b352:1 connected to remote Broker: amqp://ic1rh:10010
      Sent message1: This is a text message1
      Sent message2: This is a text message2
      Message received before send commit: null
      Message received after send commit: This is a text message1
      Message1 received after receive rollback: This is a text message2
      Message2 received after receive rollback: This is a text message1
      Message3 received after receive rollback: null
      Message received after receive commit: null
      [INFO] 
      [INFO] --- artemis-maven-plugin:2.7.0-SNAPSHOT:cli (stop) @ transactional ---
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      

      Attachments

        1. broker-ENTMQIC-2004.xml
          9 kB
          Roderick Kieley
        2. D-2004-direct.html
          433 kB
          Chuck Rolke
        3. D-2004-routed.html
          592 kB
          Chuck Rolke
        4. pom.xml
          5 kB
          Jiri Daněk
        5. pom.xml
          5 kB
          Roderick Kieley
        6. qdrouterd-ENTMQIC-2004.conf
          0.9 kB
          Roderick Kieley
        7. TransactionalExample.java
          5 kB
          Roderick Kieley

        Issue Links

          Activity

            People

              crolke@redhat.com Chuck Rolke (Inactive)
              rhn-support-rkieley Roderick Kieley
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: