IBM Support

IC71736: WEBSPHERE MQ V7.0.1.* JMS CLIENT: UNABLE TO CLOSE MESSAGE CONSUMERS UNTIL RECEIVE() CALLS COMPLETE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • WebSphere MQ classes for JMS clients issue a
    MQQueueReceiver.close() or MQMessageConsumer.close() call, but
    receive(long timeout) calls block the close() from completing.
    Once the blocking receive(long timeout) call times out, the
    message consumer is closed.
    

Local fix

  • Adjust application code such that the timeout value on the
    QueueReceiver.receive(long timeout) method call is a smaller
    value, and looping the call if necessary to extend it back to
    the original timelength.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of of WebSphere MQ classes for Java
    Messaging Service (JMS) client, at version v7.0.1.
    
    Platforms affected:
    All Distributed (iSeries, all Unix and Windows) +Java
    ****************************************************************
    PROBLEM SUMMARY:
    When a MessageConsumer.close() method call is made, the
    MessageConsumer is closed.  While it is being closed, the
    close() call blocks until the MessageConsumer has closed, and
    any outstanding receives(long timeout) method calls on that
    consumer should return a null if a message was not in the
    process of being transferred.
    
    Using WebSphere MQ classes for JMS v6, the consumer takes up to
    5 seconds to close, independent of the timeout value specified
    on the receive.  In v7.0.0, the consumer closed almost
    immediately, with any outstanding receive(long timeout) calls
    returning a null.
    
    However in v7.0.1, the client blocks on the
    MessageConsumer.close() until the outstanding
    MessageConsumer.receive(long timeout) calls has run to
    completion, which occurs when the timeout time has been
    reached. For example, if the application did the following:
    
    messageConsumer.receive(600000);
    
    which instructs the client code to wait up to 10 minutes to
    receive a message, and on another thread, 1 minute later the
    application did:
    
    messageConsumer.close();
    
    in v7.0.1, this close() will take 9 minutes to complete, the
    remaining time for the receive(600000) to complete.
    

Problem conclusion

  • Additional locking was put into the WebSphere MQ classes for
    JMS client at the v7.0.1 level of code, which was preventing
    the MessageConsumer.close() operation from running through to
    completion.
    
    The additional locking was held by the open receive(long
    timeout) method call, so once this completed the close() could
    complete.
    
    The code was modified under this APAR to adjust the sequence of
    events so that the receive(long timeout) call was interrupted
    before the necessary locks were requested by the close().  This
    resolves the issue for the client.
    
    | MDVREGR 7.0-WS-MQ-AixPPC64-RP0001         |
    | MDVREGR 7.0-WS-MQ-HpuxIA64-RP0001         |
    | MDVREGR 7.0-WS-MQ-HpuxPaRISC64-RP0001     |
    | MDVREGR 7.0-WS-MQ-LinuxIA32-RP0001        |
    | MDVREGR 7.0-WS-MQ-LinuxPPC64-RP0001       |
    | MDVREGR 7.0-WS-MQ-LinuxS390X-RP0001       |
    | MDVREGR 7.0-WS-MQ-LinuxX64-RP0001         |
    | MDVREGR 7.0-WS-MQ-SolarisSparc64-RP0001   |
    | MDVREGR 7.0-WS-MQ-SolarisX64-RP0001       |
    | MDVREGR 7.0-WS-MQ-Windows-RP0001          |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0001       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0001       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0001   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0001      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0001     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0001     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0001       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0001 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0001     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0001        |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0002       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0002       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0002   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0002      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0002     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0002     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0002       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0002 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0002     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0002        |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0003       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0003       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0003   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0003      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0003     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0003     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0003       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0003 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0003     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0003        |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0004       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0004       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0004   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0004      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0004     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0004     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0004       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0004 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0004     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0004        |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0005       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0005       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0005   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0005      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0005     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0005     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0005       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0005 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0005     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0005        |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0006       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0006       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0006   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0006      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0006     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0006     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0006       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0006 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0006     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0006        |
    
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
                       v7.0
    Platform           Fix Pack 7.0.1.7
    --------           --------------------
    Windows            U200333
    AIX                U843721
    HP-UX (PA-RISC)    U844089
    HP-UX (Itanium)    U844094
    Solaris (SPARC)    U844090
    Solaris (x86-64)   U844096
    iSeries            tbc_p700_0_1_7
    Linux (x86)        U844091
    Linux (x86-64)     U844095
    Linux (zSeries)    U844092
    Linux (Power)      U844093
    
    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

    IC71736

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-10-07

  • Closed date

    2010-11-04

  • Last modified date

    2011-08-26

  • 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

  • R700 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","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
26 August 2011