IBM Support

IT25917: A MQ-Java/JMS application fails to connect to a queue manager with the error: "AMQ6047: Conversion not supported"

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

  • An IBM MQ classes for JMS application is attempting to connect
    to a queue manager running on an AIX system, using a default
    queue manager CCSID of 819, by calling the JMS method:
    
      javax.jms.ConnectionFactory.createConnection("wasadmin",
    "myPassword");
    
    The JVM is running in a Turkish locale.
    
    
    This fails to connect to the queue manager with an
    javax.jms.JMSException being thrown by the method call, with the
    following message and Java stack:
    
    com.ibm.msg.client.jms.DetailedIllegalStateException:
    JMSWMQ0018: Failed to connect to queue manager 'myQMGR' with
    connection mode 'Client' and host name 'myhost.mydomain(1414)'.
    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
    at com.ibm.msg.client.wmq.common.internal.Reason.createException
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>
    at
    com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7Pr
    oviderConnection
    at
    com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProv
    iderConnection
    at
    com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createCon
    nection
    at
    com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConn
    ection
    at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection
    at com.ibm.mq.jms.MQConnectionFactory.createConnection
    at MyApplication.myMethod
    
    Caused by: com.ibm.mq.MQException:
    JMSCMQ0001: WebSphere MQ call failed with compcode '2'
    ('MQCC_FAILED') reason '2330' ('MQRC_CODED_CHAR_SET_ID_ERROR').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException
    ... 9 more
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2330;AMQ9204:
    Connection to host 'myhost.mydomain(1414)' rejected.
    [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2330;AMQ6047:
    Conversion not supported. [1=1200 (UCS2),2=819(ISO-8859-1)
    Unmappable Action: REPORT Unmappable Replacement:
    63]],3=myhost.mydomain(1414),5=JmqiDC.writeFieldDC]
    at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect
    at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect
    at com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.jmqiConnect
    at com.ibm.mq.ese.jmqi.ESEJMQI.jmqiConnect
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>
    ... 8 more
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2330;AMQ6047:
    Conversion not supported. [1=1200 (UCS2),2=819(ISO-8859-1)
    Unmappable Action: REPORT Unmappable Replacement: 63]
    at com.ibm.mq.jmqi.internal.JmqiDC.writeFieldDC
    at com.ibm.mq.jmqi.internal.JmqiDC.writeField
    at com.ibm.mq.jmqi.internal.JmqiDC.writeField
    at com.ibm.mq.jmqi.remote.rfp.RfpUID.setUserIdentifier
    at com.ibm.mq.jmqi.remote.impl.RemoteConnection.sendUidFlow
    at com.ibm.mq.jmqi.remote.impl.RemoteConnection.initSess
    at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect
    at
    com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSes
    sionFromNewConnection
    at
    com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSes
    sion
    at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession
    at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect
    ... 12 more
    
    
    
    No error messages are reported in the queue manager logs, and it
    is very difficult to determine the problem from the information
    provided in the JMSException.
    

Local fix

  • Use the following runmqsc command on the queue manager:
    
        ALTER QMGR CCSID(xxx)
    
    to change the queue manager CCSID to one that supports the
    characters being used in the user identifier.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of the IBM MQ classes for Java or IBM MQ classes for JMS,
    who are connecting to a remote queue manager which is running in
    CCSID for which the user identifier which is going to be flowed
    from the Java/JMS application to the queue manager cannot be
    represented.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When a IBM MQ classes for Java/JMS application connects to a
    queue manager, depending on the configuration of the system a
    "user identifier" flow may be sent from the application to the
    queue manager.
    
    For example, when using the IBM MQ classes for JMS v8.0, when
    the following JMS method is made:
    
      javax.jms.ConnectionFactory.createConnection("userid",
    "password");
    
    in the default configuration as part of the connection process
    to the remote queue manager, the user identifier:
    
      "userid"
    
    is converted to uppercase, and then encoded using the queue
    manager's CCSID character encoding scheme to be flowed over
    TCP/IP.
    
    
    It is possible that the characters which are attempting to be
    flowed cannot be represented in the queue manager's CCSID.
    
    An example of this is when the JVM is running in the Turkish
    locale, such as when the JVM was started on a system running in
    a Turkish locale, or with the argument:
    
      -Duser.language=tr
    
    and the user identifier contain's a lower case "i" character.
    When this is uppercased by the JVM, the lower case 'i'
    character:
    
      U+0069 "Latin Small Letter I"
    
    is converted to the upper case character:
    
      U+0130 "Latin Capital Letter I with Dot Above"
    
    which is not representable in CCSID 819, a common CCSID for an
    AIX queue manager to be running in.
    
    
    This results in the conversion from characters to a CCSID 819
    encoded byte stream to fail, which in turn fails the connection
    attempt.  When this occurs the JMSException which is returned
    contains the information:
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2330;AMQ6047:
    Conversion not supported. [1=1200 (UCS2),2=819(ISO-8859-1)
    Unmappable Action: REPORT Unmappable Replacement: 63]
    
    As the application user, this message provided very limited
    information as to what the problem was.
    

Problem conclusion

  • A new message has been added to MQ, which provides more
    information as to the problem.  This message is:
    
    AMQ9567: Unable to convert the user identifier 'USER?D' into
    bytes, using the queue manager requested CCSID '819'.
    [2=819,3=USER?D]],3=myhost.mydomain(1414),5=RfpUID.setUserIdenti
    fier]
    
    
    This message is intended to provide sufficient information to
    gain insight into the specific character string which cannot be
    converted.  An example JMSException stack would now be of the
    form:
    
    com.ibm.msg.client.jms.DetailedIllegalStateException:
    JMSWMQ0018: Failed to connect to queue manager 'myQMGR' with
    connection mode 'Client' and host name 'myhost.mydomain(1414)'.
    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
            at
    com.ibm.msg.client.wmq.common.internal.Reason.createException
            at com.ibm.msg.client.wmq.internal.WMQConnection.<init>
            at
    com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7Pr
    oviderConnection
            at
    com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProv
    iderConnection
            at
    com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createCon
    nection
            at
    com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConn
    ection
            at
    com.ibm.mq.jms.MQConnectionFactory.createCommonConnection
            at com.ibm.mq.jms.MQConnectionFactory.createConnection
            at MyApplication.myMethod
    
    Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call
    failed with compcode '2' ('MQCC_FAILED') reason '2330'
    ('MQRC_CODED_CHAR_SET_ID_ERROR').
            at
    com.ibm.msg.client.wmq.common.internal.Reason.createException
            ... 9 more
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2330;AMQ9204:
    Connection to host 'myhost.mydomain(1414)' rejected.
    [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2330;AMQ9567: Unable to
    convert the user identifier 'USER?D' into bytes, using the queue
    manager requested CCSID '819'.
    [2=819,3=USER?D]],3=myhost.mydomain(1414),5=RfpUID.setUserIdenti
    fier]
            at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect
            at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect
            at com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.jmqiConnect
            at com.ibm.mq.ese.jmqi.ESEJMQI.jmqiConnect
            at com.ibm.msg.client.wmq.internal.WMQConnection.<init>
            ... 8 more
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2330;AMQ9567:
    Unable to convert the user identifier 'USER?D' into bytes, using
    the queue manager requested CCSID '819'. [2=819,3=USER?D]
            at com.ibm.mq.jmqi.remote.rfp.RfpUID.setUserIdentifier
            at
    com.ibm.mq.jmqi.remote.impl.RemoteConnection.sendUidFlow
            at com.ibm.mq.jmqi.remote.impl.RemoteConnection.initSess
            at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect
            at
    com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSes
    sionFromNewConnection
            at
    com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSes
    sion
            at
    com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession
            at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect
            ... 12 more
    
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2330;AMQ6047:
    Conversion not supported. [1=java.lang.String,2=819(ISO-8859-1)
    Unmappable Action: REPORT, Unmappable Replacement: 63,
    spaceByte: 32]
            at com.ibm.mq.jmqi.internal.JmqiDC.writeFieldDC
            at com.ibm.mq.jmqi.internal.JmqiDC.writeField
            at com.ibm.mq.jmqi.internal.JmqiDC.writeField
            at com.ibm.mq.jmqi.remote.rfp.RfpUID.setUserIdentifier
            ... 19 more
    
    Caused by: java.nio.charset.UnmappableCharacterException: Input
    length = 1
            at java.nio.charset.CoderResult.throwException
            at java.nio.charset.CharsetEncoder.encode
            at com.ibm.mq.jmqi.system.JmqiCodepage.stringToBytes
            at com.ibm.mq.jmqi.internal.JmqiDC.writeFieldDC
            ... 22 more
    
    
    
    Note that this APAR is not resolving the problem of not being
    able to connect to the queue manager - this requires a change to
    the system to permit the user identifier to be encoded, such as
    changing the queue manager CCSID to one which supports the
    uppercase variant of the specified user identifier string.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.11
    v9.0 LTS   9.0.0.6
    v9.1 CD    9.1.1
    v9.1 LTS   9.1.0.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

    IT25917

  • Reported component name

    IBM MQ BASE M/P

  • Reported component ID

    5724H7261

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-08-08

  • Closed date

    2018-09-05

  • Last modified date

    2018-09-05

  • 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 M/P

  • Fixed component ID

    5724H7261

Applicable component levels

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

Document Information

Modified date:
05 September 2018