Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-10886

Poor JMS message sending throughput with remote broker and XA transactions

    XMLWordPrintable

Details

    • Hide

      Sending JMS messages to remote broker in XA transactions.

      Show
      Sending JMS messages to remote broker in XA transactions.

    Description

      JMS message sending throughput with remote broker and XA transactions is throttled. It happens because creation of InjectedJMSContext is synchronized on lock held for significant amount of time (transaction enlistment).

      "EE-ManagedThreadFactory-default-Thread-9" #437 daemon prio=5 os_prio=0 tid=0x00007f2568250b70 nid=0x303 waiting on condition [0x00007f2540675000]
         java.lang.Thread.State: TIMED_WAITING (parking)
      	at sun.misc.Unsafe.park(Native Method)
      	- parking to wait for  <0x000000008a1d43d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
      	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
      	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2163)
      	at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:376)
      	- locked <0x000000008a1d4418> (a java.lang.Object)
      	at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:304)
      	at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.xaStart(ActiveMQSessionContext.java:503)
      	at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.start(ClientSessionImpl.java:1372)
      	at org.apache.activemq.artemis.ra.ActiveMQRAXAResource.start(ActiveMQRAXAResource.java:90)
      	at org.apache.activemq.artemis.service.extensions.xa.ActiveMQXAResourceWrapperImpl.start(ActiveMQXAResourceWrapperImpl.java:121)
      	at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:662)
      	at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:423)
      	at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.enlist(TxConnectionListener.java:986)
      	at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:379)
      	at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:553)
      	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:928)
      	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:750)
      	at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.allocateConnection(ActiveMQRASessionFactoryImpl.java:853)
      	- locked <0x00000000f25b9738> (a java.util.HashSet)
      	at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.createSession(ActiveMQRASessionFactoryImpl.java:520)
      	at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.createSession(ActiveMQRASessionFactoryImpl.java:734)
      	at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.createSession(ActiveMQRASessionFactoryImpl.java:739)
      	at org.apache.activemq.artemis.ra.ActiveMQRAConnectionFactoryImpl.validateUser(ActiveMQRAConnectionFactoryImpl.java:467)
      	at org.apache.activemq.artemis.ra.ActiveMQRAConnectionFactoryImpl.createContext(ActiveMQRAConnectionFactoryImpl.java:420)
      	at org.apache.activemq.artemis.ra.ActiveMQRAConnectionFactoryImpl.createContext(ActiveMQRAConnectionFactoryImpl.java:437)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.AbstractJMSContext.createContext(AbstractJMSContext.java:61)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.AbstractJMSContext.getContext(AbstractJMSContext.java:49)
      	- locked <0x00000000f25b9378> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext)
      	at sun.reflect.GeneratedMethodAccessor721.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
      	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- locked <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
      
      "EE-ManagedThreadFactory-default-Thread-8" #391 daemon prio=5 os_prio=0 tid=0x00007f2648520df0 nid=0x2d5 waiting for monitor entry [0x00007f25446a4000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- waiting to lock <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
      
      "EE-ManagedThreadFactory-default-Thread-22" #466 daemon prio=5 os_prio=0 tid=0x00007f256c040710 nid=0x3d0 waiting for monitor entry [0x00007f2535852000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- waiting to lock <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
      
      "EE-ManagedThreadFactory-default-Thread-19" #463 daemon prio=5 os_prio=0 tid=0x00007f256c03c3f0 nid=0x3cd waiting for monitor entry [0x00007f2535b55000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- waiting to lock <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createProducer(JMSContextWrapper.java:66)
      
      "EE-ManagedThreadFactory-default-Thread-18" #462 daemon prio=5 os_prio=0 tid=0x00007f256c03aaf0 nid=0x3cc waiting for monitor entry [0x00007f2535c56000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- waiting to lock <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
      
      "EE-ManagedThreadFactory-default-Thread-14" #451 daemon prio=5 os_prio=0 tid=0x00007f264c02c920 nid=0x332 waiting for monitor entry [0x00007f253755e000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- waiting to lock <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
      
      "EE-ManagedThreadFactory-default-Thread-13" #450 daemon prio=5 os_prio=0 tid=0x00007f2648527070 nid=0x331 waiting for monitor entry [0x00007f2538660000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)
      	- waiting to lock <0x0000000089fe0a70> (a org.wildfly.extension.messaging.activemq.deployment.injection.TransactedJMSContext$Proxy$_$$_WeldClientProxy)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.InjectedJMSContext.getDelegate(InjectedJMSContext.java:91)
      	at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
      
      

      Attachments

        Activity

          People

            fabio.nb Fabio Brandão (Inactive)
            jprzygodzki Jarosław Przygódzki (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: