Fixes are available
Fix Pack 7.1.0.6 for WebSphere MQ V7.1
Fix Pack 8.0.0.2 for WebSphere MQ V8.0
8.5.5.6: WebSphere Application Server V8.5.5 Fix Pack 6
8.5.5.7: WebSphere Application Server V8.5.5 Fix Pack 7
8.5.5.8: WebSphere Application Server V8.5.5 Fix Pack 8
8.5.5.9: WebSphere Application Server V8.5.5 Fix Pack 9
8.5.5.10: WebSphere Application Server V8.5.5 Fix Pack 10
8.5.5.11: WebSphere Application Server V8.5.5 Fix Pack 11
8.5.5.12: WebSphere Application Server V8.5.5 Fix Pack 12
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
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
Document Information
Modified date:
27 April 2022