IBM Support

IT32554: Channel exits written in Java are unable to access the local address used by the channel

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

  • A channel security exit written in Java contains logic to access
    various pieces of information within the MQCD object that is
    passed into it.
    
    The security exit is able to retrieve various pieces of
    information successfully, such as the name of the queue manager
    that it is connected to, and the name of the channel. However,
    the security exit is unable to access the local address being
    used by the channel instance - whenever it tries to do this, by
    calling the method:
    
    MQCD.getLocalAddress()
    
    the method returns null.
    

Local fix

  • NA
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of:
    
    - The IBM MQ classes for Java.
    - The IBM MQ classes for JMS.
    - The IBM MQ resource adapter.
    
    who have applications that are configured to use channel exits
    written in Java.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When using a channel exit written in Java, one of the parameters
    passed to the exit is an MQCD object representing the channel
    definition. The MQCD object contains a method called:
    
    getLocalAddress()
    
    The JavaDoc for the method (which can be found here
    https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_latest/com
    .ibm.mq.javadoc.doc/WMQJavaClasses/com/ibm/mq/exits/MQCD.html#ge
    tLocalAddress-- ) states that the method should return the local
    address being used by the channel.
    
    
    Now, when an MQ classes for Java or classes for JMS application,
    or the MQ resource adapter, establish a connection to a queue
    manager using the CLIENT transport, they call into a component
    called the Java Message Queueing Interface (JMQI). This
    component creates the connection, and updates an MQCD object
    with information about the channel definition that has been
    used. It is this MQCD object that is subsequently passed to
    channel exits written in Java.
    
    The JMQI would only update the local address field on the MQCD
    object if the Java system property:
    
    com.ibm.mq.localAddress
    
    had been set. If the property had not been defined, then the
    JMQI would not update the local address field on the MQCD object
    after establishing a connection to a queue manager.
    
    As a result, if an application was using a channel exit written
    in Java and the Java system property:
    
    com.ibm.mq.localAddress
    
    had not been set, then when the channel exit called the method:
    
    MQCD.getLocalAddress()
    
    the method always returned null.
    

Problem conclusion

  • The Java Message Queueing Interface (JMQI) has been updated to
    ensure that the local address field is set on an MQCD object
    after a channel instance has been created and is connected to a
    queue manager.
    
    This means that when a channel exit written in Java calls the
    method:
    
    MQCD.getLocalAddress()
    
    the method will return the local address that the channel
    instance is using.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.8
    v9.2 LTS   9.2.0.2
    v9.x CD    9.2.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

    IT32554

  • 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-04-15

  • Closed date

    2020-12-17

  • Last modified date

    2020-12-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

    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:
12 January 2021