IBM Support

IT32212: Topic handles are not closed when a Classes for Java MQQueueManager disconnects

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • When a Classes for Java application using connection pooling
    creates a number of topic objects from a queue manager object,
    and then calls disconnect on that queue manager object, the
    handles for these topics are not closed as expected before the
    queue manager instance is added to the pool to await reuse. When
    this queue manager is taken from the pool when the application
    creates a new queue manager instance, that new queue manager
    will have a reduced number of object handles available as a
    result of those previous topic handles not being closed - this
    can result in a 2017 MQRC_HANDLE_NOT_AVAILABLE error when
    creating topic object from this new queue manager instance when
    the number of object handles in use reaches the queue manager's
    object handle limit MAXHANDS.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This affects users of the Classes for Java who are also making
    use of both connection pooling and publish/subscribe
    functionality.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When a Classes for Java application created a new MQQueueManager
    instance with connection pooling enabled, and then used this
    queue manager object to create some new topic objects, and then
    called disconnect() on that queue manager to close the related
    objects and return the queue manger instance to the connection
    pool for later use, the topic objects owned by that queue
    manager instance were not closed as expected - calling
    disconnect() on a MQQueueManager instance should close all
    objects that had been created by that queue manager instance.
    
    So when another MQQueueManager object was created by that same
    application, and that original queue manager instance was taken
    from the pool to be reused, that queue manager instance still
    had a number of open handles in use that had not been closed,
    from the original topics created. This meant that when this new
    queue manager instance was used to open queues, topic and other
    objects for use, there was a smaller number of available topic
    handles available for use.
    
    This process could then be repeated if disconnect() was then
    called on this queue manager object. Eventually, an attempt to
    open a queue or topic object from the queue manager instance
    could fail with MQRC_HANDLE_NOT_AVAILABLE, as the queue manager
    had not cleared any of the topic handles that had been in use.
    

Problem conclusion

  • When a Classes for Java queue manager disconnects, all topics
    associated with that queue manager are closed and the handles
    are cleared, matching the behaviour for other types of object
    creates for a queue manager instance.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.7
    v9.2 LTS   9.2.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

    IT32212

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7271

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-03-18

  • Closed date

    2020-09-29

  • Last modified date

    2020-09-29

  • 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

    IBM MQ BASE MP

  • Fixed component ID

    5724H7271

Applicable component levels

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"910"}]

Document Information

Modified date:
30 September 2020