Every IBM MQ channel and listener definition includes TRPTYPE—the attribute that answers which wire protocol the queue manager should use when it opens or accepts a connection. Beginners often copy MQSC from a colleague and see TRPTYPE(TCP) without understanding why it is there, then spend hours debugging CONNAME when the real problem was a listener defined with a different transport or a firewall that only allows TCP while someone left LU62 on a migrated channel. TRPTYPE is not encryption (that is TLS and SSLCIPH), not identity (that is MCAUSER and CHLAUTH), and not retry timing (that is SHORTRTY and LONGRTY). It is the foundation: pick TCP, LU62, LOCAL, or the rare legacy types, and every other attribute must make sense in that context. This tutorial explains each major TRPTYPE value, how TRPTYPE pairs with CONNAME and LISTENER PORT, differences between message channels and MQI channels, platform notes for z/OS and distributed, and troubleshooting when DISPLAY CHSTATUS shows RETRYING because the transport layer never came up.
TRPTYPE is defined on CHANNEL objects (SDR, RCVR, SVRCONN, CLNTCONN, CLUSSDR, CLUSRCVR, and others) and on LISTENER objects. When you START LISTENER(LISTENER.TCP), the queue manager uses TRPTYPE(TCP) and PORT(1414) to bind a TCP socket. When a sender channel starts, it reads TRPTYPE and CONNAME to know whether to open a TCP connection to partner.example.com(1414) or to initiate an LU62 conversation with an APPC partner name. Receiver channels use TRPTYPE to accept the correct inbound protocol on the shared listener. If TRPTYPE on the channel does not match what the listener offers, partners see connection refused, timeout, or protocol errors in the queue manager error log before BINDING completes.
| TRPTYPE | Meaning | Typical use |
|---|---|---|
| TCP | TCP/IP over IPv4 or IPv6 | Default for all new IP estates |
| LU62 | SNA APPC (LU 6.2) | Legacy SNA mainframe links |
| LOCAL | Local transport on same machine | Special same-host paths, testing |
| NETBIOS / SPX | Legacy LAN stacks | Historical only; avoid new use |
TCP is the transport almost every reader will administer. The sender resolves CONNAME to an IP address and port, performs a TCP three-way handshake, then the Message Channel Agent negotiates the MQ channel protocol on top of the socket. PORT on the LISTENER must match the port in CONNAME—1414 is a convention, not a requirement. Firewalls must allow outbound TCP from the sender host to that port on the receiver host. NAT and load balancers can break CONNAME if they rewrite addresses without sticky routing. Attributes like KAINT and HBINT apply to TCP channels; they do not replace TRPTYPE but tune behavior once TCP is up.
123456DEFINE LISTENER('LISTENER.TCP') TRPTYPE(TCP) PORT(1414) CONTROL(QMGR) START LISTENER('LISTENER.TCP') DEFINE CHANNEL('QM1.TO.QM2') CHLTYPE(SDR) TRPTYPE(TCP) + CONNAME('qm2.example.com(1414)') XMITQ('QM2.XMIT') DEFINE CHANNEL('QM1.TO.QM2') CHLTYPE(RCVR) TRPTYPE(TCP) DISPLAY CHSTATUS('QM1.TO.QM2')
On the diagram in your head: LISTENER is the street address (port), TRPTYPE(TCP) is the road type (paved IP highway), CONNAME is the GPS coordinate the sender van follows. RCVR does not need CONNAME because the van drives to your address; SDR must have CONNAME pointing at the listener PORT on the partner machine.
Before TCP dominated enterprise networks, many queue managers on z/OS and midrange systems used TRPTYPE(LU62) over SNA. LU62 channels use APPC partner names and VTAM definitions instead of host(port). Operations teams maintain MODEENT, APPC/MVS, or Communications Server profiles that must align with MQ channel names and partner LUs. If you inherit LU62 channels, document the SNA path separately from IP firewall rules—ping and telnet will not help. Migration projects typically redefine pairs as TRPTYPE(TCP), add LISTENER objects, update CONNAME, and cut over during a window after parallel testing. Mixing LU62 on one queue manager and TCP on another for the same logical partner without a gateway is not supported as a single channel pair.
LOCAL transport connects queue manager components or applications on the same system without traversing a physical network adapter in the usual way. Use cases include certain intra-machine optimizations and specialist configurations described in IBM documentation for your release. Beginners should not choose LOCAL to avoid defining a listener on a laptop lab—most learning exercises need TCP so you practice real distributed behavior. If DISPLAY CHLTYPE shows LOCAL and you expected remote partners, you are on the wrong transport for cross-machine messaging.
Server connection channels (SVRCONN) and client connection channels (CLNTCONN) also carry TRPTYPE(TCP) in typical estates. Java and .NET clients connect to the queue manager listener; the client channel definition in the CCDT or MQCONNX connection string references the channel name, and the server binds SVRCONN with the same TRPTYPE as the listener. A CLNTCONN with TRPTYPE(TCP) in a client channel table tells the client library to use TCP to reach CONNAME. Mismatched TRPTYPE between CLNTCONN and SVRCONN is as fatal as on SDR/RCVR pairs.
Think of TRPTYPE as choosing whether your delivery truck uses the interstate (TCP), a private railroad (LU62), or a hallway inside one building (LOCAL). The package label (channel name) and warehouse rules (MCAUSER) only matter after the truck is on the correct road. Sending a truck down the interstate when the warehouse dock only accepts rail freight means nothing ever arrives, no matter how perfect the channel name match is.
ALTER CHANNEL(name) TRPTYPE(TCP) changes the repository definition; running channel instances may need STOP CHANNEL and restart to pick up changes. Automation should use DISPLAY CHANNEL(name) ALL and compare TRPTYPE across paired queue managers during audits. Change management templates should list TRPTYPE, CONNAME, LISTENER PORT, and firewall ticket numbers together—never CONNAME alone.
TRPTYPE is telling MQ whether to send your message by internet cable, an old phone line style network, or a shortcut inside one computer. Most of the time you say TCP, which is the normal internet cable way.
Write MQSC for LISTENER plus SDR/RCVR pair using TRPTYPE(TCP) and document which CONNAME port matches which PORT.
A partner still has LU62; list five questions to ask their SNA team before a TCP migration cutover.
DISPLAY shows TRPTYPE(TCP) but connection times out—distinguish transport failure from TLS failure in your runbook.
1. TRPTYPE(TCP) uses:
2. LISTENER objects require TRPTYPE because:
3. SDR and RCVR TRPTYPE must:
4. CONNAME on TCP SDR looks like: