ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » Performance problems with selectors in WMQv7

Post new topic  Reply to topic
 Performance problems with selectors in WMQv7 « View previous topic :: View next topic » 
Author Message
4integration
PostPosted: Fri Nov 13, 2009 4:24 am    Post subject: Reply with quote

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
View user's profile Send private message
manicminer
PostPosted: Fri Nov 13, 2009 6:11 am    Post subject: Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Fri Nov 13, 2009 8:09 am    Post subject: Reply with quote

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
View user's profile Send private message
4integration
PostPosted: Fri Nov 13, 2009 9:28 am    Post subject: Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Fri Nov 13, 2009 10:08 am    Post subject: Reply with quote

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
View user's profile Send private message
fjb_saper
PostPosted: Sat Nov 14, 2009 5:44 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
4integration
PostPosted: Sun Nov 15, 2009 12:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
fjb_saper
PostPosted: Sun Nov 15, 2009 2:42 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » Performance problems with selectors in WMQv7
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.