1 Reply Latest reply on Dec 5, 2011 7:19 AM by garytully

    JMS transaction flood

    grahamp

      Is it normal to get a flood of JMS transactions while Camel is active but idle?  I get the following cycle repeated about 10 times per second, part of which seems to create and destroy threads:

       

      2011-11-24 20:12:43 | DEBUG | ringframework.transaction | stractPlatformTransactionManager   365 | Creating new transaction with name : PROPAGATION_REQUIRED,ISOLATION_DEFAULT

      2011-11-24 20:12:43 | DEBUG | ringframework.transaction | stractPlatformTransactionManager   752 | Initiating transaction commit

      2011-11-24 20:12:43 | DEBUG | ringframework.transaction | connection.JmsTransactionManager   230 | Committing JMS transaction on Session ActiveMQSession {id=ID:GRAHAMPD520L.workplace.com-59595-1322165502131-2:954:1,started=false}

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | .apache.activemq.ActiveMQSession   558 | ID:GRAHAMPD520L.workplace.com-59595-1322165502131-2:954:1 Transaction Commit :null

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | emq.broker.region.AbstractRegion   322 | default removing consumer: ID:GRAHAMPD520L.workplace.com-59595-1322165502131-2:954:-1:1 for destination: ActiveMQ.Advisory.TempQueue,ActiveMQ.Advisory.TempTopic

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | ivemq.broker.TransportConnection   718 | remove connection id: ID:GRAHAMPD520L.workplace.com-59595-1322165502131-2:954

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | ivemq.broker.TransportConnection   976 | Stopping connection: vm://default#1904

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | ivemq.broker.TransportConnection   976 | Stopping connection: vm://default#1906

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | ivemq.broker.TransportConnection   992 | Stopped transport: vm://default#1906

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | ivemq.broker.TransportConnection  1032 | Connection Stopped: vm://default#1906

      2011-11-24 20:12:43 | DEBUG | he.activemq.activemq-core | ivemq.broker.TransportConnection   672 | Setting up new connection id: ID:GRAHAMPD520L.workplace.com-59595-1322165502131-2:983, address: vm://default#1964

      2011-11-24 20:12:43 | DEBUG | ringframework.transaction | stractPlatformTransactionManager   365 | Creating new transaction with name : PROPAGATION_REQUIRED,ISOLATION_DEFAULT

       

       

      While it doesn't hit the processor seriously, it makes debug attachment very difficult as (using Eclipse) the debugger is soon swamped by attempting to refresh the thread list 10 times per second.  Also the memory load does creep up slowly.

        • 1. Re: JMS transaction flood
          garytully

          Look at using a pooled connection factory and cache mode cache_consumer. This will reduce the churn. Also, if you don't use temp destinations, you can disable the temp advisory registration with the url parameter {{?jms.watchTopicAdvisories=false}} on the connection factory broker url. Also, be more selective in how you enable debug logging, use packages that are specific to your applications so you don't get unnecessary noise from the infrastructure.