JMS transport prevents clean Axis2 shutdown
-------------------------------------------

                 Key: AXIS2-4759
                 URL: https://issues.apache.org/jira/browse/AXIS2-4759
             Project: Axis2
          Issue Type: Bug
          Components: transports
    Affects Versions: 1.5.1
         Environment: Tomcat 6.0
Open MQ 4.3
            Reporter: Grant Patterson


JMSListener doesn't close its JMS connections on shutdown. Open MQ connections 
have two threads that terminate when the connection is closed 
(imqConnectionFlowControl-0 and iMQReadChannel-0). If the connection isn't 
closed on shutdown then these threads prevent Axis2 and Tomcat from shutting 
down normally.

ServiceTaskManager is responsible for the JMS connections. On shutdown, it 
calls Connection.stop() rather than Connection.close(). This pauses the 
connection rather than closing it, and in the case of Open MQ the two 
connection threads remain running.

I have fixed this issue and will upload a patch.

The patch replaces the stop() call with a close() call and fixes several other 
issues with that were exposed once the connection was properly closed:
 - double-checked locking and synchronization on the wrong monitor when 
creating a new shared connection
 - Qpid deadlocks if a session's connection is closed on another thread while 
the session is closing. This caused the unit tests to fail.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to