IBM Support

IC85084: WEBSPHERE MQ CLASSES FOR JMS/JAVA THREAD HANGS WHEN CONFIGURED TO USE ASYNCHRONOUS PUT TO SEND MESSAGES TO A QUEUE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A JMS application is using the WebSphere MQ classes for JMS
    version 7.0.1.8, and creates a JMS MessageProducer with a
    MQDestination which is configured to allow the use of the
    WebSphere MQ asynchronous put functionality.
    
    When the JMS MessageProducer attempts to send a message, the JVM
    thread associated with the sender hangs, preventing the send
    operation from completing.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the WebSphere MQ classes for JMS,
    version 7.0.1.8, who are using a JMS MessageProducer to send a
    message to a WebSphere MQ JMS Destination using the WebSphere
    MQ asynchronous PUT functionality.
    
    This functionality is enabled by the configuration of the
    com.ibm.mq.jms.MQDestination property:
    
    "putAsyncAllowed"
    
    must be set to a integer value other than 0.
    
    This may be programmatically configured by calling the method:
    
    com.ibm.mq.jms.MQDestination.setPutAsyncAllowed(int paa)
    
    where 'paa' has one of the following constant values:
    
    - WMQConstants.WMQ_PUT_ASYNC_ALLOWED
    - WMQConstants.WMQ_PUT_ASYNC_ALLOWED_AS_DEST
    - WMQConstants.WMQ_PUT_ASYNC_ALLOWED_AS_TOPIC_DEF
    - WMQConstants.WMQ_PUT_ASYNC_ALLOWED_AS_Q_DEF
    
    Note that the using any of the 3 WMQ_PUT_ASYNC_ALLOWED_AS_*
    constants will mean Asynchronous PUT is only used if the
    WebSphere MQ Topic/Queue definition on the queue manager has a
    default put response type of "Asynchronous".  When one of these
    three constants is used, "putAsyncAllowed=-1" is visible in the
    Destination's URI.  When using:
    
    WMQConstants.WMQ_PUT_ASYNC_ALLOWED
    
    "putAsyncAllowed=-1" is visible in the Destination's URI.
    
    This issue also affects users of the WebSphere MQ classes for
    Java who are putting messages to a WebSphere MQ queue
    specifying MQPMO_ASYNC_RESPONSE in the PUT Message Options
    (MQPMO) structure.
    
    Platforms affected:
    All Distributed (iSeries, all Unix and Windows) +Java +Java zOS
    ****************************************************************
    PROBLEM SUMMARY:
    A typographical error in the WebSphere MQ classes for JMS
    caused the classes to use an incorrect offset constant when
    checking the values inside a properties structure returned from
    the Queue Manager during connection negotiation.
    
    Changes made by APAR IC79103 (which first shipped in the fix
    pack version 7.0.1.8) resolved an unrelated issue.  However
    this code change also resulted in the properties structure
    being accessed using the incorrect offset value, when an
    attempt was made to put a message to a queue using the
    asynchronous put mode of operation.
    
    This had no adverse implications for JMS applications
    performing synchronous MQPUT operations, which is the default
    client behaviour.
    
    When applications utilised the asynchronous MQPUT
    functionality, the value returned by examining the properties
    structure using the incorrect offset led to the client entering
    an inconsistent internal state.  In this state, the WebSphere
    MQ classes for JMS made the asynchronous MQPUT call, but then
    expected the queue manager to provide a synchronous response,
    as it would during a default mode synchronous MQPUT.
    
    However by design, the queue manager does not provide a response
    to a asynchronous MQPUT operation, which resulted in an
    indefinite wait within the WebSphere MQ classes for JMS.  This
    was observed externally as the sending thread hanging.
    

Problem conclusion

  • The WebSphere MQ classes for JMS and WebSphere MQ classes for
    Java have been modified to use the correct offset value when
    examining the properties structure, permitting the expected
    asynchronous MQPUT behaviour to take place for destinations
    configured to permit the use of asynchronous MQPUTs.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
                       v7.0
    Platform           Fix Pack 7.0.1.9
    --------           --------------------
    Windows            U200337
    AIX                U849391
    HP-UX (PA-RISC)    U849723
    HP-UX (Itanium)    U849728
    Solaris (SPARC)    U849724
    Solaris (x86-64)   U849730
    iSeries            7.0.1.9
    Linux (x86)        U849725
    Linux (x86-64)     U849729
    Linux (zSeries)    U849726
    Linux (Power)      U849727
    zOS                7.0.1.9
    
                       v7.1
    Platform           Fix Pack 7.1.0.2
    --------           --------------------
    Windows            7.1.0.2
    AIX                7.1.0.2
    HP-UX (Itanium)    7.1.0.2
    Solaris (SPARC)    7.1.0.2
    Solaris (x86-64)   7.1.0.2
    iSeries            7.1.0.2
    Linux (x86)        7.1.0.2
    Linux (x86-64)     7.1.0.2
    Linux (zSeries)    7.1.0.2
    Linux (Power)      7.1.0.2
    zOS                7.1.0.2
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC85084

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-07-03

  • Closed date

    2012-07-17

  • Last modified date

    2012-07-17

  • 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

    WMQ WINDOWS V7

  • Fixed component ID

    5724H7220

Applicable component levels

  • R701 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
17 July 2012