[jboss-jira] [JBoss JIRA] (WFLY-8217) ActiveMQ leaks connections if a JMS message is sent from an MDB
Scott Van Wart (JIRA)
issues at jboss.org
Thu Feb 23 10:02:00 EST 2017
Scott Van Wart created WFLY-8217:
------------------------------------
Summary: ActiveMQ leaks connections if a JMS message is sent from an MDB
Key: WFLY-8217
URL: https://issues.jboss.org/browse/WFLY-8217
Project: WildFly
Issue Type: Bug
Components: JMS, Transactions
Affects Versions: 10.1.0.Final
Environment: Running on Windows 10. Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Reporter: Scott Van Wart
Assignee: Jeff Mesnil
If an MDB causes a JMS message to be sent during the call to onMessage(), ActiveMQ won't close its connection. I'm using JMS2 through an @Inject'ed JMSContext. My sample project is an EAR with an EJB JAR (containing a service and an MDB) and a JAX-RS endpoint (entry point for the test).
1) Build the EAR
2) Run wildfly with the standalone-full.xml configuration:
{{ standalone.bat --server-config=standalone-full.xml}}
3) Enable debug and error reporting for leaked connections with ActiveMQ/CCM:
{{ jboss-cli.bat -c}}
{{ /subsystem=jca/cached-connection-manager=cached-connection-manager:write-attribute(name=debug,value=true)
/subsystem=jca/cached-connection-manager=cached-connection-manager:write-attribute(name=error,value=true)}}
4) Deploy the EAR.
5) Access http://localhost:8080/leak-web/rest/test?message=Hi
The REST endpoint will send a message to the test topic (Defined in leak-ejb/src/main/java/test/mdb/TestTopic.java). TestTopicListener (in the same package as TestTopic) will receive the message and send a second message to the topic. Upon returning from TestTopicListener.onMessage(), the message is sent, but this shows up in the logs:
{{10:45:10,692 WARN [org.jboss.weld.Interceptor] (Thread-0 (ActiveMQ-client-global-threads-1352698443)) WELD-001703: Unable to determine the @Intercepted Bean<?> for [UnbackedAnnotatedField] @Inject @Intercepted private com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired.interceptedBean
10:45:10,698 INFO [test.mdb.TestTopicListener] (Thread-0 (ActiveMQ-client-global-threads-1352698443)) Message In: Hi
10:45:10,704 INFO [org.jboss.jca.core.api.connectionmanager.ccm.CachedConnectionManager] (Thread-0 (ActiveMQ-client-global-threads-1352698443)) IJ000100: Closing a connection for you. Please close them yourself: org.apache.activemq.artemis.ra.ActiveMQRASession at 7e39c71f: java.lang.Throwable: STACKTRACE
at org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl.registerConnection(CachedConnectionManagerImpl.java:308)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:777)
at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.allocateConnection(ActiveMQRASessionFactoryImpl.java:853)
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.jms.client.ActiveMQJMSContext.checkSession(ActiveMQJMSContext.java:142)
at org.apache.activemq.artemis.jms.client.ActiveMQJMSContext.createTextMessage(ActiveMQJMSContext.java:330)
at org.wildfly.extension.messaging.activemq.deployment.injection.JMSContextWrapper.createTextMessage(JMSContextWrapper.java:157)
at test.service.TestService.sendMessage(TestService.java:23)}}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list