Author |
Message
|
skrv |
Posted: Thu Jul 02, 2015 9:27 am Post subject: object messages |
|
|
Centurion
Joined: 26 Oct 2012 Posts: 118
|
application is trying to send reply messages as "object messages" and getting below errors in their application logs (2085). No errors in MQ logs.
any help?
[7/1/15 17:21:03:268 EDT] 00000095 SystemOut O 2015-07-01 17:21:03,268 DEBUG (defaultBinaryMessageListenerContainer-2) [BinaryRequestMessageListener(onMessage:30)] Message recieved in Listener :
JMSMessage class: jms_object
JMSType: null
JMSDeliveryMode: 1
JMSExpiration: 1435785723263
JMSPriority: 4
JMSMessageID: ID:414d5120444c34434e3331313320202055900a9a20149a35
JMSTimestamp: 1435785663263
JMSCorrelationID: 3ii7ha1h98mt30eho322empmd
JMSDestination: queue:///ABC.FILE.INQ.DQB.REQUEST
JMSReplyTo: null
JMSRedelivered: false
JMSXAppID: java
JMSXDeliveryCount: 1
JMSXUserID: cpcuser
JMS_IBM_Character_Set: UTF-8
JMS_IBM_Encoding: 273
JMS_IBM_Format:
JMS_IBM_MsgType: 8
JMS_IBM_PutApplType: 6
JMS_IBM_PutDate: 20150701
JMS_IBM_PutTime: 21210326
class gov.cms.cicdim.cpc.common.vo.DocumentVO
[7/1/15 17:21:03:280 EDT] 00000095 SystemOut O 2015-07-01 17:21:03,280 DEBUG (defaultBinaryMessageListenerContainer-2) [SQL(logStatement:104)] select documentca_.DOC_CTGRY_ID, documentca_.DOC_CTGRY_DESC as DOC_CTGR2_2_, documentca_.DOC_ROLE_ID as DOC_ROLE3_2_ from DOC_CTGRY documentca_ where documentca_.DOC_CTGRY_ID=?
[7/1/15 17:21:03:280 EDT] 00000095 SystemOut O 2015-07-01 17:21:03,280 TRACE (defaultBinaryMessageListenerContainer-2) [BasicBinder(bind:84)] binding parameter [1] as [INTEGER] - 31700000
[7/1/15 17:21:03:281 EDT] 00000095 SystemOut O 2015-07-01 17:21:03,281 DEBUG (defaultBinaryMessageListenerContainer-2) [DocumentMetaDataService(saveDocumentMetaData:59)] Metadata ID :::: 222
[7/1/15 17:21:03:284 EDT] 00000095 SystemOut O 2015-07-01 17:21:03,283 ERROR (defaultBinaryMessageListenerContainer-2) [BinaryRequestHandler(handleMessage:181)] Error processing request :
org.springframework.jms.InvalidDestinationException: JMSWMQ2008: Failed to open MQ queue 'ABC.FILE.INQ.AWS.REPLY'.; nested exception is com.ibm.msg.client.jms.DetailedInvalidDestinationException: JMSWMQ2008: Failed to open MQ queue 'ABC.FILE.INQ.AWS.REPLY'.
JMS attempted to perform an MQOPEN, but WebSphere MQ reported an error.
Use the linked exception to determine the cause of this error. Check that the specified queue and queue manager are defined correctly.; nested exception is com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME'). |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 02, 2015 9:39 am Post subject: Re: object messages |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
skrv wrote: |
application is trying to send reply messages as "object messages" and getting below errors in their application logs (2085). No errors in MQ logs.
any help? |
Well....
skrv wrote: |
reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME'). |
..that's a clue.
Object messages, text messages, mixed format messages, none of them work when the queue they're being written to ('ABC.FILE.INQ.AWS.REPLY') doesn't exist. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
skrv |
Posted: Thu Jul 02, 2015 9:48 am Post subject: |
|
|
Centurion
Joined: 26 Oct 2012 Posts: 118
|
queue exists on a different server/qmgr.
application sends a fully qualified reply to the above server after getting the reply to qmgr/reply to queue details from the header in the original request message.
the setup is working when application sending "text messages" but when replying application is trying to send "object messages", they are getting this error. |
|
Back to top |
|
 |
skrv |
Posted: Thu Jul 02, 2015 9:48 am Post subject: |
|
|
Centurion
Joined: 26 Oct 2012 Posts: 118
|
queue exists on a different server/qmgr.
application sends a fully qualified reply to the above server after getting the reply to qmgr/reply to queue details from the header in the original request message.
the setup is working when application sending "text messages" but when replying application is trying to send "object messages", they are getting this error. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jul 02, 2015 10:20 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
skrv wrote: |
queue exists on a different server/qmgr.
application sends a fully qualified reply to the above server after getting the reply to qmgr/reply to queue details from the header in the original request message.
the setup is working when application sending "text messages" but when replying application is trying to send "object messages", they are getting this error. |
So no JMSReply to
The JNDI for the queue does not specify the different qmgr where there is an instance of the queue... Tell us, how should the qmgr you are connected to know about this queue?
And just for the record, this has nothing to do with TextMessage vs ObjectMessage but all to do about JNDI queue definition or definition of a JMSReplyTo...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
skrv |
Posted: Thu Jul 02, 2015 10:35 am Post subject: |
|
|
Centurion
Joined: 26 Oct 2012 Posts: 118
|
I think application team mentioning the request queue manager name in the JNDI queue definition, so that replies will go to that queue manager.
so you mean, the application sending the request should specify "JMSReply" to queue name while sending the request so that the replying application sends it to that queue? |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 02, 2015 10:48 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
skrv wrote: |
application sends a fully qualified reply to the above server after getting the reply to qmgr/reply to queue details from the header in the original request message.
the setup is working when application sending "text messages" but when replying application is trying to send "object messages", they are getting this error. |
So there are 2 options here:
- when they send a text message it's a fully qualified name (including the name of the remote queue manager which hosts the reply queue) but when they send an object message they omit the queue manager information so the queue is searched for locally (and not found)
- when they send an object message t's a fully qualified name (including the name of the remote queue manager which hosts the reply queue) but the application processing object messages doesn't honour the reply details in the header and always tries to use a local queue (which isn't found)
As my worthy associate points out, this is nothing to do with message content (text v object) and everything to do with application code & MQ topology. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
skrv |
Posted: Thu Jul 02, 2015 10:54 am Post subject: |
|
|
Centurion
Joined: 26 Oct 2012 Posts: 118
|
so what will be the best thing to do for us? |
|
Back to top |
|
 |
skrv |
Posted: Thu Jul 02, 2015 11:09 am Post subject: |
|
|
Centurion
Joined: 26 Oct 2012 Posts: 118
|
so while sending "object message" it always omits the reply to qmgr details by design or application is configured wrongly? |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 02, 2015 11:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
skrv wrote: |
so while sending "object message" it always omits the reply to qmgr details by design or application is configured wrongly? |
How can we know what the design is?
It can be assumed that, if the sending application sends a reply to qmgr with a text message, the intent is that there should be one with an object message. Which means either they've failed in their intent on the sending side or they have not. Likewise, since the replying application is using the reply to qmgr in the header for text messages, it can be assumed that it should be for object messages, but may not be.
This is basic application debugging and nothing to do with MQ. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 02, 2015 11:36 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
skrv wrote: |
so what will be the best thing to do for us? |
Debug your applications.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jul 02, 2015 11:41 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
skrv wrote: |
so while sending "object message" it always omits the reply to qmgr details by design or application is configured wrongly? |
It's the right question to ask. But we cannot reply here. You need to talk to the architects and developers so that you know what should have been happening.
Then you need to check the JNDI to make sure the remote queue manager is there, and finally to the application developers to make sure they respect the conventions and did not float their own reply to queue in a properties file for instance...
so the syntax would be for the URI:
Code: |
"queue://<QMGRNAME>/<QNAME>?opt1=val1&optn=valn" |
Now if the queue manager name is not specified when the call session.createQueue(String myqueueURI) is made, the queue manager will default to the queue manager you are connected to. Exceptionally it might become a clustered instance, but for that I have had better chance with a cluster alias then with a blank queue manager name.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 02, 2015 11:45 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
fjb_saper wrote: |
You need to talk to the architects and developers so that you know what should have been happening. |
fjb_saper wrote: |
Then you need to check the JNDI to make sure the remote queue manager is there, and finally to the application developers to make sure they respect the conventions and did not float their own reply to queue in a properties file for instance... |
Or as I called it above, "debugging". I'll accept "problem determination" as a synonym  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|