IBM Support

WebSphere MQ FDC with Probe id 21 generated when using the WebSphere MQ V7 classes for Java or WebSphere MQ V7 classes for JMS

Troubleshooting


Problem

When an application uses either the WebSphere MQ V7 classes for Java™ or WebSphere MQ V7 classes for JMS to connect to a queue manager in BINDINGS mode, the application receives an Exception containing the WebSphere MQ Reason Code 2195 (MQRC_UNEXPECTED_ERROR) and a WebSphere MQ FDC is generated containing Probe id 21, Component id 59 and Function id 424.

Symptom

The WebSphere MQ FDC that is generated contains the following information:

WebSphere MQ First Failure Symptom Report
=========================================

Date/Time       :- <date and time when the FDC was generated>
Host name       :- <hostname>
Vendor          :- IBM
Probe id        :- 21
Component id    :- 59
Function id     :- 424
Reason code     :- 0
Arith1          :- 3
Arith2          :- 897
Comment1        :- <queue manager name>

Cause

WebSphere MQ queue managers have a property called Coded Character Set Identifier (CCSID), which specifies the CCSID that is used to encode all of the fields in the WebSphere MQ API that contain String data. For example, if an application made an MQINQ call, the String data in the MQINQ reply that was returned to the application would be in the CCSID of the queue manager.

To function correctly, the WebSphere MQ V7 classes for Java and classes for JMS must be able to interpret this data correctly when receiving data from a queue manager.

When an application using the WebSphere MQ V7 classes for Java or classes for JMS make a BINDINGS mode connection to a queue manager, a check is made to verify that the Java Runtime Environment in which the application is running supports the CCSID that the queue manager is using.

If the Java Runtime Environment does not support the queue manager's CCSID, the classes for Java and classes for JMS return an exception to the application containing WebSphere MQ Reason Code 2195 (MQRC_UNEXPECTED_ERROR). The FDC shown above is also generated.

Diagnosing The Problem

A simple Java application that can be used to check the CCSIDs that are supported by a Java Runtime Environment is shown below:


import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.SortedMap;
 
public class PrintSupportedJVMCharsets {

  public static void main(String[] args) {
    SortedMap charsets = Charset.availableCharsets();
    Iterator keyIt = charsets.keySet().iterator();
    System.out.println("Character Set Name," +
                       " Character Set Aliases...");
    while (keyIt.hasNext()) {
      Object key = keyIt.next();
      Charset cs = (Charset) charsets.get(key);
      String line = cs.name();
      String[] aliases = new String[0];
      aliases = (String[]) cs.aliases().toArray(aliases);
      for (int i = 0; i < aliases.length; i++) {
        line += "," + aliases[i];
      }
      System.out.println(line);
    }
  }
}

This application will generate a list of Character Sets that the Java Runtime Environment supports, together with the Aliases by which the Character Set is also known.

To map a Character Set to a CCSID, look through the list of Character Sets that has been generated for either a Character Set or a Character Set Alias that contains a numeric value. The numeric value will be the CCSID which the Character Set or Character Set Alias maps to.

For example, here is the entry for the Java Character Set x-IBM1383 that is generated when the sample application is run using a Java 1.4.2 Runtime Environment on HP-UX:


x-IBM1383,ibm1383,ibm-1383,cp1383,1383

This entry shows that the CCSID 1383 is supported by the Java 1.4.2 Runtime Environment on HP-UX, and that the CCSID is known by the Java Character Set Name:


x-IBM1383

and the Java Character Set Aliases:



ibm1383,ibm-1383,cp1383,1383

Resolving The Problem

To resolve the issue, ensure that the WebSphere MQ queue manager is configured to use a CCSID that is supported by the Java Runtime Environment used by the WebSphere MQ classes for Java or WebSphere MQ classes for JMS.

[{"Product":{"code":"SSFKSJ","label":"WebSphere MQ"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Java","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF025","label":"Platform Independent"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"7.0","Edition":"All Editions","Line of Business":{"code":"LOB45","label":"Automation"}}]

Product Synonym

WebSphere MQ WMQ

Document Information

Modified date:
15 June 2018

UID

swg21566441