Generic JMS with IBM MQ.

Posted by Sivarami Reddy Marella on 02-Jun-2017 06:40

Hi Fuelfire,

I saw lot of posts from you related to Generic JMS with IBM MQ and these are very helpful.Thanks for that.

I am new to JAVA and I want to generate the .jar file for AdminObjectFinder.cls file how can I do that?

When  I am running below code I am getting the error message - "Error connecting to the JMS Appserver Service", Below i have pasted sonicmq1 server log also.


/*------------------------------------------------------------------------
File : Consumer.p
Purpose :

Syntax :

Description :

Author(s) :
Created : Thu Jun 01 14:14:02 IST 2017
Notes :
----------------------------------------------------------------------*/

/* *************************** Definitions ************************** */

BLOCK-LEVEL ON ERROR UNDO, THROW.

/* ******************** Preprocessor Definitions ******************** */


/* *************************** Main Block *************************** */
DEFINE VARIABLE ptpsession AS HANDLE.
DEFINE VARIABLE consumerH AS HANDLE.

debugger:initiate().
debugger:set-break().
/* Creates a session object. */
RUN jms/jmssession.p PERSISTENT SET ptpsession ("-H localhost -S 3620 -AppService AD.sonicMQ1 -DirectConnect").
/* RUN jms/jmssession.p PERSISTENT SET ptpsession ("-H localhost -S 5162"). */

RUN setBrokerURL IN ptpsession (INPUT "TestQueueManager").

/* Connect to the broker. */
RUN beginSession IN ptpsession.

/* Subscribe to the Sample.Q1 queue. Messages are handled by the "messageHandler" internal procedure. */
RUN createMessageConsumer IN ptpsession (THIS-PROCEDURE, /* This proc will handle it */
"messageHandler", /* name of internal procedure */
OUTPUT consumerH).

/* Do not create a new message for each received message */
RUN setReuseMessage IN consumerH.

RUN receiveFromQueue IN ptpsession ("SampleQ1", /* name of queue */
?, /* No message selector */
consumerH) NO-ERROR. /* Handles incoming messages*/

/* Start receiving messages */
RUN startReceiveMessages IN ptpsession.

/* Wait forever to receive messages since "u1" is never applied. */
WAIT-FOR u1 OF THIS-PROCEDURE.

PROCEDURE messageHandler:
DEFINE INPUT PARAMETER messageH AS HANDLE.
DEFINE INPUT PARAMETER msgConsumerH AS HANDLE.
DEFINE OUTPUT PARAMETER replyH AS HANDLE.

/* Creates a reply message. The reply is published automatically when
control returns to the ABL–JMS implementation.
*/
DISPLAY DYNAMIC-FUNCTION('getText':U IN messageH) format "x(70)".

RUN deleteMessage IN messageH.
APPLY "U1" TO THIS-PROCEDURE.
END.

Error Message from sonicMQ1.server log.

Main >======================================================================
Main >(Jun 2, 2017 13:33:09:562) C:\OpenEdge\WRK\sonicMQ1.server.log opened.
Main >(Jun 2, 2017 13:33:09:562) : Starts Adapter server logging.
Main >(Jun 2, 2017 13:33:09:562) : LoggingLevel set to = 5
Main >(Jun 2, 2017 13:33:09:563) : The system property: sonicMQExtensions is set to false
Main >(Jun 2, 2017 13:33:09:563) : The classpath is set to C:\Progress\OpenEdge\java\progress.jar;C:\Program Files\IBM\WebSphere MQ\java\lib\com.ibm.mqjms.jar
Main >(Jun 2, 2017 13:33:09:569) : Reading jmsProvider.properties from location : C:\Progress\OpenEdge\properties\jmsProvider.properties
Main >: A public jmsfromABL.AdminObjectFinder class was not found.
S-0001>(Jun 2, 2017 13:33:56:269) 10.242.244.47::sonicMQ1::3620::dc4e308cfa0ca490:3a529678:15c67d459ad:-7fec: Startup Parameters:
jmsServerName:
Point-To-Point
brokerURL: TestQueueManager
user:
password:
clientID: null
pingInterval:
transactedPublish: false
transactedReceive: false
singleMessageAck: false
symbiontAdapter: false
jmsDomain: true

S-0001>(Jun 2, 2017 13:33:56:273) S-0001: receive message queue size set to 10
S-0001>(Jun 2, 2017 13:33:56:275) S-0001: browse message queue size set to 500
S-0001>(Jun 2, 2017 13:33:56:276) : In SessionContainer()
S-0001>(Jun 2, 2017 13:33:56:276) : Looking up ConnectionFactory in JNDI Object Store
S-0001>(Jun 2, 2017 13:33:56:276) : Connection Factory object not found in JNDI Object Store. Creating using jmsProvider.properties file
S-0001>(Jun 2, 2017 13:33:56:276) : Creating JMS connection factory with Broker URL as [ TestQueueManager ]
S-0001>(Jun 2, 2017 13:33:56:512) : Setting Queue Manager TestQueueManager on Connection Factory Class com.ibm.mq.jms.MQConnectionFactory
S-0001>(Jun 2, 2017 13:33:56:514) 10.242.244.47::sonicMQ1::3620::dc4e308cfa0ca490:3a529678:15c67d459ad:-7fec: Using connection values: 26,null,true,,true,false,-1,-1,false,0,false,false,,10000,0,30,false,60,0,20,0,,null,null,CTSC00520904801,localhost
S-0001>(Jun 2, 2017 13:33:56:637) 10.242.244.47::sonicMQ1::3620::dc4e308cfa0ca490:3a529678:15c67d459ad:-7fec
com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'TestQueueManager' with connection mode 'Bindings' and host name 'localhost(1414)'.
Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information.
at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:595)
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:215)
at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:413)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8475)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7814)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:299)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:236)
at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6024)
at com.ibm.mq.jms.MQConnectionFactory.createConnection(MQConnectionFactory.java:6049)
at com.progress.messaging.jms.SessionContainer.createConnection(SessionContainer.java:1519)
at com.progress.messaging.jms.SessionContainer.init(SessionContainer.java:303)
at com.progress.messaging.jms.JmsConnection.<init>(JmsConnection.java:39)
at com.progress.messaging.jms.jms._connect(jms.java:306)
at com.progress.javafrom4gl.implementation.JavaServlet.<init>(JavaServlet.java:81)
at com.progress.javafrom4gl.implementation.ServiceImpl.createConnectionServlet(ServiceImpl.java:106)
at com.progress.ubroker.broker.ubServerThreadIPC.write(ubServerThreadIPC.java:433)
at com.progress.ubroker.broker.ubASserverThread.processConnect(ubASserverThread.java:574)
at com.progress.ubroker.broker.ubServerThread.processEvent(ubServerThread.java:1210)
at com.progress.ubroker.broker.ubServerThread.mainline(ubServerThread.java:479)
at com.progress.ubroker.broker.ubServerThread.run(ubServerThread.java:356)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2058' ('MQRC_Q_MGR_NAME_ERROR').
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)

Thanks,

Sivarami

All Replies

This thread is closed