IBM Support

MQ error: AMQ8494E: AMQP commands are not available.

Question & Answer


Question

You are using runmqsc with a file that has MQSC commands, and you notice the following error:
 DEFINE CHANNEL('SYSTEM.DEF.AMQP') +
       :    CHLTYPE(AMQP) +
...
       :    REPLACE
AMQ8494E: AMQP commands are not available.

Answer

It depends!
The rest of this note covers 2 scenarios.

++ SCENARIO A: if you do not want to use AMQP
In the MQSC file, delete the object definition for
  DEFINE CHANNEL('SYSTEM.DEF.AMQP')
++ SCENARIO B: if you want to use AMQP
1) If you have not installed the following MQ fileset: MQSeriesAMQP
Such as from:
  rpm -qa | grep MQSeriesAMQP
... and the output is null
Then when you issue the following command in runmqsc you will see the the value is AMQPCAP(NO)
display qmgr amqpcap
     4 : display qmgr amqpcap
AMQ8408I: Display Queue Manager details.
   QMNAME(QM92)                            AMQPCAP(NO)
This means that you cannot use the MQ AMQP function.
2) If you have the following MQ fileset installed
   MQSeriesAMQP
Such as from:
  rpm -qa | grep MQSeriesAMQP
and the output is something like this:
MQSeriesAMQP-9.1.5-0.x86_64
Then when you issue the following command in runmqsc you will see the the value is AMQPCAP(YES)
display qmgr amqpcap
     4 : display qmgr amqpcap
AMQ8408I: Display Queue Manager details.
   QMNAME(QM92)                            AMQPCAP(YES)
In addition, then the following 2 objects are created in a queue manager:
Notice that the following service is created with CONTROL(QMGR) which means that the service is automatically started when the queue manager starts, and the service is automatically terminated when the queue manager stops:
display SERVICE(SYSTEM.AMQP.SERVICE)
     2 : display SERVICE(SYSTEM.AMQP.SERVICE)
AMQ8629I: Display service information details.
   SERVICE(SYSTEM.AMQP.SERVICE)            CONTROL(QMGR)
   SERVTYPE(SERVER)
   STARTCMD(+MQ_INSTALL_PATH+/bin/amqp.sh)
   STARTARG(start -m +QMNAME+ -d "+MQ_Q_MGR_DATA_PATH+/." -g "+MQ_DATA_PATH+/.")
   STOPCMD(+MQ_INSTALL_PATH+/bin/endmqsde)
   STOPARG(-m +QMNAME+ -n "+MQ_SERVICE_NAME+" -t AMQP)
   STDOUT(+MQ_Q_MGR_DATA_PATH+/amqp.stdout)
   STDERR(+MQ_Q_MGR_DATA_PATH+/amqp.stderr)
   DESCR(Manages clients that use the AMQP protocol)
   ALTDATE(2021-02-03)                     ALTTIME(11.35.05)
display CHANNEL(SYSTEM.DEF.AMQP)
     1 : display CHANNEL(SYSTEM.DEF.AMQP)
AMQ8414I: Display Channel details.
   CHANNEL(SYSTEM.DEF.AMQP)                CHLTYPE(AMQP)
   ALTDATE(2020-12-26)                     ALTTIME(14.47.37)
   CERTLABL( )                             DESCR( )
   AMQPKA(AUTO)                            LOCLADDR( )
   MAXINST(999999999)                      MAXMSGL(4194304)
   MCAUSER( )                              PORT(5672)
   SSLCAUTH(REQUIRED)                      SSLCIPH( )
   SSLPEER( )                              TPROOT(SYSTEM.BASE.TOPIC)
   USECLTID(NO)
When the above service is running, you will see the following 2 processes running for the queue manager:
$ ps -ef | grep mq
mqm      16675 16666  0 11:35 ?        00:00:00 /bin/sh /opt/mqm92/amqp/bin/controlAMQP_mqm.sh start -m QM92 -d /var/mqm/qmgrs/QM92//. -g /var/mqm//.
mqm      16730 16675 68 11:35 ?        00:00:07 /opt/mqm92/amqp/bin/../../java/jre64/jre/bin/java -Dcom.ibm.mq.mqxr.service.type=amqp -Dcom.ibm.msg.client.config.location=file:////var/mqm/qmgrs/QM92//./amqp/amqp_trace.config -Xoptionsfile=/var/mqm/qmgrs/QM92//./amqp/amqp_java.properties -Dcom.ibm.msg.client.commonservices.wmq.logdir=/var/mqm/qmgrs/QM92//./errors -Dcom.ibm.msg.client.commonservices.wmq.tracedir=/var/mqm//./trace -Dcom.ibm.msg.client.commonservices.wm .ffdcdir=/var/mqm//./errors com.ibm.mq.MQXRService.RunMQXRService -t /opt/mqm92/amqp/bin/../config -m QM92 -d /var/mqm/qmgrs/QM92//. -g /var/mqm//.
If any of these processes is not running (because they have been manually stopped), or when the SERVICE(SYSTEM.AMQP.SERVICE) has been stopped, and if you are trying to work with the AMQP function, such as starting a channel:
start  CHANNEL(SYSTEM.DEF.AMQP)
     2 : start  CHANNEL(SYSTEM.DEF.AMQP)
Then you will get an error message:
AMQ8494E: AMQP commands are not available.
To fix the problem:
a) Ensure that it has CONTROL(QMGR), in case that an MQ administrator has changed the setting:
alter SERVICE(SYSTEM.AMQP.SERVICE) CONTROL(QMGR)
b) Start the service within runmqsc:
start SERVICE(SYSTEM.AMQP.SERVICE)

+++ end +++

[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"ARM Category":[{"code":"a8m0z00000008ObAAI","label":"Components and Features->Administration"}],"ARM Case Number":"TS004948753","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]

Document Information

Modified date:
03 February 2021

UID

ibm16411487