MQRC 2539: Channel configuration error
MQRC 2539 (MQRC_
Other names for this code
Also written as RC2539, reason code 2539, MQ 2539, MQ error 2539, MQRC_CHANNEL_CONFIG_ERROR, 09EB, 0x09EB, channel config error, JMSWMQ0018 2539, MQCC=2 MQRC=2539.
What it means
When a client connects, it and the queue manager exchange the channel's attributes and settle on values both can use. 2539 means that negotiation failed. IBM lists three reasons. The two sides couldn't agree on the channel attributes. The queue manager's qm.ini or the client's mqclient.ini has an error. Or the server doesn't support the code page (CCSID) the client is using.
Field reports add some concrete cases. A common one is a client pointed at a channel that isn't a server-connection channel. Applications must use a SVRCONN channel. If the client names a RECEIVER or other message channel, the queue manager reports in its error log that the remote channel isn't of a suitable type, and the client gets 2539. Another reported case involves TLS. When a server-connection channel has a certificate label (CERTLABL) set and the remote end doesn't support certificate label selection, the channel fails and the client sees 2539.
Common causes
- The client uses the name of a receiver, sender or other non-SVRCONN channel, for example a channel defined for queue manager to queue manager traffic.
- Channel attributes on the client-connection definition can't be reconciled with the server-connection channel.
- An error in qm.ini on the server or mqclient.ini on the client, such as a bad stanza or value.
- The client runs with a CCSID the server can't support for the channel.
- A TLS setting such as CERTLABL that the other end can't honour.
How to find the problem
- Read the client's AMQERR01.LOG and the queue manager's error log at the time of the failure. Look for a message that names the channel and the attribute or type that didn't fit.
- Check the type of the channel the client uses with
DISPLAY CHANNEL(APP.. It must show SVRCONN.SVRCONN) CHLTYPE - Review mqclient.ini and the client's CCSID (for example the MQCCSID environment variable), and the server's qm.ini if it changed recently.
- For TLS channels, check CERTLABL, SSLCIPH and SSLCAUTH on the server-connection channel.
How to fix it
- Point the client at a server-connection channel. Define one if needed, for example
DEFINE CHANNEL(APP., and secure it with CHLAUTH rules.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) - Correct the client-connection definition, in the CCDT or the application's settings, to match the server-connection channel.
- Fix syntax errors in qm.ini or mqclient.ini and restart the queue manager or client process so they are reread.
- Use a CCSID the server supports, or remove an unusual MQCCSID override.
- Remove a certificate label the remote end can't use, or upgrade the remote end so it supports certificate label selection.
IBM documentation
IBM documentation: MQRC 2539. Use the documentation for your installed release.
Related codes
Questions
Can I connect an application to a RECEIVER channel?
No. Receiver, sender and other message channels are for queue manager to queue manager traffic. Applications need a server-connection (SVRCONN) channel.
What is the difference between 2539 and 2540?
2540 means the queue manager doesn't know the channel name at all. 2539 means the channel was found, or the connection got that far, but its configuration couldn't be agreed.
Why doesn't the client log say more?
The client often only knows that the set-up failed. The queue manager's error log usually has the detail, so check both.