IBM Support

IT18190: MQ CLASSES FOR JAVA GENERATE FFDC WITH PROBE IDENTIFIER 99 AND SOURCE METHOD MQOPEN WHEN TRYING TO OPEN A TOPIC

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 an application using the MQ V8.0.0.5 classes for Java
    connects to a queue manager using the CLIENT transport and calls
    the method:
    
     MQQueueManager.accessTopic(MQDestination,String,String,int)
    
    to open a topic destination, an ArrayIndexOutOfBoundsException
    is thrown and an FFDC containing the following information is
    generated:
    ****************************************************************
    Source Class   :-
        com.ibm.mq.jmqi.remote.api.RemoteFAP
    Source Method  :-
        MQOPEN(Hconn,MQOD,int,Phobj,Pint,Pint,RemoteHobj)
    ProbeID     :- 99
    
                  Data
                  ----
    |  Description          :- MQOPEN -
                       ArrayIndexOutOfBoundsException
    |  buffer contents        :- <data buffer>
    |  policyLength         :- 1447646032
    |  policyOffset         :- 793988426
    |  policyReadPos         :- 552
    |  rMQAPI.getRfpBuffer().length :- 32764
    |  rMQAPI.getRfpOffset()     :- 0
    
                 Stack trace
                  -----------
    |  FFST Location :- java.lang.Exception
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              getCurrentPosition(Trace.java:2146)
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              createFFSTString(Trace.java:2056)
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              ffstInternal(Trace.java:1938)
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              ffst(Trace.java:1739)
    |    at com.ibm.mq.jmqi.remote.api.RemoteFAP.
              MQOPEN(RemoteFAP.java:3503)
    |    at com.ibm.mq.jmqi.remote.api.RemoteFAP.
              MQOPEN(RemoteFAP.java:3131)
    |    at com.ibm.mq.jmqi.monitoring.JmqiInterceptAdapter.
              MQOPEN(JmqiInterceptAdapter.java:532)
    |    at com.ibm.mq.ese.jmqi.ESEJMQI.MQOPEN(ESEJMQI.java:452)
           :   :   :   :   :
    ****************************************************************
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of:
    
    - The MQ V8 classes for Java
    
    who have applications that connect to a queue manager using the
    CLIENT transport, make use of Advanced Message Security (AMS)
    functionality, and access topics by calling one of the methods
    shown below:
    
    - MQQueueManager.accessTopic(MQDestination, String, String, int)
    - MQQueueManager.accessTopic(MQDestination, String, String, int,
    String)
    - MQQueueManager.accessTopic(MQDestination, String, String, int,
    String, String)
    - MQQueueManager.accessTopic(MQDestination, String, String, int,
    String, String, Hashtable)
    
    - MQQueueManager.accessTopic( String, String, int, int)
    - MQQueueManager.accessTopic( String, String, int, int, String)
    - MQQueueManager.accessTopic( String, String, int, int, String,
    String)
    - MQQueueManager.accessTopic( String, String, int, int, String,
    String, Hashtable)
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When an application calls one of the following methods:
    
    - MQQueueManager.accessTopic(MQDestination, String, String, int)
    - MQQueueManager.accessTopic(MQDestination, String, String, int,
    String)
    - MQQueueManager.accessTopic(MQDestination, String, String, int,
    String, String)
    - MQQueueManager.accessTopic(MQDestination, String, String, int,
    String, String, Hashtable)
    
    - MQQueueManager.accessTopic( String, String, int, int)
    - MQQueueManager.accessTopic( String, String, int, int, String)
    - MQQueueManager.accessTopic( String, String, int, int, String,
    String)
    - MQQueueManager.accessTopic( String, String, int, int, String,
    String, Hashtable)
    
    the MQ classes for Java will:
    
    - Construct an MQOD (Object descriptor) structure containing
    information about the topic that the application wants to
    access.
    - Send the MQOD to the queue manager as part of an MQOPEN API
    call.
    
    The queue manager receives the MQOPEN request, and processes it.
    As part of this processing, it will update any output fields in
    the MQOD. When the MQOPEN API call has completed, the queue
    manager sends back an MQOPEN reply containing the updated MQOD.
    
    If the MQOPEN reply contained a Version 4 MQOD structure that
    had a value for the "ResObjectString" field, then the MQ classes
    for Java were unable to process the Advanced Message Security
    (AMS) policy data for the topic within the returned MQOD
    correctly. As a result, an ArrayIndexOutOfBoundsException was
    thrown back to the application and an FFDC was generated
    containing the information shown below:
    
    ****************************************************************
    Source Class   :-
        com.ibm.mq.jmqi.remote.api.RemoteFAP
    Source Method  :-
        MQOPEN(Hconn,MQOD,int,Phobj,Pint,Pint,RemoteHobj)
    ProbeID     :- 99
    
                  Data
                  ----
    |  Description          :- MQOPEN -
                       ArrayIndexOutOfBoundsException
    |  buffer contents        :- <data buffer>
    |  policyLength         :- 1447646032
    |  policyOffset         :- 793988426
    |  policyReadPos         :- 552
    |  rMQAPI.getRfpBuffer().length :- 32764
    |  rMQAPI.getRfpOffset()     :- 0
    
                 Stack trace
                  -----------
    |  FFST Location :- java.lang.Exception
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              getCurrentPosition(Trace.java:2146)
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              createFFSTString(Trace.java:2056)
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              ffstInternal(Trace.java:1938)
    |    at com.ibm.msg.client.commonservices.trace.Trace.
              ffst(Trace.java:1739)
    |    at com.ibm.mq.jmqi.remote.api.RemoteFAP.
              MQOPEN(RemoteFAP.java:3503)
    |    at com.ibm.mq.jmqi.remote.api.RemoteFAP.
              MQOPEN(RemoteFAP.java:3131)
    |    at com.ibm.mq.jmqi.monitoring.JmqiInterceptAdapter.
              MQOPEN(JmqiInterceptAdapter.java:532)
    |    at com.ibm.mq.ese.jmqi.ESEJMQI.MQOPEN(ESEJMQI.java:452)
           :   :   :   :   :
    ****************************************************************
    

Problem conclusion

  • The MQ classes for Java have been updated to correctly handle
    version 4 MQOD structures that contain a value for the
    "ResObjectString" field. This allows them to access any AMS
    policy data for the topic that the application wants to open.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.6
    
    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

    IT18190

  • Reported component name

    WMQ BASE MULTIP

  • Reported component ID

    5724H7251

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-12-01

  • Closed date

    2016-12-16

  • Last modified date

    2017-03-10

  • 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 BASE MULTIP

  • Fixed component ID

    5724H7251

Applicable component levels

  • R800 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.0.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
10 March 2017