Submit and vote on feature ideas.

Welcome to the new Parasoft forums! We hope you will enjoy the site and try out some of the new features, like sharing an idea you may have for one of our products or following a category.

Issue on SOA Tool connecting to IMB MQ

aande
aande Posts: 1

Hi Team,

We are trying to connect to IBM MQ from SOA tool(2020.1), while running test cases, we are getting ": Test timed out after 60000 milliseconds."

we are setting configuration details as stated below.
hostname
channel
port
queuemanager
connectionfactory
provider url with bindings file
request queue
response queue
and also we used below dependency jars
com.ibm.mq.allclient-9.1.5.0.jar
fscontext.jar
providerutil.jar

Could you please help us to resolve this issue..

Thanks
Aruna

Comments

  • Ireneusz Szmigiel
    Ireneusz Szmigiel Posts: 227 ✭✭✭

    aande,

    are you able to deliver message to request queue? Did you check it with any MQ monitoring request queue software?
    Are you expecting message on response queue? If yes, did you check that expected message is on response queue?

    --
    Ireneusz Szmigiel
    http://www.catb.org/esr/faqs/smart-questions.html

  • benken_parasoft
    benken_parasoft Posts: 1,228 ✭✭✭

    For request-reply messaging pattern, where your client is configured to both put a request message and get a response message, please check:

    • Under "Put Messages > Other MQMD Fields", make sure "Message Type" is set to MQMT_REQUEST instead of the default MQMT_DATAGRAM. This is necessary for request-reply messaging pattern.
    • Under "Put Messages > Other MQMD Fields", make sure "Format Type" is set to something appropriate and not the default MQFMT_NONE. This should usually be set to MQFMT_STRING for text-based messages.

    A timeout here usually means that the client failed to find the response message within the timeout. The typical cause is that either the message never showed up within the timeout or that your correlation settings were never configured correctly. You need to know how request-response message correlation was implemented on your side. There is no one way of doing it. I'll describe some ways correlation is done but this is not something you can normally guess.

    It is common to match the correlationId of response message with the messageId of request message. If this is the case, please check the following:

    • Under "GET Messages > MQGetMessageOptions.matchOptions", make sure that only MQMO_MATCH_CORREL_ID is selected. You should not select any other "MQMO" options if you are trying to find the response messages based on its correlationId only.
    • Under "GET Messages > MQ Get Message Misc Options", make sure that "Match response correlationId with request messageId" is selected.

    If you are correlating some other way then you would need to configure "MQGetMessageOptions.matchOptions" differently and not select "Match response correlationId with request messageId". For example, it is also possible to configure a fixed correlationId under "Put Messages > Other MQMD Fields" if you were matching correlationId of response with correlationId of request. However, it is common to match the correlationId of response message with the messageId of request as I first described.

    If correlation is setup wrong then you may be picking up the response to someone else's request, or no message will correlate and your test will simply time out.