Testing IBM MQ on IBM i with JMS
How you test IBM® MQ with JMS with and without JNDI
Testing JMS without JNDI using the IVTRun sample
Carry out the following procedure:
- Verify that the queue manager is started, and that the state of the queue manager is ACTIVE, by issuing the following command:
WRKMQM MQMNAME(QMGRNAME)
- Start the qshell, from the command line, by issuing the STRQSH command.
- Use the cd command to change directory as follows:
cd /qibm/proddata/mqm/java/bin
- Run the script file:
IVTRun -nojndi [-m qmgrname]
You receive output similar to the following example. Note that the copyright statements depend upon the versions of the products that you are using:
> IVTRun -nojndi -m ELCRTP19
Attaching Java program to
/QIBM/ProdData/mqm/java/lib/com.ibm.mqjms.JAR.
Attaching Java program to
/QIBM/ProdData/mqm/java/lib/jms.JAR.
5724-H72, 5724-B41, 5655-F10 (c) Copyright IBM Corp. 2011, 2024.
All Rights Reserved.
WebSphere MQ classes for Java(tm) Message Service 5.300
Installation Verification Test
Creating a QueueConnectionFactory
Creating a Connection
Creating a Session
Creating a Queue
Creating a QueueSender
Creating a QueueReceiver
Creating a TextMessage
Sending the message to SYSTEM.DEFAULT.LOCAL.QUEUE
Reading the message back again
Got message:
JMS Message class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:c1d4d840c5d3c3d9e3d7f1f9404040403ccf041f0000c012
JMSTimestamp: 1020273404500
JMSCorrelationID:null
JMSDestination: queue:///SYSTEM.DEFAULT.LOCAL.QUEUE
JMSReplyTo: null
JMSRedelivered: false
JMS_IBM_PutDate:20040326
JMSXAppID:QP0ZSPWT STANLEY 170302
JMS_IBM_Format:MQSTR
JMS_IBM_PutApplType:8
JMS_IBM_MsgType:8
JMSXUserID:STANLEY
JMS_IBM_PutTime:13441354
JMSXDeliveryCount:1
A simple text message from the MQJMSIVT program
Reply string equals original string
Closing QueueReceiver
Closing QueueSender
Closing Session
Closing Connection
IVT completed OK
IVT finished
$
>
$
Testing IBM MQ JMS client mode without JNDI
Carry out the following procedure:
- Verify that the queue manager is started, and that the state of the queue manager is ACTIVE, by issuing the following command:
WRKMQM MQMNAME(QMGRNAME)
- Verify that the server connection channel is created, by issuing the following command:
WRKMQMCHL CHLNAME( SYSTEM.DEF.SVRCONN ) CHLTYPE(*SVRCN) MQMNAME(QMGRNAME)
- Verify that the listener is started for the correct port, by issuing the WRKMQMLSR command
- Start the qshell, from the command line, by issuing the STRQSH command.
- Verify that the CLASSPATH is correct by issuing the export command.
- Use the cd command to change directory as follows:
cd /qibm/proddata/mqm/java/bin
- Run the script file:
IVTRun -nojndi -client -m <qmgrname> -host <hostname> [-port <port>] [-channel <channel>]
You receive output similar to the following example. Note that the copyright statements depend upon the versions of the products that you are using.
> IVTRun -nojndi -client -m ELCRTP19 -host ELCRTP19 -port 1414 -channel SYSTEM.DEF.SVRCONN
5724-H72, 5724-B41, 5655-F10 (c) Copyright IBM Corp. 2011, 2024.
All Rights Reserved.
WebSphere MQ classes for Java(tm) Message Service 5.300
Installation Verification Test
Creating a QueueConnectionFactory
Creating a Connection
Creating a Session
Creating a Queue
Creating a QueueSender
Creating a QueueReceiver
Creating a TextMessage
Sending the message to SYSTEM.DEFAULT.LOCAL.QUEUE
Reading the message back again
Got message:
JMS Message class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:c1d4d840c5d3c3d9e3d7f1f9404040403ccf041f0000d012
JMSTimestamp: 1020274009970
JMSCorrelationID:null
JMSDestination: queue:///SYSTEM.DEFAULT.LOCAL.QUEUE
JMSReplyTo: null
JMSRedelivered: false
JMS_IBM_PutDate:20040326
JMSXAppID:MQSeries Client for Java
JMS_IBM_Format:MQSTR
JMS_IBM_PutApplType:28
JMS_IBM_MsgType:8
JMSXUserID:QMQM
JMS_IBM_PutTime:14085237
JMSXDeliveryCount:1
A simple text message from the MQJMSIVT program
Reply string equals original string
Closing QueueReceiver
Closing QueueSender
Closing Session
Closing Connection
IVT completed OK
IVT finished
$
Testing IBM MQ JMS with JNDI
Verify that the queue manager is started, and that the state of the queue manager is ACTIVE, by issuing the following command:
WRKMQM MQMNAME(QMGRNAME)
Using the IVTRun sample test script
Carry out the following procedure:
- Make the appropriate changes to the JMSAdmin.config file. To edit this file use the EDTF (Edit File) command from an IBM i command line
.EDTF '/qibm/proddata/mqm/java/bin/JMSAdmin.config'
- To use LDAP for Weblogic, remove the comment from:
INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
- To use LDAP for WebSphere® Application Server, remove the comment from:
INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
- To test the file system, remove the comment from:
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
- Ensure that you have selected the correct PROVIDER_URL, by removing the comment from the appropriate line.
- Comment out all other lines using the
#
symbol. - When you have completed all your changes, press F2=Save and F3=Exit.
- To use LDAP for Weblogic, remove the comment from:
- Start the qshell, from the command line, by issuing the STRQSH command.
- Verify that the CLASSPATH is correct by issuing the export command.
- Use the cd command to change directory as follows:
cd /qibm/proddata/mqm/java/bin
- Start the IVTSetup script to create the administered objects (MQQueueConnectionFactory and MQQueue), by issuing the IVTSetup command.
- Run the IVTRun script by issuing the following command:
IVTRun -url <providerURL> [-icf <initCtxFact>]
You receive output similar to the following example. Note that the copyright statements depend upon the versions of the products that you are using.
> IVTSetup
+ Creating script for object creation within JMSAdmin
+ Calling JMSAdmin in batch mode to create objects
Ignoring unknown flag: -i
5724-H72 (c) Copyright IBM Corp. 2011, 2024. All Rights Reserved.
Starting WebSphere MQ classes for Java(tm) Message Service Administration
InitCtx>
InitCtx>
InitCtx>
InitCtx>
InitCtx>
Stopping MQSeries classes for Java(tm) Message Service Administration
+ Administration done; tidying up files
+ Done!
$
> IVTRun -url file:////tmp/mqjms -icf com.sun.jndi.fscontext.RefFSContextFactory
5724-H72 (c) Copyright IBM Corp. 2011, 2024. All Rights Reserved.
MQSeries classes for Java(tm) Message Service
Installation Verification Test
Using administered objects, please ensure that these are available
Retrieving a QueueConnectionFactory from JNDI
Creating a Connection
Creating a Session
Retrieving a Queue from JNDI
Creating a QueueSender
Creating a QueueReceiver
Creating a TextMessage
Sending the message to SYSTEM.DEFAULT.LOCAL.QUEUE
Reading the message back again
Got message:
JMS Message class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:c1d4d840c5d3c3d9e3d7f1f9404040403ccf041f0000e012
JMSTimestamp: 1020274903770
JMSCorrelationID:null
JMSDestination: queue:///SYSTEM.DEFAULT.LOCAL.QUEUE
JMSReplyTo: null
JMSRedelivered: false
JMS_IBM_Format:MQSTR
JMS_IBM_PutApplType:8
JMSXDeliveryCount:1
JMS_IBM_MsgType:8
JMSXUserID:STANLEY
JMSXAppID:QP0ZSPWT STANLEY 170308
A simple text message from the MQJMSIVT program
Reply string equals original string
Closing QueueReceiver
Closing QueueSender
Closing Session
Closing Connection
IVT completed OK
IVT finished
$