activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bwarren <brad.war...@usairways.com>
Subject Thread leak ActiveMQ 5.2 w/ stomp
Date Tue, 05 May 2009 15:16:01 GMT

We have ActiveMQ 5.2.0 running inside of JBoss 5.0.1.  There are about 100
stomp clients sending messages to a single queue that has a pool of 10 MDB
consumers.  The load is about 10 messages per minute.  When the messages are
processed another message is usually posted to a topic.

We are seeing slow thread growth in the JBoss server that never gets cleaned
up by the GC.  We've isolated it to the stomp messaging by undeploying
everything else.  All of the queues and topics are predefined and there's no
clustering going on (yet).  JBoss is running under its default configuration
(memory settings, etc.)  Here's the broker.xml:

<beans xmlns="http://activemq.apache.org/schema/core">
  <broker useJmx="true" brokerName="jboss-activemq-broker">
    <managementContext>
      <managementContext createConnector="false"/>
    </managementContext>
    <destinationPolicy>
      <policyMap>
        <policyEntries>
          <policyEntry queue=">" producerFlowControl="false"
memoryLimit="64mb" />
          <policyEntry topic=">" producerFlowControl="false"
memoryLimit="64mb" />
          <policyEntry topic="FOO.>">
            <dispatchPolicy>
              <strictOrderDispatchPolicy />
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy />
            </subscriptionRecoveryPolicy>
          </policyEntry>
        </policyEntries>
      </policyMap>
    </destinationPolicy>
    <persistenceAdapter>
      <journaledJDBC journalLogFiles="5"
dataDirectory="${jboss.server.data.dir}/activemq"/>
    </persistenceAdapter>
    <transportConnectors>
      <transportConnector name="jboss-activemq-broker"
uri="stomp://localhost:61613"/>
    </transportConnectors>
    <networkConnectors>
      <networkConnector uri="multicast://default"/>
    </networkConnectors>
  </broker>
</beans>

Connection factory definitions:

  <tx-connection-factory>
    <jndi-name>activemq/QueueConnectionFactory</jndi-name>
    <xa-transaction/>
    <track-connection-by-tx/>
    <rar-name>activemq-rar.rar</rar-name>
   
<connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
    <ServerUrl>vm://localhost</ServerUrl>
    <min-pool-size>1</min-pool-size>
    <max-pool-size>200</max-pool-size>
    <blocking-timeout-millis>30000</blocking-timeout-millis>
    <idle-timeout-minutes>3</idle-timeout-minutes>
  </tx-connection-factory>
  <tx-connection-factory>
    <jndi-name>activemq/TopicConnectionFactory</jndi-name>
    <xa-transaction/>
    <track-connection-by-tx/>
    <rar-name>activemq-rar.rar</rar-name>
   
<connection-definition>javax.jms.TopicConnectionFactory</connection-definition>
    <ServerUrl>vm://localhost</ServerUrl>
    <min-pool-size>1</min-pool-size>
    <max-pool-size>200</max-pool-size>
    <blocking-timeout-millis>30000</blocking-timeout-millis>
    <idle-timeout-minutes>3</idle-timeout-minutes>
  </tx-connection-factory>

Queue definition:

   <mbean code="org.jboss.resource.deployment.AdminObject"
name="activemq.queue:name=scannerIncomingQueue">
	 <attribute name="JNDIName">activemq/queue/scanner.incoming</attribute>
	 <depends
optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-rar.rar'</depends>
	 <attribute name="Type">javax.jms.Queue</attribute>
	 <attribute name="Properties">PhysicalName=scanner.incoming</attribute>
   </mbean>

MDB settings:

@MessageDriven(
	activationConfig={
	
@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),
	
@ActivationConfigProperty(propertyName="destination",propertyValue="scanner.incoming"),
	
@ActivationConfigProperty(propertyName="acknowledgeMode",propertyValue="Auto-acknowledge"),
	
@ActivationConfigProperty(propertyName="subscriptionDurability",propertyValue="NonDurable")
	}
)
@ResourceAdapter("activemq-rar.rar")

The only suggestion I've found is to set closeAsync = false on the stomp
transport conenctor, which is supposed to close the socket connection in the
same thread.  Other than that, is there anything else that might explain
what's going on?
-- 
View this message in context: http://www.nabble.com/Thread-leak-ActiveMQ-5.2-w--stomp-tp23389591p23389591.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message