IBM Support

IV60008: ADD SUPPORT TO THE WEBSPHERE MQ CLASSES FOR JMS FOR THE CHARACTERSET "CP1166" (CCSID 1166)

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Previous to this APAR, the WebSphere MQ classes for Java had no
    support for sending messages which contained a body encoded in
    CCSID 1166.
    
    This results in a java.io.UnsupportedEncodingException thrown
    when writing string data into the message, with the exception
    stack:
    
    ERROR, exception thrown: java.io.UnsupportedEncodingException:
    1166
    java.io.UnsupportedEncodingException: 1166
            at com.ibm.mq.MQMessage.writeString(MQMessage.java:2937)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of the WebSphere MQ classes for Java/JMS who are sending
    or receiving messages containing string data (eg. MQSTR format
    messages), where the character encoding of the string data is
    using CCSID 1166.
    
    This includes users of the WebSphere Application Server.
    
    
    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, Linux on zSeries,
    Solaris SPARC, Solaris x86-64, Windows, z/OS, MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When sending a message containing character data using the
    WebSphere MQ classes for Java, you can select the encoding of
    the character data.
    
    For example, to write character data encoded into the MQ message
    using CCSID 1166, you could use the code snippet:
    
    
      com.ibm.mq.MQMessage msg = new com.ibm.mq.MQMessage();
      msg.format = MQC.MQFMT_STRING;
      msg.characterSet = 1166;
      msg.writeString("Test Message '?'");
    
    
    The WebSphere MQ classes for Java/JMS did not contain support
    for CCSID 1166, which resulted in an exception of the form:
    
    ERROR, exception thrown: java.io.UnsupportedEncodingException:
    1166
    java.io.UnsupportedEncodingException: 1166
            at com.ibm.mq.MQMessage.writeString(MQMessage.java:2937)
    
    
    corresponding to the 'msg.writeString(...)' line in the above
    code snippet.
    
    
    If using the WebSphere MQ classes for JMS, an exception would be
    seen when sending the message, with an exception stack of the
    form:
    
    com.ibm.msg.client.jms.DetailedJMSException: JMSCMQ1046: The
    character set 'ccsid:1166' is not supported. An attempt was made
    to send or receive a map message, stream message or text message
    whose body is encoded using a character set not supported by the
    JVM. In the case of text messages, this exception might be
    thrown when the body of the message is first queried, rather
    than at receive time. Only encode a message using a character
    set known to be available to the receiving application.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
    Method)
    at
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeCons
    tructorAccessorImpl.java:56)
    at
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Delega
    tingConstructorAccessorImpl.java:39)
    at
    java.lang.reflect.Constructor.newInstance(Constructor.java:527)
    at
    com.ibm.msg.client.commonservices.j2se.NLSServices.createExcepti
    on(NLSServices.java:313)
    at
    com.ibm.msg.client.commonservices.nls.NLSServices.createExceptio
    n(NLSServices.java:388)
    at
    com.ibm.msg.client.wmq.common.internal.WMQUtils.getCharacterSetS
    tring(WMQUtils.java:639)
    at
    com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.c
    onstructMessageBuffers(WMQSendMarshal.java:148)
    at
    com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.e
    xportMQMDAndMessageBuffers(WMQSendMarshal.java:496)
    at
    com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.e
    xportMQMD(WMQSendMarshal.java:555)
    at
    com.ibm.msg.client.wmq.internal.WMQMessageProducer$ProducerShado
    w.send(WMQMessageProducer.java:524)
    at
    com.ibm.msg.client.wmq.internal.WMQMessageProducer.send(WMQMessa
    geProducer.java:1223)
    at
    com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.sendMessa
    ge(JmsMessageProducerImpl.java:935)
    at
    com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.send_(Jms
    MessageProducerImpl.java:787)
    at
    com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.send(JmsM
    essageProducerImpl.java:442)
    at
    com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:304
    )
    
    
    When this exception was seen, the message was not sent or
    received.
    

Problem conclusion

  • The IBM JRE added support for CCSID 1166 in JRE 6.0.0 SR10,
    under APAR IV01901:
    
        http://www.ibm.com/support/docview.wss?uid=swg1IV01901
    
    However the list of supported CCSID for use with the WebSphere
    MQ classes for Java/JMS is created at product build time, which
    used a level of the JDK which did not have support for this
    CCSID in.
    
    This APAR adds support for this CCSID within the WebSphere MQ
    classes for Java/JMS.
    
    
    In order to make use of this character set with WebSphere MQ
    classes for Java/JMS therefore, you need to have both:
    
    (1) The code fix associated with this APAR IV60008
    (2) An updated JRE containing IV01901.
    
    
    Note that the queue manager may not offer support for this
    codepage. The result in this case is that if the
    application/configuration requests that the queue manager does
    conversion of the data, this may fail.
    
    For example, if using the WebSphere MQ classes for Java where
    the com.ibm.mq.MQGetMessageOptions (MQGMO) object has the
    option:
    
      MQGMO_CONVERT
    
    specified, meaning that the queue manager should convert the
    character data before sending to the client application, an
    exception may be received of the form:
    
    MQJE001: Completion Code '1', Reason '2111'.
    ERROR, exception thrown: com.ibm.mq.MQException: MQJE001:
    Completion Code '1', Reason '2111'.
    com.ibm.mq.MQException: MQJE001: Completion Code '1', Reason
    '2111'.
            at
    com.ibm.mq.MQDestination.getInt(MQDestination.java:666)
            at com.ibm.mq.MQDestination.get(MQDestination.java:465)
    
    
    where MQRC 2111 is 'MQRC_SOURCE_CCSID_ERROR'. This behaviour is
    not altered by this APAR.
    
    However if the queue manager is not asked to convert the data,
    messages can be passed through MQ with character data encoded in
    this added CCSID 1166.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.0       7.0.1.13
    v7.1       7.1.0.7
    v7.5       7.5.0.5
    v8.0       8.0.0.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

    IV60008

  • Reported component name

    WMQ AIX V7

  • Reported component ID

    5724H7221

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-05-01

  • Closed date

    2014-11-28

  • Last modified date

    2014-11-28

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PI17545

Fix information

  • Fixed component name

    WMQ AIX V7

  • Fixed component ID

    5724H7221

Applicable component levels

  • R701 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
28 November 2014