Locations for the CCDT

IBM® MQ supports retrieving a CCDT from a file, FTP, or HTTP URL. You can make the CCDT accessible to the client as a shared file, while it remains located on the server. Alternatively you can distribute the CCDT, either by copying the CCDT to individual client computers or by copying the CCDT to a location shared by more than one client.

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.

From IBM MQ 9.0, the CCDT can be hosted in a central location that is accessible through a URL, removing the need to individually update the CCDT for each deployed client. IBM MQ 9.0 added the capability for native (C/C++, COBOL and RPG) and unmanaged .NET applications to pull the CCDT from a URL, whether that be a local file, FTP or HTTP resource.

The default caching behavior of IBM MQ clients is that a CCDT file is only pulled down if the file modification time is different from the last time that it was retrieved. As with most client configuration options, there are a variety of ways in which the URL location can be provided:
Both authenticated and unauthenticated URLs are supported. Here are some examples:
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 want to use this support with FTP or HTTP, then you still need to host the CCDT file on a server, but with the support added at IBM MQ 9.0, all of your client applications can 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 URL access to the CCDT.

How to specify the location of the CCDT on the client

On a client system, you can specify the location of the CCDT in the following ways:
  • Using the environment variables MQCHLLIB to specify the directory where the table is located, and MQCHLTAB 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 as previously described.
If the location is specified both in the client configuration file and by using environment variables, the environment variables take priority. You can use this feature to specify a standard location in the client configuration file and override it using environment variables when necessary.

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 URL access to the CCDT.