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.
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.
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')
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
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)
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
MQSeriesAMQP
Such as from:
rpm -qa | grep MQSeriesAMQP
rpm -qa | grep MQSeriesAMQP
and the output is something like this:
MQSeriesAMQP-9.1.5-0.x86_64
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)
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)
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)
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)
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)
alter SERVICE(SYSTEM.AMQP.SERVICE) CONTROL(QMGR)
b) Start the service within runmqsc:
start SERVICE(SYSTEM.AMQP.SERVICE)
+++ end +++
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)"}]
Was this topic helpful?
Document Information
Modified date:
03 February 2021
UID
ibm16411487