Author |
Message
|
4integration |
Posted: Fri Nov 13, 2009 4:24 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Hi,
Having performance problems with selectors together with grouped messages.
Environment:
- WMQ Client 6.0.2.7
- WMQ Server 6.0.2.7
- XMS 1.2.7.0 (+ an iFix)
Getting the last message in the group by
Code: |
JMS_IBM_Last_Msg_In_Group=TRUE |
to get the group id and the number of messages, then getting each message with (increasing JMSXGroupSeq)
Code: |
JMSXGroupID='ID:fdcac39515de4adcb31cb4192461229a0000000000000000' AND JMSXGroupSeq=1
|
and concatenate them.
When the receiver is a bit away (as I am currently on a VPN connection) _each_ message takes ~3 sec to retreive.
- Would it help to have WMQ Client 7.0.1 (and XMS v2.0) only or will it also require WMQ Server 7.x as well? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
manicminer |
Posted: Fri Nov 13, 2009 6:11 am Post subject: |
|
|
 Disciple
Joined: 11 Jul 2007 Posts: 177
|
4integration wrote: |
Hi,
Having performance problems with selectors together with grouped messages.
Environment:
- WMQ Client 6.0.2.7
- WMQ Server 6.0.2.7
- XMS 1.2.7.0 (+ an iFix)
Getting the last message in the group by
Code: |
JMS_IBM_Last_Msg_In_Group=TRUE |
to get the group id and the number of messages, then getting each message with (increasing JMSXGroupSeq)
Code: |
JMSXGroupID='ID:fdcac39515de4adcb31cb4192461229a0000000000000000' AND JMSXGroupSeq=1
|
and concatenate them.
When the receiver is a bit away (as I am currently on a VPN connection) _each_ message takes ~3 sec to retreive.
- Would it help to have WMQ Client 7.0.1 (and XMS v2.0) only or will it also require WMQ Server 7.x as well? |
might be best for a mod to split this into a new thread rather than resurrecting this old one...
2 things:
1) you are on VPN, how big are the messages, is in fact the 3 second download reasonable given the quantity of data you are transfering?
2) I don't know if group sequence is one of the special properties that the queue manager can easily select on in V6. If it isn't then you will be downloading each message in turn, checking the data then throwing it away if it doesn't match. This coupled with a slow link and being on a vpn might again explain the problem.
In answer to your V7 question, the performance improvement for selectors require a v7 queue manager and client. _________________ Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Nov 13, 2009 8:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
manicminer wrote: |
might be best for a mod to split this into a new thread rather than resurrecting this old one...
|
Split from this as the problem here is specific to the new WMQv7 features. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
4integration |
Posted: Fri Nov 13, 2009 9:28 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
manicminer wrote: |
4integration wrote: |
Hi,
Having performance problems with selectors together with grouped messages.
Environment:
- WMQ Client 6.0.2.7
- WMQ Server 6.0.2.7
- XMS 1.2.7.0 (+ an iFix)
Getting the last message in the group by
Code: |
JMS_IBM_Last_Msg_In_Group=TRUE |
to get the group id and the number of messages, then getting each message with (increasing JMSXGroupSeq)
Code: |
JMSXGroupID='ID:fdcac39515de4adcb31cb4192461229a0000000000000000' AND JMSXGroupSeq=1
|
and concatenate them.
When the receiver is a bit away (as I am currently on a VPN connection) _each_ message takes ~3 sec to retreive.
- Would it help to have WMQ Client 7.0.1 (and XMS v2.0) only or will it also require WMQ Server 7.x as well? |
might be best for a mod to split this into a new thread rather than resurrecting this old one...
2 things:
1) you are on VPN, how big are the messages, is in fact the 3 second download reasonable given the quantity of data you are transfering?
2) I don't know if group sequence is one of the special properties that the queue manager can easily select on in V6. If it isn't then you will be downloading each message in turn, checking the data then throwing it away if it doesn't match. This coupled with a slow link and being on a vpn might again explain the problem.
In answer to your V7 question, the performance improvement for selectors require a v7 queue manager and client. |
1) The messages I used for test is very small ~300 bytes (will be larger in real cases)
2) Ok, might be better
Another thing I thinking of... We have a wrapper API using XMS under the hood. Would it be better if I make special implementation using MQ Client API instead of XMS...I mean if the issue is related to XMS/JMS or WMQ Client? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
Vitor |
Posted: Fri Nov 13, 2009 10:08 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
4integration wrote: |
I mean if the issue is related to XMS/JMS or WMQ Client? |
IMHO it's a client question rather than a specific XMS one here. I'll stand correction from anyone who has better information on how group id is matched.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Nov 14, 2009 5:44 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Vitor wrote: |
4integration wrote: |
I mean if the issue is related to XMS/JMS or WMQ Client? |
IMHO it's a client question rather than a specific XMS one here. I'll stand correction from anyone who has better information on how group id is matched.  |
Group ID is easily matched using the provider form. However I don't know about last message in group.
Check if you can set one of the flags in XMS for "all messages in group available" and "Logical order".
You could then get the first message and retrieve all the other messages in the group.
This might however have to use specific IBM oriented coding and not be available over generic JMS/XMS.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
4integration |
Posted: Sun Nov 15, 2009 12:04 pm Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
The reason of my thought that it could be JMS/XMS oriented problem is the writing on this page http://www-01.ibm.com/software/integration/wmq/v7/ saying:
"With WebSphere MQ, Version 7.0, typical JMS selector scenarios can yield throughput increases of up to 250%*. WebSphere MQ, Version 7.0 optimizes JMS message listeners by eliminating polling and using asynchronous message delivery to monitor destinations. In this release, JMS message listener throughput can be increased by up to 45%* with improvements in latency."
It's a lot about JMS....what about native MQ .NET and performance?!
So my thought is if it's worth doing the equivalent as below in .NET (which also corresponds what fjp_saper says):
Code: |
MQQueueManager queueManager = new MQQueueManager("QM_host");
MQQueue queue = queueManager.accessQueue("default", MQC.MQOO_INPUT_AS_Q_DEF);
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQC.MQGMO_LOGICAL_ORDER | MQC.MQGMO_ALL_MSGS_AVAILABLE;
gmo.matchOptions = MQC.MQMO_NONE;
MQMessage message = new MQMessage();
do {
queue.get(message, gmo);
int dataLength = retrievedMessage.getDataLength();
System.out.println(message.readStringOfCharLength(dataLength));
gmo.matchOptions = MQC.MQMO_MATCH_GROUP_ID;
} while (gmo.groupStatus != MQC.MQGS_LAST_MSG_IN_GROUP);
queue.close();
queueManager.disconnect(); |
_________________ Best regards
4 Integration |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Nov 15, 2009 2:42 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Keep in mind that the increase promised with V7 will only happen if the MQServer is at V7 and the client is at V7 to take advantage of the new features. So if you use a V7 client to attach to a V6 Server you will still run into the old known limitations for selectors.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|