TRPTYPE (Transport Type)

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.

Where TRPTYPE Appears

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.

Common TRPTYPE values (distributed and z/OS)
TRPTYPEMeaningTypical use
TCPTCP/IP over IPv4 or IPv6Default for all new IP estates
LU62SNA APPC (LU 6.2)Legacy SNA mainframe links
LOCALLocal transport on same machineSpecial same-host paths, testing
NETBIOS / SPXLegacy LAN stacksHistorical only; avoid new use

TRPTYPE(TCP) in Depth

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.

shell
1
2
3
4
5
6
DEFINE 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.

TRPTYPE(LU62) and Mainframe Heritage

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.

TRPTYPE(LOCAL)

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.

TRPTYPE on MQI Channels

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.

Comparing TRPTYPE to Related Attributes

  • CONNAME — partner address when TRPTYPE is TCP or LU62 on outbound channels; ignored or empty on inbound RCVR in many designs.
  • PORT — on LISTENER only; which TCP port listens; must align with CONNAME port on senders.
  • SSLCIPH / SSLCAUTH — encrypt and authenticate after TCP connects; do not change TRPTYPE.
  • IPADDR — optional on LISTENER to bind one NIC; still TRPTYPE(TCP).

Explainer: Picking the Right Road

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.

Altering and Auditing TRPTYPE

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.

Troubleshooting Transport Mismatches

  1. DISPLAY CHANNEL on both sides—confirm identical TRPTYPE.
  2. DISPLAY LISTENER and LSSTATUS—listener started with matching TRPTYPE and PORT.
  3. From sender host, test TCP to CONNAME port (not applicable for LU62).
  4. Review AMQERR logs for protocol or handshake errors at connect time.
  5. After SNA-to-TCP migration, verify no old LU62 channel instances remain in a channel initiator.

Explain Like I'm Five: TRPTYPE

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.

Practice Exercises

Exercise 1

Write MQSC for LISTENER plus SDR/RCVR pair using TRPTYPE(TCP) and document which CONNAME port matches which PORT.

Exercise 2

A partner still has LU62; list five questions to ask their SNA team before a TCP migration cutover.

Exercise 3

DISPLAY shows TRPTYPE(TCP) but connection times out—distinguish transport failure from TLS failure in your runbook.

Frequently Asked Questions

Frequently Asked Questions

Test Your Knowledge

Test Your Knowledge

1. TRPTYPE(TCP) uses:

  • TCP/IP networking
  • JCL only
  • COBOL compile
  • Db2 only

2. LISTENER objects require TRPTYPE because:

  • They bind a transport port
  • They define queue depth
  • They replace DLQ
  • They are topics

3. SDR and RCVR TRPTYPE must:

  • Match
  • Always differ
  • Be blank
  • Be LOCAL only

4. CONNAME on TCP SDR looks like:

  • host.example.com(1414)
  • MAXDEPTH(5000)
  • CHLTYPE(RCVR)
  • TRIGTYPE(FIRST)
Published
Read time18 min
AuthorMainframeMaster
Verified: IBM MQ 9.3 documentation