The constant MQCCSI_APPL is similar to MQCCSI_Q_MGR in that it says, take the CCSID from the environment in some way.
MQCCSI_Q_MGR means that the QMgr's CCSID is used for a local binding application, and the client environment sets it if it is a client binding application.
MQCCSI_APPL needed to be a bit more flexible than that given it was invented for the MQCHARV structure which was likely to contain 1208 strings for topic strings and such.
MQCCSI_APPL is also allowed to be redefined by an application to another number if you want, which is not allowed for other constants. See Redefinition of MQCCSI_APPL
However, the exact answer to your question can be found in the description of the MQCHARV VSCCSID (MQLONG) field.
On z/OS® systems, the default application CCSID used by MQCCSI_APPL is defined as follows:
- For batch LE applications using the DLL interface, the default is the
CODESET associated with the current locale at the time MQCONN is issued (default value is 1047).
- For batch LE applications bound with one of the batch MQ stubs, the default is the
CODESET associated with the current locale at the time of the first MQI call issued after MQCONN (default value is 1047).
- For batch non-LE applications running on a z/OS UNIX System Services thread, the default is the value of
THLICCSID at the time of the first MQI call issued after MQCONN (default value is 1047).
- For other batch applications, the default is the
CCSID of the queue manager.
Hope that helps?
Cheers,
Morag
------------------------------
Morag Hughson
MQ Technical Education Specialist
MQGem Software Limited
Website:
https://www.mqgem.com------------------------------
Original Message:
Sent: Fri January 28, 2022 04:13 AM
From: Colin Paice
Subject: What does MQCCSI_APPL really mean?
The doc says
The initial value of this field is MQCCSI_APPL, which is defined by MQ to indicate that it should be changed to the true character set identifier of the current process.
I am running on z/OS in Unix System Services with a particular code page, with a C program compiled as ASCII:
What value is picked up? Or does it mean the platform CCSID rather than the current process's CCSID?
Can I change this value programmatically?
regards
Colin
------------------------------
Colin Paice
------------------------------