2111 (083F) (RC2111): MQRC_SOURCE_CCSID_ERROR
Explanation
The coded character-set identifier from which character data is to be converted is not valid or not supported.
This can occur on the MQGET call when the MQGMO_CONVERT option is included in the
GetMsgOpts parameter; the coded character-set identifier in error is the
CodedCharSetId
field in the message being retrieved. In this case, the message data
is returned unconverted, the values of the CodedCharSetId
and
Encoding
fields in the MsgDesc parameter are set to those of
the message returned, and the call completes with MQCC_WARNING.
This reason can also occur on the MQGET call when the message contains one or more MQ header
structures (MQCIH, MQDLH, MQIIH, MQRMH), and the CodedCharSetId
field in the
message specifies a character set that does not have SBCS characters for the characters that are
valid in queue names. MQ header structures containing such characters are not valid, and so the
message is returned unconverted. The Unicode character set UTF-16 is an example of such a character
set.
If the message consists of several parts, each of which is described by its own
CodedCharSetId
and Encoding
fields (for example, a message with
format name MQFMT_DEAD_LETTER_HEADER), some parts may be converted and other parts not converted.
However, the values returned in the various CodedCharSetId
and
Encoding
fields always correctly describe the relevant message data.
This reason can also occur on the MQXCNVC call; the coded character-set identifier in error is the SourceCCSID parameter. Either the SourceCCSID parameter specifies a value that is not valid or not supported, or the SourceCCSID parameter pointer is not valid. (It is not always possible to detect parameter pointers that are not valid; if not detected, unpredictable results occur.)
This reason can also occur on a MQSETMP/MQINQMP/MQDLTMP
call when the application issuing the calls does not use Language Environment (LE) and defines CCSID values of MQCCSI_APPL (-3)
for message property names and string property values.
Completion code
MQCC_WARNING or MQCC_FAILED
Programmer response
Check the character-set identifier that was specified when the message was put, or that was specified for the SourceCCSID parameter on the MQXCNVC call. If this is correct, check that it is one for which queue manager conversion is supported. If queue manager conversion is not supported for the specified character set, conversion must be carried out by the application.
If this reason happens as result of a MQSETMP/MQINQMP/MQDLTMP
call issued in a non-LE application program that has specified CCSID as MQCCSI_APPL (-3)
then applications should be changed to specify the CCSID value used by the application to encode the property names or property string values.
Your applications should override the value of MQCCSI_APPL (-3)
with the correct CCSID used as described in Redefinition of MQCCSI_APPL, or they should set the explicit CCSID value used to encode text strings in MQCHARV
or similar structures.