Client channel definition table
The client channel definition table (CCDT) determines the channel definitions and authentication information used by client applications to connect to the queue manager. On Multiplatforms, a CCDT is created automatically. You must then make it available to the client application.
The purpose of the client channel definition table (CCDT) is to determine the channel definitions used by client applications to connect to the queue manager. The channel definition also specifies the authentication information that applies to the connections.
The CCDT is a binary file. It is generated by a queue manager. The queue manager does not read the CCDT file.
- The design of the IBM® MQ CCDT file, is that the CCDT file is shrunk, only after all client-connection channels defined by the user are actually defined. When a client-connection channel is deleted, it is just marked as deleted in the CCDT file, but it is not physically removed.
- To force the CCDT file to shrink, after deleting one or more client-connection channels, issue
the following command:
rcrmqobj -m QM80 -t clchltab
You can use the CCDT to provide clients with the authentication information to check for TLS certificate revocation. Define a namelist containing authentication information objects and set the queue manager attribute SSLCRLNameList to the name of the namelist.
Default CCDT AMQCLCHL.TAB
On Multiplatforms, a default CCDT called AMQCLCHL.TAB is created when you create a queue manager.
- On IBM i, in the integrated file
system:
/QIBM/UserData/mqm/qmgrs/QUEUEMANAGERNAME/&ipcc
- On UNIX and Linux® systems:
The name of the directory referenced by QUEUEMANAGERNAME is case-sensitive on UNIX and Linux systems. The directory name might not be the same as the queue manager name, if the queue manager name has special characters in it./prefix/qmgrs/QUEUEMANAGERNAME/@ipcc
- On Windows:
MQ_INSTALLATION_PATH
\data\qmgrs\QUEUEMANAGERNAME\@ipcc
MQ_INSTALLATION_PATH
represents the high-level directory in which
IBM MQ is installed. However, you might have chosen to use a different directory for queue manager data. You can specify the parameter -md DataPath when you used the crtmqm command. If you do, AMQCLCHL.TAB is located in the @ipcc directory of the DataPath you specified.
The path to the CCDT can be changed by setting MQCHLLIB
. If you do set
MQCHLLIB
, be aware, if you have multiple queue managers on the same server, they
share the same CCDT location.
The CCDT is created when the queue manager is created. Each entry of a CCDT represents a client connection to a specific queue manager. A new entry is added when you define a client-connection channel using the DEFINE CHANNEL command, and the entry is updated when you alter the client-connection channels by using the ALTER CHANNEL command.
Locations for the client channel definition table
There are a number of ways for a client application to use a CCDT. The CCDT can be copied to the client computer. You can copy the CCDT to a location shared by more than one client. You can make the CCDT accessible to the client as a shared file, while it remains located on the server.
If you use FTP to copy the file, use the bin
option to set binary mode; do not
use the default ASCII
mode. Whichever method you choose to make the CCDT available,
the location must be secure to prevent unauthorized changes to the channels.
- CCDTUrlPtr/CCDTUrlOffset via MQCNO structure being passed into MQCONNX MQI call
- MQCCDTURL environment variable
- ChannelDefinitionDirectory attribute in the Channels stanza of mqclient.ini
export MQCCDTURL=ftp://myuser:password@myhost.sample.com//var/mqm/qmgrs/QMGR/@ipcc/AMQCLCHL.TAB
export MQCCDTURL=http://myhost.sample.com/var/mqm/qmgrs/QMGR/@ipcc/AMQCLCHL.TAB
If you wanted to use this support with ftp or http, then that still means that you would need to host the CCDT file on a server, but with the support added at IBM MQ 9.0, all of your client applications could automatically pick up changes to channel definitions without manually pushing out updates or needing to mount a networked file system on each client. For more information, see Web addressable access to the client channel definition table.
How to use runmqsc to create a CCDT directly on a client machine
MQCHLLIB
and with the filename indicated by
MQCHLTAB
which is AMQCLCHL.TAB by default. Each entry of a CCDT represents a client connection to a specific queue manager. A new entry is added when you define a client-connection channel using the DEFINE CHANNEL command, and the entry is updated when you alter the client-connection channels by using the ALTER CHANNEL command.
How to specify the location of the CCDT on the client
- Using the environment variables
MQCHLLIB
to specify the directory where the table is located, andMQCHLTAB
to specify the file name of the table. - Using the client configuration file. In the
CHANNELS
stanza, use the attributes ChannelDefinitionDirectory to specify the directory where the table is located, and ChannelDefinitionFile to specify the file name. - By providing a URL (file, ftp, or http) for a CCDT that is hosted in a central location (see Locations for the client channel definition table.
If you use a URL to provide the location of the CCDT, the order of precedence for a native client application to find the client channel definition is as described in Web addressable access to the client channel definition table.