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.
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.
| Aspect | CLNTCONN | SVRCONN |
|---|---|---|
| Defined on | Client / CCDT | Queue manager server |
| TCP role | Connects out | Accepts inbound |
| CONNAME | Required (target host:port) | Not used for address |
| Authority checks | No—server enforces | Yes—MCAUSER and OAM |
| Required for MQ? | No—alternatives exist | Yes—for remote MQI |
123456* 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.
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.
123456# 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
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.
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.
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.
Write a CLNTCONN definition matching an existing SVRCONN PAYMENTS.APP on QM_MAIN at port 1414.
List two ways to connect without a physical CCDT file on disk.
During DR, which fields in CLNTCONN must change if only the DNS name changes but port stays the same?
1. Client connection CHLTYPE is:
2. CLNTCONN name must match:
3. CCDT is used to:
4. CLNTCONN is optional because: