IBM Support

IT41229: MQ Java components incorrectly group Simplified Chinese CCSIDs936 and 1386 together as equivalent encodings

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 MQ classes for JMS application is sending a message to a
    queue, specifying the character encoding of the MQ Message to
    the CCSID value '1386', by setting the following message
    property:
    
      message.setStringProperty("JMS_IBM_Character_Set", "1386");
    
    However when the message is viewed on the queue using the MQ
    Explorer, it is observed that the RFH2 specified CCSID (which
    specifies the character encoding of the following field in the
    MQ message - the body of the message in this instance), is set
    to CCSID 936, and not the 1386 value which had been specified in
    the application.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the Java components of MQ,
    including:
    
    - MQ classes for Java
    - MQ classes for JMS
    - MQ Managed File Transfer
    - MQ Explorer
    
    who are sending or receiving messages declared to be encoded in
    CCSID 936 or 1386.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The Java components of MQ utilise a common class:
    
      com.ibm.mq.jmqi.system.JmqiCodepage
    
    which interfaces with the Java Runtime Environment (JRE) to
    provide the character encoding and decoding functionality which
    is used when sending or receiving MQ messages.
    
    In order to enable this capability, the JmqiCodepage class uses
    a map of IBM Coded Character Set Identifiers (CCSIDs) to Java
    Charset names.
    
    
    For example, an entry in this map is:
      CCSID 1208
      Charset: "UTF-8"
    
    When a message is received which is declared to contain
    character data encoded in CCSID 1208, this class uses the Java
    Charset name "UTF-8" to decode the bytes back into character
    data.
    There are often more than one 'alias' name for a Java Charset
    for a particular entry, which can vary between JREs.  Continuing
    the example with the CCSID 1208 entry, the full set of values
    used in MQ 9.2 are:
    
      CCSID 1208
      Charset canonical name: "UTF-8"
      Charset alias names: "UTF8" "UTF_8" "unicode-1-1-utf-8"
    
    
    The generation of this mapping was altered in MQ 8.0.0.7 for the
    CCSID values 936 and 1386 - both of which are associated with
    Simplified Chinese character sets.
    In 8.0.0.6, these mappings were:
    
      CCSID 936  -> "936" "MS936" "windows-936" "x-mswin-936"
      CCSID 1386 -> "Cp1386" "GBK" "IBM-1386" "ibm1386"
    
    In 8.0.0.7, these entries were combined together into the
    following form:
    
      CCSID 936, 1386, 5482
      Charset names: "1386" "936" "CP936" "Cp1386" "GBK"
                   "cp1386" "cp936" "ibm-1386" "ibm-936"
                   "ibm1386" "ibm936" "ms936" "ms_936"
                   "windows-936" "x-ibm1386" "x-mswin-936"
    
    This is an incorrect mapping.  CCSIDs 936 and 1386 are not
    identical, and should not be treated as such.
    

Problem conclusion

  • The map has been updated such that the entries are now of the
    form:
    
    CCSID 936:
       Charset: GBK
       Aliases: 936,CP936,GBK,cp936,ibm-936,ibm936,windows-936
    
    CCSID 1386 and 5482:
       Charset: x-IBM1386
       Aliaes:  1386,cp1386,ibm-1386,ibm1386,x-IBM1386,x-ibm1386
    
    
    There are two points to note here:
    
      (a) IBM, Oracle and the OpenJDK JREs associated CCSID 936 with
    the Charset "GBK", and not CCSID 1386 as was previously
    declared.
    
      (b) CCSID 1386 is supported when used with the IBM JRE, but
    other non-IBM JREs may not contain support for an equivalent
    Charset.  Therefore, for example, a message being consumed by a
    MQ classes for JMS application may fail to be consumed when
    running using the OpenJDK, if the message is declared to contain
    character data encoded in CCSID 1386, and none of the above
    names are found to be supported with the OpenJDK.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.2 LTS   9.2.0.7
    v9.3 LTS   9.3.0.1
    v9.x CD    9.3.1
    
    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

    IT41229

  • Reported component name

    MQ BASE V9.2

  • Reported component ID

    5724H7281

  • Reported release

    920

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-06-15

  • Closed date

    2022-07-18

  • Last modified date

    2022-09-08

  • 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

    MQ BASE V9.2

  • Fixed component ID

    5724H7281

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"920","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
08 September 2022