IBM Support

IT10863: WEBSPHERE MQ CLASSES FOR JAVA/JMS APPLICATIONS CAN NOT USE CCDT FILES GENERATED ON A NEWER LEVEL QUEUE MANAGER

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 IBM MQ Queue Manager v8.0 is used to generate a CCDT file,
    which is then shared with an application which uses the
    WebSphere MQ classes for JMS v7.1.
    
    The application is unable to connect to the queue manager using
    this CCDT file. An exception is generated by the WebSphere MQ
    classes for JMS when attempting to create a JMS Connection from
    the ConnectionFactory which is configured to use the CCDT, with
    the following caused by stack:
    
    Caused by: java.lang.ArrayIndexOutOfBoundsException
    at java.lang.System.arraycopy(Native Method)
    at com.ibm.mq.exits.MQCD.readFromBuffer(MQCD.java:4373)
    at
    com.ibm.mq.jmqi.system.internal.CCDT.processMQCDRecord(CCDT.java
    :648)
    ... 14 more
    
    When this exception is seen, the connection is not established
    with the queue manager.
    

Local fix

  • Generate the CCDT on a queue manager major version (version and
    release) which is less than or equal to the WebSphere MQ classes
    for JMS version.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of WebSphere MQ classes for Java/JMS who are using a CCDT
    (Client Channel Definition Table) which was generated on a later
    (eg. version 8.0) queue manager with an earlier major version of
    the of the WebSphere MQ classes for Java/JMS (eg. version 7.0,
    7.1 or 7.5).
    
    
    Platforms affected:
    AIX, HP-UX Itanium, HP-UX PA-RISC, IBM iSeries, Linux on Power,
    Linux on S390, Linux on x86, Linux on x86-64, Windows, Solaris
    x86-64, Solaris SPARC, Linux on zSeries, z/OS, MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The algorithm which was used by the WebSphere MQ classes for
    Java/JMS was unable to correctly parse a CCDT file which was
    generated on a version 8 queue manager.
    
    The exact failure varied across product versions depending upon
    the content of the CCDT file. For example, a CCDT file generated
    on IBM MQ v8.0 and accessed by the WebSphere MQ classes for
    Java/JMS v7.0 may have appeared to show no problem when used to
    connect to the queue manager - even though some of the data
    contained within the CCDT has not been parsed correctly.
    
    The same CCDT file on WebSphere MQ classes for Java/JMS
    v7.1/v7.5 threw an exception when connecting to the queue
    manager. For example a stack from the v7.1.0.6 version of the
    JMS classes has an exception of the form:
    
    
    com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ2020: Failed
    to connect to queue manager 'MY_QM' with connection mode
    'Client' and supplied CCDT URL 'file:/tmp/AMQCLCHL.TAB', see
    linked exception for more information.
    Check the queue manager is started and if running in client
    mode, check there is a listener running. Please see the linked
    exception for more information.
    at
    com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(
    Reason.java:580)
    at
    com.ibm.msg.client.wmq.common.internal.Reason.createException(Re
    ason.java:216)
    at
    com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.jav
    a:426)
    at
    com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7Pr
    oviderConnection(WMQConnectionFactory.java:6770)
    at
    com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProv
    iderConnection(WMQConnectionFactory.java:6152)
    at
    com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConn
    ection(JmsConnectionFactoryImpl.java:285)
    at
    com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConn
    ectionFactory.java:6126)
    at
    com.ibm.mq.jms.MQConnectionFactory.createConnection(MQConnection
    Factory.java:6155)
    ... ...
    
    Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call
    failed with compcode '2' ('MQCC_FAILED') reason '2278'
    ('MQRC_CLIENT_CONN_ERROR').
    at
    com.ibm.msg.client.wmq.common.internal.Reason.createException(Re
    ason.java:204)
    ... 8 more
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2278;AMQ9555:
    File format error. [3=file:/tmp/AMQCLCHL.TAB]
    at
    com.ibm.mq.jmqi.system.internal.CCDT.processMQCDRecord(CCDT.java
    :659)
    at com.ibm.mq.jmqi.system.internal.CCDT.parse(CCDT.java:441)
    at com.ibm.mq.jmqi.system.internal.CCDT.(CCDT.java:203)
    at com.ibm.mq.jmqi.remote.impl.RemoteCCDT.(RemoteCCDT.java:69)
    at
    com.ibm.mq.jmqi.remote.api.RemoteFAP.getCcdt(RemoteFAP.java:449)
    at
    com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:
    1621)
    at
    com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:
    1345)
    at
    com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.jav
    a:345)
    ... 7 more
    
    Caused by: java.lang.ArrayIndexOutOfBoundsException
    at java.lang.System.arraycopy(Native Method)
    at com.ibm.mq.exits.MQCD.readFromBuffer(MQCD.java:4373)
    at
    com.ibm.mq.jmqi.system.internal.CCDT.processMQCDRecord(CCDT.java
    :648)
    ... 14 more
    
    
    When this exception was thrown, the connection was not
    established with the queue manager.
    

Problem conclusion

  • The WebSphere MQ classes for Java/JMS was modified to update the
    algorithm which is used to parse the CCDT file. This allows
    earlier versions of the Java/JMS API to tolerate CCDT files
    generated on later version queue managers.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.0       7.0.1.14
    v7.1       7.1.0.8
    v7.5       7.5.0.6
    v8.0       8.0.0.3
    
    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

    IT10863

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-08-24

  • Closed date

    2015-09-25

  • Last modified date

    2015-09-25

  • 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

  • R701 PSY

       UP



Document information

More support for: WebSphere MQ
APAR / Maintenance

Software version: 7.0.1

Reference #: IT10863

Modified date: 25 September 2015