SSLConfigPtr (PMQSCO)

SSLConfigPtr is an input field. Its initial value is the null pointer in those programming languages that support pointers, and an all-null byte string otherwise.

Use SSLConfigPtr and SSLConfigOffset only when the application issuing the MQCONNX call is running as an IBM MQ MQI client and the channel protocol is TCP/IP. If the application is not running as an IBM MQ client, or the channel protocol is not TCP/IP, SSLConfigPtr and SSLConfigOffset are ignored.

By specifying SSLConfigPtr or SSLConfigOffset, plus either ClientConnPtr or ClientConnOffset, the application can control the use of TLS for the client connection. When the TLS information is specified in this way, the environment variables MQSSLKEYR and MQSSLCRYP are ignored; any TLS-related information in the client channel definition table (CCDT) is also ignored.

The TLS information can be specified only on:

  • The first MQCONNX call of the client process, or
  • A subsequent MQCONNX call when all previous TLS connections to the queue manager have been concluded using MQDISC.

These are the only states in which the process-wide TLS environment can be initialized. If an MQCONNX call is issued specifying TLS information when the TLS environment already exists, the TLS information on the call is ignored and the connection is made using the existing TLS environment; the call returns completion code MQCC_WARNING and reason code MQRC_SSL_ALREADY_INITIALIZED in this case.

We can provide the MQSCO structure in the same way as the MQCD structure, either by specifying an address in SSLConfigPtr, or by specifying an offset in SSLConfigOffset ; see the description of ClientConnPtr for details of how to do this. However, we can use no more than one of SSLConfigPtr and SSLConfigOffset ; the call fails with reason code MQRC_SSL_CONFIG_ERROR. if both are nonzero.

Once the MQCONNX call has completed, the MQSCO structure is not referenced again.

This field is ignored if Version is less than MQCNO_VERSION_4.

Note: On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.