|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
|
|
Segments and logical messages with MQOO_BIND_ON_OPEN |
« View previous topic :: View next topic » |
Author |
Message
|
royr |
Posted: Sun Aug 05, 2001 12:37 am Post subject: |
|
|
Acolyte
Joined: 30 Jun 2001 Posts: 65 Location: Israel
|
I'm very much bothered by the fact that if you're using clusters for workload balancing (i.e, several instances of a local queue on different queue managers), you can't use segmentation or logical messages. This is from the Queue Manager Clusters manual:
Quote: |
Note: Do not specify MQOO_BIND_NOT_FIXED and MQMF_SEGMENTATION_ALLOWED at the same time. If you do, the segments of your message may all be delivered to different queue managers, scattered throughout the cluster.
|
If you're using workload balancing you'll simply have to wave one of the most important features that version 5 introduced.
Why does clustering always seems like an add-on to MQSeries rather that a full feature?
|
|
Back to top |
|
|
bduncan |
Posted: Sun Aug 05, 2001 10:24 pm Post subject: |
|
|
Padawan
Joined: 11 Apr 2001 Posts: 1554 Location: Silicon Valley
|
Not necessarily. You can still use workload balancing with groups and segmented messages, it's just that you'll have to close and reopen the queue. On the second open, you'll (possibly) get a different queue instance. Of course, this isn't very efficient. I think IBM has been forced to make this concession; let's assume that MQSeries has the logic to use the same instance of a queue when dealing with a group of messages, but will workload balance between groups, and now consider the following scenario:
1. I start putting some messages that are part of a group to queue A (which has multiple instances)
2. Before finishing the first group, I start putting a second group of messages to queue A, and this time it happens to resolve to a different instance of it.
3. When I go to finish putting the first group of messages, MQSeries must do one of two things:
a. It has mantained connections to both instances of A all this time and can switch to the original one now that I am finishing up the first group of messages.
b. It keeps track of what instance of A each group of messages is associated with an must reconnect with the original queue instance.
Now multiply the complexity of my little program by a few orders of magnitude and you can see how all this added complexity will slow the system down. By forcing you to bypass the workload balancing, it means that MQSeries doesn't have to associate groups of messages with a single instance of the queue. There is no state information.
_________________ Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator |
|
Back to top |
|
|
royr |
Posted: Mon Aug 06, 2001 1:35 am Post subject: |
|
|
Acolyte
Joined: 30 Jun 2001 Posts: 65 Location: Israel
|
It's only that complicated if the user sends multiple groups "interlaced" (which I suppose rarely happens and can usually be avoided with some better design).
To simplify things, IBM could support only puts in logical order, specifying MQPMO_LOGICAL_ORDER. Most users only use groups and segments this way anyway.
You could write a workload exit to do this quite easily, but I think IBM should have done this for us. |
|
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
|
|
|
|