VSCCSID (MQLONG)
This is the character set identifier of the variable length string addressed by the VSPtr or VSOffset field.
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. As a result, the value of constant MQCCSI_APPL is never associated with a variable length string.
The initial value of this field can be changed by defining a different value for the constant MQCCSI_APPL for your compile unit. How you do this depends on your application's programming language.
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
CODESETassociated 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
CODESETassociated 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
THLICCSIDat the time of the first MQI call issued after MQCONN (default value is 1047). - For other batch applications, the default is the
CCSIDof the queue manager.
CCSID.Redefinition of MQCCSI_APPL
The following examples show how you can override the value of MQCCSI_APPL in
various programming languages. You should change the value of MQCCSI_APPL, removing
the need to set the VSCCSID for each variable length string separately and ensuring the correct
CCSID is used.
In these examples the CCSID is set to 1208; change this to the value you require. This becomes the default value, which you can override by setting the VSCCSID in any specific instance of MQCHARV.
C usage
#define MQCCSI_APPL 1208
#include <cmqc.h>
COBOL usage
COPY CMQXYZV REPLACING -3 BY 1208.
PL/I usage
%MQCCSI_APPL = '1208';
%include syslib(cmqp);
High Level Assembler usage
MQCCSI_APPL EQU 1208
CMQA LIST=NO