12 Replies Latest reply on Mar 5, 2013 5:19 PM by Clebert Suconic

    Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)

    Daniel Bastidas Newbie

      Hi all,

       

      I'm trying to send a message to a remote queue from a standalone server instance. The queue resides in another standalone server instance.

      I'm getting some kind of transaction time out problem.

      This is what I see on the remote server log:

       

      18:55:30,660 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Trying reconnection attempt 0/1
      18:55:30,660 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Trying to connect with connector = org.hornetq.core.remoting.impl.invm.InVMConnectorFactory@1292514, parameters = {server-id=0} connector = org.hornetq.core.remoting.impl.invm.InVMConnector@4177ee
      18:55:30,661 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Trying to connect at the main server using connector :org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0
      18:55:30,662 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Reconnection successfull
      18:55:30,662 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) ClientSessionFactoryImpl received backup update for live/backup pair = org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0 / null but it didn't belong to org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0
      18:55:32,618 DEBUG [org.jboss.naming.remote.server.RemoteNamingService] (Remoting "danielbastidas-desktop" task-3) Channel Opened - Channel ID 36424bb0 (inbound) of Remoting connection 00ede8e4 to /10.4.13.103:41192
      18:55:32,627 DEBUG [org.jboss.naming.remote.server.RemoteNamingService] (Remoting "danielbastidas-desktop" task-4) Chosen version 0x01
      18:56:12,031 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
      18:56:12,036 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
      18:56:32,898 DEBUG [org.jboss.naming.remote.server.RemoteNamingService] (Remoting "danielbastidas-desktop" read-1) Channel Channel ID 36424bb0 (inbound) of Remoting connection 00ede8e4 to /10.4.13.103:41192 closed.
      18:56:32,900 INFO  [org.jboss.as.naming] (Remoting "danielbastidas-desktop" task-3) JBAS011806: Channel end notification received, closing channel Channel ID 36424bb0 (inbound) of Remoting connection 00ede8e4 to null
      18:58:22,078 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
      18:58:22,080 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recovering these following IDs [XidImpl (19305676 bq:0.0.0.0.0.0.0.0.0.0.-1.-1.127.0.1.1.-53.111.74.118.81.49.63.127.0.0.0.22.0.0.0.1.0.0.0.1.49 formatID:131077 gtxid:0.0.0.0.0.0.0.0.0.0.-1.-1.10.4.13.103.-67.72.-47.-112.81.49.63.-102.0.0.0.20.49] at HornetQXAResourceWrapper [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], csf=ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], delegate=DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54], xaRecoveryConfigs=[XARecoveryConfig [hornetQConnectionFactory=HornetQConnectionFactory [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], clientID=null, dupsOKBatchSize=1048576, transactionBatchSize=1048576, readOnly=false], username=null, password=null]], instance=4917273]
      18:58:22,088 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
      19:00:30,543 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff7f000101:-3490b58a:51313f7f:11 in state  RUN
      

       

      and the message goes to the queue on the client server instead of the queue in the remote server. 

      I don't have a clue what could be happening.

       

      I'm using JBoss AS 7.1.1Final

       

      Any help would be appreciated.

        • 1. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
          Clebert Suconic Master

          You didn't commit your transaction soon enough, so the Transaction reaper timed out your TX.

           

           

          I can't tell you much beyond this based on the info you provided.

          • 2. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
            Daniel Bastidas Newbie

            Hi Clebert,

             

            I'm Sorry for the delay.

            Ok, a more detailed explanation of what is happening:

            I got the same application running on each server of a grid architecture design

            Each server running the application could be configured to replicate messages to another server and it also could be  configured as receiver of another server.

             

            i.e:

            Server A: replicate to the server C,D

            Server B: replicate to the server D

            Server C: replicate to the server A

             

            This doesn't mean there is a cyclic loop. The messages to be replicated come from a different source and the messages replicated are not propagated again.

            I dont want to dispute the application design. Not closed minded, just I know this is as simple as send a message to a queue on a remote server instance and this used to work like a charm on JBoss 5.1, no cluster overhead.

            This is the excerpt of code of the method that sends the message to the remote queue:

             

            public static void sendMessageRemote(String data, String queueName,
            String remoteHost, boolean isReplication) throws Exception {
            
                    Context context = null;
                    Connection connection = null;
            
                    try {
            
                        byte[] dataBytes = data.getBytes();
                        String DEFAULT_CONNECTION_FACTORY = "jms/RemoteConnectionFactory";
                        String INITIAL_CONTEXT_FACTORY = "org.jboss.naming.remote.client.InitialContextFactory";
                        String PROVIDER_URL = "remote://" + remoteHost + ":4447"; 
                        
                        ConnectionFactory connectionFactory = null;
                        Session session = null;
                        MessageProducer producer = null;
                        Destination destination = null;
                        MapMessage mapMessage = null;
            
                        // Set up the context for the JNDI lookup
                        Properties env = new Properties();
                        env.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
                        env.put(Context.PROVIDER_URL, PROVIDER_URL);
            
                        context = new InitialContext(env);
                        connectionFactory = (ConnectionFactory) context
                                .lookup(DEFAULT_CONNECTION_FACTORY);
            
                        destination = (Destination) context.lookup(queueName); 
                        
                        // Create the JMS connection, session, producer, and consumer
                        connection = connectionFactory.createConnection();
                        session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
                        producer = session.createProducer(destination);
                        connection.start();
            
                        mapMessage = session.createMapMessage();
            
                        mapMessage.setObject(QueueMessageField.DATA.getValue(), dataBytes);
            
                        mapMessage.setString(QueueMessageField.IS_REPLICATION.getValue(),
                                isReplication);
            
                        producer.send(mapMessage);
                        session.commit();
            
                    } catch (Exception e) {
                        ...
                    } finally {
            
                        if (context != null) {
                            context.close();
            
                        }
            
                        if (connection != null) {
                            connection.close();
            
                        }
            
                    }
            
                }
            

             

            As you can see, I'm setting a transaction-capable session and I'm commiting the transaction but I'm still getting the warnings above.  If I don't set the session as transaction-capable (connection.createSession(false, Session.AUTO_ACKNOWLEDGE)) I get the same messages in the log.

            The excerpt of code belongs to a plain java class invoked by a stateless session bean web service with default transaction attribute.

            I hope this information be enough to help me solve this problem and that I make myself clear.

            • 3. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
              Andy Taylor Master

              the warning has nothing to do with the code you have posted as your not using an XA transaction, where else are you using transactions.

              • 4. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                Clebert Suconic Master

                The only thing I see there is that you are creating a context and a connection every time. Maybe you could keep the connection and the producer open? so subsequent calls will just perform a send?

                 

                Right now you're opening a context to JNDI, then creating a connection...e tc.. it's a lot of work beyond just sending a message.

                 

                 

                 

                Do you get any exceptions on server / client? any stack traces showing slow response? (Maybe you have an unbehaved consumer what is currently locking delivery and sending.. which is being fixed on 2.3)

                • 5. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                  Clebert Suconic Master

                  Andy is correct...  I assumed the code you're placing is a Statefull Session bean under a transaction context? but I'm just assuming too much maybe.

                   

                   

                  I still don't have much information to help there.. all I can do is guess at this point... I'm trying my best though based on what I have.

                  • 6. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                    Andy Taylor Master

                    The only thing I see there is that you are creating a context and a connection every time. Maybe you could keep the connection and the producer open? so subsequent calls will just perform a send?

                    or use a pooled connection factory

                    • 7. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                      Daniel Bastidas Newbie

                      Ok, I will keep in mind the cache of the connection and producer or the use of a pooled connection factory.

                       

                      Right now the problem that I'm facing is trying to send only one message.

                      Here is the log messages of the client side:

                       

                      17:42:35,566 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-3) Received message with header 0x14
                      17:42:35,626 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-4) Received message with header 0x14
                      17:43:18,113 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:44:18,114 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:45:18,117 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected danielbastidas-desktop node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:45:18,171 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-2) Received message with header 0x5
                      17:46:18,115 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:47:18,113 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected danielbastidas-desktop node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:47:18,159 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-1) Received message with header 0x5
                      17:48:18,113 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:49:18,115 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:50:18,114 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected danielbastidas-desktop node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:50:18,154 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-3) Received message with header 0x5
                      17:51:18,112 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:52:18,113 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected panvsgp18pc0231 node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:53:18,113 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected danielbastidas-desktop node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:53:18,156 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-4) Received message with header 0x5
                      17:54:18,115 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected danielbastidas-desktop node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:54:18,156 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-2) Received message with header 0x5
                      17:55:18,115 DEBUG [org.jboss.ejb.client.EJBClientContext] (http--0.0.0.0-8080-1) org.jboss.ejb.client.RandomDeploymentNodeSelector@73e0e167 deployment node selector selected danielbastidas-desktop node for appname=saes_listener,modulename=saes_listener.jar,distinctname=
                      17:55:18,151 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-1) Received message with header 0x5
                      18:02:34,957 TRACE [org.jboss.ejb.client.remoting.ChannelAssociation] (Remoting "panvsgp18pc0231" task-3) Received message with header 0x9
                      

                       

                      "panvsgp18pc0231" is the client machine and "danielbastidas-desktop" is the server machine running on a virtual machine.

                      The above method is inside of a plain java class invoked by a method of a stateless session bean acting like a web service.

                      Something like this:

                       

                       

                      @Stateless
                      @WebService
                      public class Listener {
                      
                      @WebMethod
                          public int uploadData(String data {
                           ...
                           myclass.sendMessageRemote(data, replicationQueueName, host, allowReplication);
                           ...
                      }
                      }
                      
                      

                       

                      I have edited the standalone-full.xml file to allow the remote communication on the client side.

                       

                      <!-- Added this on the remoting subsystem -->
                      <outbound-connections>
                                      <remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb">
                                          <properties>
                                              <property name="SASL_POLICY_NOANONYMOUS" value="false"/>
                                              <property name="SSL_ENABLED" value="false"/>
                                          </properties>
                                      </remote-outbound-connection>
                                  </outbound-connections>
                      
                      <!-- Added this on the socket-binding-group -->
                      <outbound-socket-binding name="remote-ejb">
                                  <remote-destination host="10.4.13.80" port="4447"/>
                              </outbound-socket-binding>
                      

                       

                      I have also removed the security configuration to remove the user authentication.

                      Here it is the remoting subsystem of the standalone-full.xml file on the server side.

                       

                      <subsystem xmlns="urn:jboss:domain:messaging:1.1">
                                  <hornetq-server>
                                      <persistence-enabled>true</persistence-enabled>
                                      <thread-pool-max-size>100</thread-pool-max-size>
                                      <security-enabled>false</security-enabled>
                                      <message-counter-enabled>true</message-counter-enabled>
                                      <message-counter-sample-period>60000</message-counter-sample-period>
                                      <message-counter-max-day-history>3</message-counter-max-day-history>
                                      <journal-file-size>102400</journal-file-size>
                                      <journal-min-files>20</journal-min-files>
                      
                                      <connectors>
                                          <netty-connector name="netty" socket-binding="messaging"/>
                                          <netty-connector name="netty-throughput" socket-binding="messaging-throughput">
                                              <param key="batch-delay" value="50"/>
                                          </netty-connector>
                                          <in-vm-connector name="in-vm" server-id="0"/>
                                      </connectors>
                      
                                      <acceptors>
                                          <netty-acceptor name="netty" socket-binding="messaging"/>
                                          <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
                                              <param key="batch-delay" value="50"/>
                                              <param key="direct-deliver" value="false"/>
                                          </netty-acceptor>
                                          <in-vm-acceptor name="in-vm" server-id="0"/>
                                      </acceptors>
                      
                                      <security-settings>
                                          <security-setting match="#">
                                              <permission type="send" roles="guest"/>
                                              <permission type="consume" roles="guest"/>
                                              <permission type="createNonDurableQueue" roles="guest"/>
                                              <permission type="deleteNonDurableQueue" roles="guest"/>
                                          </security-setting>
                                      </security-settings>
                      
                      <address-settings>
                                          <address-setting match="#">
                                              <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                                              <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                                              <redelivery-delay>60000</redelivery-delay>
                                              <max-delivery-attempts>1</max-delivery-attempts>
                                              <max-size-bytes>314572800</max-size-bytes>
                                              <address-full-policy>PAGE</address-full-policy>
                                              <message-counter-history-day-limit>3</message-counter-history-day-limit>
                                          </address-setting>
                                          <address-setting match="jms.queue.replicationFailuresQueue">
                                              <max-delivery-attempts>2147483647</max-delivery-attempts>
                                          </address-setting>
                                      </address-settings>
                      
                                      <jms-connection-factories>
                                          <connection-factory name="InVmConnectionFactory">
                                              <connectors>
                                                  <connector-ref connector-name="in-vm"/>
                                              </connectors>
                                              <entries>
                                                  <entry name="java:/ConnectionFactory"/>
                                              </entries>
                                              <client-failure-check-period>10000</client-failure-check-period>
                                              <connection-ttl>120000</connection-ttl>
                                              <consumer-window-size>1048576</consumer-window-size>
                                              <min-large-message-size>307200</min-large-message-size>
                                              <retry-interval>4000</retry-interval>
                                              <use-global-pools>true</use-global-pools>
                                              <scheduled-thread-pool-max-size>10</scheduled-thread-pool-max-size>
                                              <thread-pool-max-size>100</thread-pool-max-size>
                                          </connection-factory>
                                          <connection-factory name="RemoteConnectionFactory">
                                              <connectors>
                                                  <connector-ref connector-name="netty"/>
                                              </connectors>
                                              <entries>
                                                  <entry name="RemoteConnectionFactory"/>
                                                  <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>
                                              </entries>
                                          </connection-factory>
                      <pooled-connection-factory name="hornetq-ra">
                                              <transaction mode="xa"/>
                                              <connectors>
                                                  <connector-ref connector-name="in-vm"/>
                                              </connectors>
                                              <entries>
                                                  <entry name="java:/JmsXA"/>
                                              </entries>
                                          </pooled-connection-factory>
                                      </jms-connection-factories>
                      
                                      <jms-destinations>
                      
                                          <jms-queue name="DLQ">
                                              <entry name="/queue/DLQ"/>
                                          </jms-queue>
                                          <jms-queue name="ExpiryQueue">
                                              <entry name="/queue/ExpiryQueue"/>
                                          </jms-queue>
                      
                                          <jms-queue name="replicationQueue">
                                              <entry name="/queue/replicationQueue"/>
                                              <entry name="java:jboss/exported/queue/replicationQueue"/>
                                          </jms-queue>                   
                                     </jms-destinations>
                                  </hornetq-server>
                              </subsystem>
                      
                      
                      

                       

                      There is no consumer on the remote queue. I mean there is no defined Message Driven Bean on the remote queue.

                      The messages on this queue are consumed programatically on demand.

                       

                      Please let me know what else information do you need.

                      Thanks.

                      • 8. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                        Andy Taylor Master

                        what exactly is your issue, the trace you just added has no errors and no HornetQ trace logging at all. what errors do you see? what are you seeing an what do you expect to see.

                        • 9. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                          Daniel Bastidas Newbie

                          If I don't set the logging level to debug I see nothing in the log on the server side except the following message

                           

                          WARN  [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff7f000101:-3490b58a:51313f7f:11 in state  RUN

                           

                          If I set the log level to debug I see the following messages

                          18:55:30,660 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Trying reconnection attempt 0/1
                          18:55:30,660 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Trying to connect with connector = org.hornetq.core.remoting.impl.invm.InVMConnectorFactory@1292514, parameters = {server-id=0} connector = org.hornetq.core.remoting.impl.invm.InVMConnector@4177ee
                          18:55:30,661 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Trying to connect at the main server using connector :org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0
                          18:55:30,662 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) Reconnection successfull
                          18:55:30,662 DEBUG [org.hornetq.core.client.impl.ClientSessionFactoryImpl] (EJB default - 10) ClientSessionFactoryImpl received backup update for live/backup pair = org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0 / null but it didn't belong to org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0
                          18:55:32,618 DEBUG [org.jboss.naming.remote.server.RemoteNamingService] (Remoting "danielbastidas-desktop" task-3) Channel Opened - Channel ID 36424bb0 (inbound) of Remoting connection 00ede8e4 to /10.4.13.103:41192
                          18:55:32,627 DEBUG [org.jboss.naming.remote.server.RemoteNamingService] (Remoting "danielbastidas-desktop" task-4) Chosen version 0x01
                          18:56:12,031 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
                          18:56:12,036 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
                          18:56:32,898 DEBUG [org.jboss.naming.remote.server.RemoteNamingService] (Remoting "danielbastidas-desktop" read-1) Channel Channel ID 36424bb0 (inbound) of Remoting connection 00ede8e4 to /10.4.13.103:41192 closed.
                          18:56:32,900 INFO  [org.jboss.as.naming] (Remoting "danielbastidas-desktop" task-3) JBAS011806: Channel end notification received, closing channel Channel ID 36424bb0 (inbound) of Remoting connection 00ede8e4 to null
                          18:58:22,078 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
                          18:58:22,080 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recovering these following IDs [XidImpl (19305676 bq:0.0.0.0.0.0.0.0.0.0.-1.-1.127.0.1.1.-53.111.74.118.81.49.63.127.0.0.0.22.0.0.0.1.0.0.0.1.49 formatID:131077 gtxid:0.0.0.0.0.0.0.0.0.0.-1.-1.10.4.13.103.-67.72.-47.-112.81.49.63.-102.0.0.0.20.49] at HornetQXAResourceWrapper [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], csf=ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], delegate=DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54], xaRecoveryConfigs=[XARecoveryConfig [hornetQConnectionFactory=HornetQConnectionFactory [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], clientID=null, dupsOKBatchSize=1048576, transactionBatchSize=1048576, readOnly=false], username=null, password=null]], instance=4917273]
                          18:58:22,088 DEBUG [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper] (Periodic Recovery) Recover DelegatingSession [session=ClientSessionImpl [name=4abd2e0a-82cb-11e2-81b2-080027fa3ce7, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], connectorConfig=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0, backupConfig=null], metaData=()]@691d54]
                          19:00:30,543 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff7f000101:-3490b58a:51313f7f:11 in state  RUN
                          

                           

                           

                          On the client side I see an application message saying the message was sucessfully send to the remote queue but the message really goes to the queue on the client server.

                           

                          What I'm expecting is send a message to a remote queue that resides on a JBoss standalone instance. The message is sent from another JBoss standalone instance.

                          Just trying to send a message to a remote queue as I did in JBoss 5.1.

                           

                          Sorry for my poor english if this is what is causing so much confusion.

                          • 10. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                            Clebert Suconic Master

                            wel... you're not giving us much information to help you. I honestly want to help you.. but I don't have much data beyond low level logging here.

                             

                             

                             

                            The TX reaper will kick in when you have a transaction open for a long period.. We don't know how you're declaring your TX scope (we have no code), and we don't know if your client finished ok or not.

                             

                             

                            I would suggest you debugging if your operation doing the TX is hanging or not.. and then after you identified why the TX is hanging you could provide us some stack traces and we would be able to help you.

                             

                             

                            so far it seems that you have a hanging method.. it could be a number of issues...  and once you identify what's hanging you will be able to identify it better.

                             

                            The logging you provided here doesn't show where the hanging is happening.

                            • 11. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                              Daniel Bastidas Newbie

                              I have debugged the code on the client side and there is no hanged method and also the client finishes ok.

                              One of the things I think it could be happening was that I need some kind of configuration to allow the remote messaging in the messaging subsystem of the configuration file, but it looks that there is nothing to do there.

                              But as you said I will try to dig a bit deeper to find out other clue and come back if something comes up.

                              Thanks to both of you for your time, thanks for try.

                              • 12. Re: Transaction timeout sending message to remote queue (JBoss AS 7.1.1Final)
                                Clebert Suconic Master

                                Maybe you're not declaring transaction boundaries correctly on your Stateful Session Beans? that would make it really a EJB question though (I'm just a smart user when it comes to that though)... So take a look if your transactions are finishing correctly. (i.e. they are not left open).