Author |
Message
|
mikedavis |
Posted: Wed Apr 27, 2005 6:02 am Post subject: Heartbeat |
|
|
Newbie
Joined: 11 Apr 2005 Posts: 8
|
I've had an issue where a channel is out of sequence, but one end is not aware until the other end tries to send a message (then the error is generated)
Will using the heartbeat command generate an out of sequence error if there is one, or is there a better way to test for this?
Also, all channels have the discint(0) set... probably not a good thing
Thanks |
|
Back to top |
|
 |
kevinf2349 |
Posted: Wed Apr 27, 2005 8:03 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Quote: |
Will using the heartbeat command generate an out of sequence error if there is one, or is there a better way to test for this? |
I don't think that Heartbeat effects the sequence numbers.
Quote: |
Also, all channels have the discint(0) set... probably not a good thing |
That depends who you ask. Personally I think it is a bad thing for several reasons, not least of which is the one effecting you right now i.e If a network error occurs sequencing issues can arise. All of our channels are triggered and we have a disconnect interval set of around about 10 minutes. If an application can't wait the extra second or two that triggering costs you then I would argue that it shouldn't be using MQ. MQ has been designed as an asynchronous methodology.
I believe that MQ is a victim of it's own success in terms of ease of use and reliability so people think that it can be used for synchronous communication without much design thought....That leads to more 'issues' here than I care to mention.  |
|
Back to top |
|
 |
csmith28 |
Posted: Wed Apr 27, 2005 8:08 am Post subject: Re: Heartbeat |
|
|
 Grand Master
Joined: 15 Jul 2003 Posts: 1196 Location: Arizona
|
mikedavis wrote: |
I've had an issue where a channel is out of sequence, but one end is not aware until the other end tries to send a message (then the error is generated)
Will using the heartbeat command generate an out of sequence error if there is one, or is there a better way to test for this? |
No.
Quote: |
Also, all channels have the discint(0) set... probably not a good thing. |
Neither good nor bad especially if you want the channels to always be up but if there is an interuption in connectivity it is possible that the Receiver MCA is commiting a message that the Sender MCA has backed out upon recovery of he connection causing the mis-match in SEQNO's. _________________ Yes, I am an agent of Satan but my duties are largely ceremonial. |
|
Back to top |
|
 |
mikedavis |
Posted: Wed Apr 27, 2005 8:56 am Post subject: |
|
|
Newbie
Joined: 11 Apr 2005 Posts: 8
|
So I guess sending a 'dummy' message every 10 minutes or so is probably the best way to 'trap' out of sequence errors |
|
Back to top |
|
 |
csmith28 |
Posted: Wed Apr 27, 2005 9:19 am Post subject: |
|
|
 Grand Master
Joined: 15 Jul 2003 Posts: 1196 Location: Arizona
|
Not really.
If the Sender/Receiver MCA's stay connected you shouldn't have a problem. If something interrupts the connection when there are no messages in flight, you shouldn't have a problem.
In most instances, it is only when the connection is interrupted while message or messages are in flight that the CURSEQNO's can get out of sync. Even then it only happens if the connection is interrupted at a certain point in the MCA's communications when the Sending MCA's is waiting for confirmation from the receiving MCA that the messages have been commited.
At times like this the Receiver increments it's CURSEQNO and sends it's confirmation back to the Sender but the Sending MCA never recieves it. So when the Sender starts up after the connection failure during it's recovery process it is under the impression that it needs to send that message or messages again because it never got the confirmation.
So sending a test message over the channel every 10 mins prolly wouldn't do you much good. _________________ Yes, I am an agent of Satan but my duties are largely ceremonial.
Last edited by csmith28 on Wed Apr 27, 2005 9:23 am; edited 1 time in total |
|
Back to top |
|
 |
mikedavis |
Posted: Wed Apr 27, 2005 9:23 am Post subject: |
|
|
Newbie
Joined: 11 Apr 2005 Posts: 8
|
|
Back to top |
|
 |
GHTRIC |
Posted: Wed May 04, 2005 2:09 pm Post subject: |
|
|
Newbie
Joined: 04 May 2005 Posts: 1 Location: FRANCE
|
Another case when you get an out of sequence error: one side of the channel is redefined not the other (should not occur in a "well controlled" production system).
Out of sequence is definitely not a usual error; though we managed high MQ messages rates on mission critical applications (mainly on Z-OS systems) we never developped anything to trap this condition.
Comment on sync/async applications: yes MQ is an async mechanism; however async. does not mean slow at all; MQ is quite compatible with real time applications ! we successfullly operated a subsecond response time application using millions messages a day (client/server application design).
What is impossible using async.: committing a DB update at both ends of the channel (example: confirm an order at one end and decrement stock level at other end really at the same time; both done or none). |
|
Back to top |
|
 |
|