|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Message ordering |
« View previous topic :: View next topic » |
Author |
Message
|
royr |
Posted: Wed Aug 29, 2001 3:05 am Post subject: |
|
|
 Acolyte
Joined: 30 Jun 2001 Posts: 65 Location: Israel
|
bduncan said in the MQSeries FAQ folder:
Quote: |
In addition to the reasons you listed, we can also add network architecture as a possibility. If you are using MQSeries over TCP/IP (which most of us are), there is no guarantee that the packets representing the messages will get to the destination in the same order they were dispatched. The chances of this are very VERY slim indeed... The only way you might see this is if you have the MQSeries batch size set to something very small, and you are dealing with tiny messages, say, sub 1Kb.....
|
The order of the packets is irrelevant to message ordering. There at least TWO layers of transport between the actual messages and the network packets:
The first layer is the TCP layer, which takes care of ordering packets so that the user will get a steady, ordered bytestream.
When two consecutive buffers are sent on a single TCP socket the receiver always get them in the right order.
This is untrue for UDP channels (how many of us actually use them?). But even for UDP, you still have a second layer, which is MQ's own channel sequence numbers. These are designed to sync the receiver with the sender so that no messages are lost and the right order is kept. Even if you deliberately issue a RESET CHANNEL command you could only skip messages, not change the ordering.
|
|
Back to top |
|
 |
Pierre-Yves Lesage |
Posted: Wed Aug 29, 2001 6:38 am Post subject: |
|
|
Novice
Joined: 21 Aug 2001 Posts: 17 Location: London, UK
|
As far as I am concerned, I always received messages sent through a channel in the right order, and the priority was also preserved as well.
Pierre-Yves
[ This Message was edited by: Pierre-Yves Lesage on 2001-08-29 07:44 ] |
|
Back to top |
|
 |
bduncan |
Posted: Wed Aug 29, 2001 12:12 pm Post subject: |
|
|
Padawan
Joined: 11 Apr 2001 Posts: 1554 Location: Silicon Valley
|
I was under the impression that the sequence number simply kept track of the number of messages that had passed across a given channel, i.e., sequence number doesn't force ordering. If I send message A followed by message B, and the sequence number starts at 1, the sender side will set its sequence number to 3, and as the receiver gets each message it will set its sequence number to 2, then 3. While the sequence numbers are out of sync, the channels are technically in-doubt, because the receiver has not yet informed the sender that it has received the batch that was just sent. But notice that nowhere does the fact that message A was sent before message B have anything to do with how the sequence number is set on each side. They simply count how many messages have flowed...
_________________ Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator |
|
Back to top |
|
 |
bduncan |
Posted: Wed Aug 29, 2001 12:22 pm Post subject: |
|
|
Padawan
Joined: 11 Apr 2001 Posts: 1554 Location: Silicon Valley
|
royr,
I saw your response to my posting in the FAQ forum, and I agree with you that discussions should reside outside of that. However, I thought I was posting something that simply expanded on what you had said, nowhere did I think that it was disagreeing with anything you had mentioned. Now that it seems there is disagreement on this issue, we should discuss it in the appropriate place. In my defense, I had discussed this with other MQSeries people in the past, and we seemed to agree that this was a possibility, but I am ready to be corrected if this not the case...
_________________ Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator |
|
Back to top |
|
 |
royr |
Posted: Thu Aug 30, 2001 3:26 am Post subject: |
|
|
 Acolyte
Joined: 30 Jun 2001 Posts: 65 Location: Israel
|
I recall a debate on the issue of channel sequence numbers, and there was something about the sequencing being part of the protocol, meaning that every message being sent by a channel has a sequence number attached to it. Unfortunately I can't recall any details about it. If you have access to a "sniffer" and some time, you can probably determine that yourself.
Anyway, even if the channel's protocol does not attach the sequence number to the sent messages, the TCP layer takes care of the order of the buffers (=messages) being sent.
So this problem may only happen with channels that use the UDP protocol.
|
|
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
|
|
|
|