|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ Output to JMS Client |
« View previous topic :: View next topic » |
Author |
Message
|
jayZ |
Posted: Tue Sep 17, 2013 7:04 am Post subject: MQ Output to JMS Client |
|
|
Acolyte
Joined: 03 Jun 2008 Posts: 71
|
Our organization uses a 3rd party tool to handle audit and exception handling for every integration. To do that, we have a set of message flows that integrate with the 3rd party tool. As you'd expect, we see a large volume of messages of varying size through that message flow, approximately 23 million per day.
Recently, the flow that processes those audits has been identified as one that uses a more CPU than it should, based on an assessment from our admin team. Using QPasa, an analysis of that flow determined that, contrary to what one might expect, it is the JMSOutput node that is consuming most of the CPU cycles in that message flow.
Given that info, I have been searching for a way to use an MQOutput node, which uses much less CPU, to perform the same task. Ultimately, this flow just puts to a WebSphere MQ Queue, where a JMS Client retreives it. I was under the assumption that, if I get the headers right, it should be possible for an MQ Client (in this case the Output node) to post a JMS Message. The infocenter documentation on MQ to JMS mapping is pretty good, plus there are the transform nodes that do all of that for you. The problem is, no matter how I map the headers (MQJMSTransform with an MQOuput, JMSMQTransform with an MQOutput), the client cannot consume the message.
1) Is it even possible for a JMS Client to consume a message put with an MQOutput? 2) Is there performance tuning on the JMSOutput that isn't obvious from the infocenter?
I've poured through the infocenter and know that the JMSOutput was created to put messages for JMS Clients, but need to know for a fact it won't work with the MQOutput.
I think I've included things I've tried in this long winded expanation, but would be happy to list them if needed to avoid any of the inevitable snark coming my way. The consuming app isn't giving me a ton to go on, but I really just need to know the answers to the questions in bold.
--Message Broker 7, AIX
Any help would be much appreciated. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Sep 17, 2013 7:08 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Yes, you can use MQOutput to put a JMS message, as long as you code the proper headers. JMSOutput has the advantage of doing some of this header work for you.
Performance is not an issue here. Both output nodes should be performant. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
jayZ |
Posted: Tue Sep 17, 2013 7:14 am Post subject: |
|
|
Acolyte
Joined: 03 Jun 2008 Posts: 71
|
Thanks, I'll keep plugging away at getting the headers right. I thought that was the case, but being the 3rd person thrown at it, didn't want to bang my head against the wall.
Under 99% of our other scenarios, both nodes perform perfectly for our solution. What we've seen, and had confirmed by IBM, is that the JMSOutput node does consume more than the MQOutput. Apparently, under this much load that extra consumption gets magnified. |
|
Back to top |
|
 |
jayZ |
Posted: Thu Oct 24, 2013 7:44 am Post subject: |
|
|
Acolyte
Joined: 03 Jun 2008 Posts: 71
|
I think I have found a mistake in the documentation, but wanted to run it by the forum in case I mistunderstood something. Specifically, I am referring to the JMSType syntax. According to the infocenter article 'Specifying namespaces in the Message Type property', the syntax for the JMS Type is
Quote: |
{http://www.ibm.com/space}:name |
. However, when the MQJMSTransform translates that field, it escapes all of the forward slashes with @fsl@. That same field should read
Quote: |
{http:@fsl@@fsl@www.ibm.com@fsl@space}:name
|
If not formatted like that, the consuming JMS client fails.
My question is, if I am manually creating my JMS header, should I just use a REPLACE function to escape those characters or is there a more appropriate way? I am unfamiliar with that escape syntax and don't know if just the one replace will work in all scenarios. |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Oct 25, 2013 4:39 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Have you tried instead, having a simple flow consuming a JMSMessage from an MQInput node and checking out what the headers look like (i.e. RFH header?) Unless your JMS app does something "funny", generating the right RFH header should be enough...
And if you don't use properties, you could just send an MQ message without RFH header... but with the right MQFMT_<xxx> constant in the format field of the MQMD...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|