Client Connection Channels

Client connection channels (CHLTYPE CLNTCONN) describe, from the application's point of view, how to reach a remote queue manager. While the server defines SVRCONN and listens on a port, the client needs matching metadata: which hostname, which port, which channel name, and whether to use TLS. Modern deployments often inject that data through environment variables, Kubernetes secrets, or IBM MQ client configuration JSON instead of maintaining explicit CLNTCONN objects—but understanding CLNTCONN remains essential when you inherit CCDT files, export definitions from MQ Explorer, or troubleshoot “channel not found” errors during MQCONNX. This tutorial explains DEFINE CLNTCONN, CCDT usage, pairing rules with SVRCONN, transport and security attributes on the client side, and how client connection definitions differ from message channel definitions like SDR.

Client-Side Mirror of SVRCONN

IBM MQ client libraries connect outbound to the server. The server channel type is SVRCONN; the documented client-side counterpart is CLNTCONN. Both share the same channel name string—PAYMENTS.APP on the client file matches PAYMENTS.APP SVRCONN on QM_MAIN. The client supplies CONNAME (host and port) because it initiates TCP. If CONNAME points to the wrong port, the error appears on the client before any MQI call succeeds, often reason code 2538 (host not available) or TLS handshake failures in the client log.

CLNTCONN vs SVRCONN
AspectCLNTCONNSVRCONN
Defined onClient / CCDTQueue manager server
TCP roleConnects outAccepts inbound
CONNAMERequired (target host:port)Not used for address
Authority checksNo—server enforcesYes—MCAUSER and OAM
Required for MQ?No—alternatives existYes—for remote MQI

Defining CLNTCONN and CCDT

shell
1
2
3
4
5
6
* On a machine where you maintain client definitions (may use runmqsc -n) DEFINE CHANNEL('PAYMENTS.APP') CHLTYPE(CLNTCONN) TRPTYPE(TCP) + CONNAME('qm-main.corp(1414)') QMNAME('QM_MAIN') * Generate CCDT for distribution to app servers * Operators use MQ Explorer or setmqenv / MQCCDT path per platform docs * Application MQCONNX can reference channel PAYMENTS.APP via CCDT path

QMNAME identifies the target queue manager name used in the connect call. CONNAME uses the format host(port) for TCP. When multiple queue managers share a host, channel name and QMNAME disambiguate. After changing CONNAME for a DR failover, redeploy CCDT or update client secrets—applications cache paths and old files cause prolonged outages during tests if forgotten.

Connecting Without CLNTCONN Objects

Java, .NET, and C clients frequently pass connection parameters in code or configuration without a formal CLNTCONN object on disk. IBM MQ client properties for container platforms include channel, host, port, and cipher suite. Functionally this is the same information CLNTCONN would hold. Operations teams should still document the logical channel name and SVRCONN partner in runbooks even when no CCDT file exists.

text
1
2
3
4
5
6
# Example environment-style client hints (illustrative) MQSERVER=SYSTEM.DEF.SVRCONN/TCP/qm-main.corp(1414) # Or structured client.json per IBM MQ container guidance # channel: PAYMENTS.APP # connectionNameList: qm-main.corp(1414) # queueManager: QM_MAIN

Explainer: Phone Number in Your Contact List

CLNTCONN is the contact card on your phone for calling the queue manager: the name label (channel), the phone number (CONNAME), and which company department answers (QMNAME). SVRCONN is the receptionist trained to accept calls for that label. You can dial from memory without saving the contact, but the saved card helps everyone call the same number after a move.

Security on the Client Definition

  • SSLCIPH and certificate stores on client must match server TLS policy.
  • Password authentication uses AUTHINFO on server; client supplies userid/password in connect options.
  • Do not embed production passwords in CCDT files in source control—use secret stores.
  • Mutual TLS uses client keystores referenced by client configuration, not CLNTCONN alone.

CLNTCONN vs Message Channel Client Definitions

Message channels (SDR, RQSTR) are never defined as CLNTCONN. If integration specs mention “client channel” for a batch file moving messages between two queue managers, verify whether they mean CLNTCONN for an application or a misunderstanding of SDR. Mixing vocabulary causes wrong firewall tickets.

Operations and Change Management

  1. Version-control CCDT exports with channel name, CONNAME, QMNAME, and cipher.
  2. Test MQCONNX from a jump host after listener or certificate changes.
  3. Align DR CONNAME updates with DNS TTL and load balancer pools.
  4. DISPLAY CHSTATUS SVRCONN on server when client reports failure—see if TCP arrived.
  5. Document MAXINST limits when many containers share one SVRCONN name.

Common Errors

  • Channel name typo—client CLNTCONN PAYMENT.APP vs server PAYMENTS.APP.
  • IPv6 vs IPv4 CONNAME mismatch behind dual-stack hosts.
  • Stale CCDT in container image layer while server already rotated TLS cert.
  • Pointing CONNAME at queue manager management interface port instead of listener.

Explain Like I'm Five: Client Connection Channels

A client connection channel is the note in your backpack that says which phone number to call and what to ask for when you want the queue manager to help you send a message.

Practice Exercises

Exercise 1

Write a CLNTCONN definition matching an existing SVRCONN PAYMENTS.APP on QM_MAIN at port 1414.

Exercise 2

List two ways to connect without a physical CCDT file on disk.

Exercise 3

During DR, which fields in CLNTCONN must change if only the DNS name changes but port stays the same?

Frequently Asked Questions

Frequently Asked Questions

Test Your Knowledge

Test Your Knowledge

1. Client connection CHLTYPE is:

  • CLNTCONN
  • CLUSRCVR
  • SDR
  • XMITQ

2. CLNTCONN name must match:

  • SVRCONN on server
  • SDR on server
  • DLQ
  • INITQ

3. CCDT is used to:

  • Store client connection definitions
  • Replace queues
  • Format JCL
  • Compile COBOL

4. CLNTCONN is optional because:

  • MQCONNX can supply connection details
  • MQ has no clients
  • Only z/OS
  • Channels unused
Published
Read time17 min
AuthorMainframeMaster
Verified: IBM MQ 9.3 documentation