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

ActiveMQ leaks connections if a JMS message is sent from an MDB

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Minor Minor
    • 13.0.0.Final
    • 10.1.0.Final
    • JMS, Transactions
    • None

      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

      (see attached log.txt)

      I have no idea why JIRA attached each file twice.

        1. server.log
          40 kB
        2. log.txt
          32 kB
        3. log.txt
          32 kB
        4. leak.zip
          26 kB
        5. leak.zip
          26 kB

              ehugonne1@redhat.com Emmanuel Hugonnet
              scott-20 Scott Van Wart (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: