The ccsid_part2.tbl file

The ccsid_part2.tbl file is used to supply additional CCSID information. The ccsid_part2.tbl file replaces the ccsid.tbl file that was used before Version 9.0.

Note: The ccsid.tbl file, which was used before Version 9.0 to supply additional CCSID information, continues to be parsed by IBM MQ and should not be deleted. However, entries in ccsid_part2.tbl take precedence over other entries in ccsid.tbl. We should use ccsid_part2.tbl rather than ccsid.tbl because ccsid_part2.tbl:

  • Contains support for the Unicode encoding values. From Version 9.0, IBM MQ supports all Unicode characters defined in the Unicode 8.0 standard in data conversion, including full support for UTF-16. For more information, see Data conversion.
  • Allows you to specify the version of CCSID entries, so that the entries are only applicable to selected command levels.

We can use the ccsid_part2.tbl file to:

  • Add or modify CCSID entries
  • Specify default data conversion
  • Specify data for different command levels

The ccsid_part2.tbl file is applicable to the following platforms only:

  • Linux - all versions
  • Windows

The location of the ccsid_part2.tbl file depends on the platform:

  • The MQDataRoot/conv/table directory on all versions of Linux.
  • The MQDataRoot\conv\table directory on Windows.


Adding or modifying CCSID entries

An entry in the ccsid_part2.tbl file has the following format:
<CCSID number> <Base CCSID> <DBCS CodePage> <SBCS CodePage> 
<Type> <Encoding> <ACRI> <Name>
An example entry for CCSID 1200 (UTF-16) is:
  1200 1200 1200 1200 3 8 0 UTF-16
Note: For more details on the value for ACRI see the comment in the ccsid_part2.tbl file. In the ccsid_part2.tbl format:

    Type can equal:
    1=SBCS
    2=DBCS
    3=MBCS

    Encoding can equal:
    1=EBCDIC
    2 = ASCII
    3 = ISO
    4 = UCS-2
    5 = UTF-8
    6 = Euc
    7 = GB18030
    8 = UTF-16
    9 = UTF-32

When editing the file you:

  • Can specify a comment by using the # symbol at the start of a line. This prevents IBM MQ from attempting to parse the line.
  • Cannot supply in-line comments.
  • Must ensure that we do not create blank lines.
  • Must not add new entries at the end of the file.

    New CCSID entries should be added before the ACRI table information.


Specify default data conversion

We can define default conversion CCSIDs, which are used to convert between ASCII or similar and EBCDIC CCSIDs, if no conversion is supported between two CCSIDs.

If you enable this function, the default conversion is used for transmission and message headers, and can also be used in user data conversion.

Default conversions are enabled by creating two lines similar to the following:
default       0      500     1     1    0   
default       0      850     1     2    0   
The first line sets the default for EBCDIC CCSIDs to 500 and the second line sets the default for ASCII and similar CCSIDs to 850.


Specify data for different command levels

To specify CCSID entries for different command levels of IBM MQ we use a colon symbol followed by the command level (or command levels) of IBM MQ that we want the next section to be applicable to.

The number represents the minimum command level that the queue manager or client must be running in. For example, if the current queue manager is command level 900, and it encounters an 800 or 900 command level flag, the CCSIDs are read.

However, a queue manager at level 800 ignores any CCSIDs in the 900 section.

The command level specified is applicable to all CCSID entries encountered after a command level flag, until a new command level flag is found.

If you require to set the command level to all command levels, specify the number zero.

When first parsing ccsid_part2.tbl, IBM MQ treats all CCSIDs encountered as valid for all command levels of IBM MQ.

Versioning starts to be used only when IBM MQ encounters the first command level flag.

The following code snippet shows an example of using Versioning:
# Comment Block
# End of Comment Block
# Because no command level flag is specified and we're at the start of the file 
# the following CCSIDs will be read on all versions
    819   819       0      819     1    3     0    ISO8859-1
    923   923       0      923     1    3     0    ISO8859-15
   1051  1051       0     1051     1    3     0    IBM-1051
# The colon :900 below shows that the CCSIDs after will only be for MQ cmd level 900 and above
:900
   8629   437       0      437     1    2     0    IBM-437
  12725   437       0      437     1    2     0    IBM-437
  16821   437       0      437     1    2     0    IBM-437
  20917   437       0      437     1    2     0    IBM-437
# The colon :0 below shows that the CCSIDs after will be for all version of MQ :0
   4946   850       0      850     1    2     0    IBM-850
  33618   850       0      850     1    2     0    IBM-850
  61697   850       0      850     1    2     0    IBM-850
  61698   850       0      850     1    2     0    IBM-850
Parent topic: Data conversion