IBM Support

IT32371: IT IS NOT POSSIBLE TO SET AN EXPIRY ON JMS SESSIONS

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 new function.

Error description

  • When using some JMS providers or when connecting through a
    firewall it is possible that established JMS connections or
    sessions may be forcibly broken. Although when this occurs the
    JMS nodes will attempt to call close on all open resources, for
    some JMS providers this can lead to a leak of objects
    associated with a session. It is not possible to set a maximum
    idle time on JMS sessions such that they are automatically
    closed before any server side expiry and therefore there is no
    way to avoid such a leak in a problematic JMS client.
    
    A JMS  client which has been observed to exhibit this problem is
    the
    Apache QPid client used to connect to an Azure EventHub.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    All users of IBM Integration bus version 10 or App Connect
    Enterprise version 11 using the JMS Nodes.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    <span style="background-color:rgb(255, 255, 255)">When using
    some JMS providers or when connecting through a </span><span
    style="background-color:rgb(255, 255, 255)">firewall it is
    possible that established JMS connections or </span><span
    style="background-color:rgb(255, 255, 255)">sessions may be
    forcibly broken. Although when this occurs the  </span><span
    style="background-color:rgb(255, 255, 255)">JMS nodes will
    attempt to call close on all open resources, for </span><span
    style="background-color:rgb(255, 255, 255)">some JMS providers
    this can lead to a leak of objects </span><span
    style="background-color:rgb(255, 255, 255)">associated with a
    session. It is not possible to set a maximum </span><span
    style="background-color:rgb(255, 255, 255)">idle time on JMS
    sessions such that they are automatically </span><span
    style="background-color:rgb(255, 255, 255)">closed before any
    server side expiry and therefore there is no </span><span
    style="background-color:rgb(255, 255, 255)">way to avoid such a
    leak in a problematic JMS client.          </span>
    <span style="background-color:rgb(255, 255, 255)">
    
    </span>
    <span style="background-color:rgb(255, 255, 255)">A JMS
    </span><span style="background-color:rgb(255, 255, 255)">client
    which has been observed to exhibit this problem is the
    </span><span style="background-color:rgb(255, 255, 255)">Apache
    QPid client used to connect to an Azure EventHub.      </span>
    

Problem conclusion

  • The JMS Nodes have been updated to include an option to expire
    connections and session. The behaviour of expiry is controlled
    with the following 3 environment variables:
    
    1.) MQSI_JMS_CONNECTION_MAX_TTL=<integer_number_of_seconds>
    
    If a JMS Connection has not been marked as active in the
    specified number of seconds then the connection is closed along
    with all other open resources associated with the connection,
    for example all sessions, produces, consumers etc.
    
    2.) MQSI_JMS_SESSION_MAX_TTL=<integer_number_of_seconds>
    
    If a JMS Session has not been marked as active in the specified
    number of seconds then the session is closed along with all
    other open resources associated with the session, for example
    all producers, consumers etc.
    
    3.) MQSI_JMS_GLOBAL_CLOSE_TIMER=<integer_number_of_seconds>
    
    All open connections are closed periodically whether they have
    been used or not.
    
    The expiry times for sessions and connections can be used
    together, when doing so do not set the connection timer lower
    than the session timer.
    
    If you set the global close timer then this disables the
    connection and session expiry.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v10.0      10.0.0.21
    v11.0      11.0.0.9
    
    The latest available maintenance can be obtained from:
    http://www-01.ibm.com/support/docview.wss?rs=849&uid=swg27006041
    
    If the maintenance level is not yet available,information on
    its planned availability can be found on:
    http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27006308
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT32371

  • Reported component name

    INTEGRATION BUS

  • Reported component ID

    5724J0540

  • Reported release

    A00

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-03-31

  • Closed date

    2020-05-18

  • Last modified date

    2020-05-18

  • 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

    INTEGRATION BUS

  • Fixed component ID

    5724J0540

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNQK6","label":"IBM Integration Bus"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
19 May 2020