IBM Support

PK85404: DEADLOCK WHILE CLOSING MULTIPLE JMS CONNECTIONS FROM WITHIN AN EXCEPTION LISTENER ONEXCEPTION METHOD.

Fixes are available

Java SDK 1.5 SR10 Cumulative Fix for WebSphere Application Server
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for IBM i
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for AIX
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Windows
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for HP-UX
7.0.0.7: Java SDK 1.6 SR6 Cumulative Fix for WebSphere Application Server
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Solaris
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Linux
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for IBM i
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Windows
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for AIX
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for HP-UX
7.0.0.9: Java SDK 1.6 SR7 Cumulative Fix for WebSphere Application Server
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Solaris
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Linux
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for IBM i
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Windows
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for HP-UX
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for AIX
7.0.0.11: Java SDK 1.6 SR7 Cumulative Fix for WebSphere Application Server
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Solaris
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Linux
6.1.0.29: Java SDK 1.5 SR11 Cumulative Fix for WebSphere Application Server
6.1.0.31: Java SDK 1.5 SR11 FP1 Cumulative Fix for WebSphere Application Server
6.1.0.33: Java SDK 1.5 SR12 FP1 Cumulative Fix for WebSphere
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for AIX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for HP-UX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for IBM i
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Linux
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Solaris
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Windows
7.0.0.13: Java SDK 1.6 SR8FP1 Cumulative Fix for WebSphere Application Server
6.1.0.35: Java SDK 1.5 SR12 FP2 Cumulative Fix for WebSphere
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for AIX
7.0.0.15: Java SDK 1.6 SR9 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for HP-UX
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for IBM i
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Linux
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Solaris
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Windows
6.1.0.37: Java SDK 1.5 SR12 FP3 Cumulative Fix for WebSphere
7.0.0.17: WebSphere Application Server V7.0 Fix Pack 17
7.0.0.17: Java SDK 1.6 SR9 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.19: WebSphere Application Server V7.0 Fix Pack 19
7.0.0.21: WebSphere Application Server V7.0 Fix Pack 21
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
6.1.0.47: WebSphere Application Server V6.1 Fix Pack 47
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
6.1.0.39: Java SDK 1.5 SR12 FP4 Cumulative Fix for WebSphere Application Server
6.1.0.41: Java SDK 1.5 SR12 FP5 Cumulative Fix for WebSphere Application Server
6.1.0.43: Java SDK 1.5 SR13 Cumulative Fix for WebSphere Application Server
6.1.0.45: Java SDK 1.5 SR14 Cumulative Fix for WebSphere Application Server
6.1.0.47: Java SDK 1.5 SR16 Cumulative Fix for WebSphere Application Server
7.0.0.19: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.21: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere
7.0.0.23: Java SDK 1.6 SR10 FP1 Cumulative Fix for WebSphere
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Deadlocks might occur if customer code closes multiple JMS
    connections from within an exception listener onException
    method, or obtains customer owned locks within an onException
    method that might be held by other threads performing JMS
    calls.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  Users of the default messaging provider     *
    *                  for IBM WebSphere Application Server        *
    *                  Version 6.1 or Version 7.0                  *
    ****************************************************************
    * PROBLEM DESCRIPTION: Deadlocks might be encountered in       *
    *                      onException methods registered by JMS   *
    *                      client applications, due to             *
    *                      interactions between locks on           *
    *                      multiple JMS connections, or customer   *
    *                      owned synchronization code              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The default messaging provider JMS client holds a lock
    associated with the JMS connection when calling the
    onException method.
    
    This might result in deadlocks if either the customer code in
    the onException method performs its own synchronization, or if
    multiple JMS connection objects are accessed within the
    onException method.
    
    The below extract from a javacore shows two example threads
    deadlocked because an exception listener was registered with
    two separate JMS connections, which closes both of those
    connections:
    
    "JMS Exception Callback : 0"
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                                State(JmsConnectionImpl.java:1300)
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                                 close(JmsConnectionImpl.java:710)
    at Main.onException(Main.java:46) # Example customer method
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                callExceptionListener(JmsConnectionImpl.java:1170)
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                            access$500(JmsConnectionImpl.java:108)
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl$
            JmsAsyncExceptionTask.run(JmsConnectionImpl.java:1063)
    at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1473)
    
    "JMS Exception Callback : 1"
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                             getState(JmsConnectionImpl.java:1300)
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                                 close(JmsConnectionImpl.java:710)
    at Main.onException(Main.java:45) # Example customer method
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                callExceptionListener(JmsConnectionImpl.java:1170)
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl.
                            access$500(JmsConnectionImpl.java:108)
    at com/ibm/ws/sib/api/jms/impl/JmsConnectionImpl$
            JmsAsyncExceptionTask.run(JmsConnectionImpl.java:1063)
    at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1473)
    

Problem conclusion

  • The fix for this APAR changes the JMS client code so that it
    does not hold a lock while calling the exception listener,
    while still ensuring that only one thread is ever active in an
    onException method for an individual JMS connection.
    Exception listeners for separate JMS connections might still
    be active on multiple threads.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 6.1.0.37 and 7.0.0.7.  Please refer to the Recommended
    Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK85404

  • Reported component name

    PLAT MSG COM

  • Reported component ID

    620600101

  • Reported release

    200

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-04-27

  • Closed date

    2009-05-22

  • Last modified date

    2009-05-22

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    PLAT MSG COM

  • Fixed component ID

    620600101

Applicable component levels

  • R200 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
29 December 2021