Author |
Message
|
sravan |
Posted: Fri May 18, 2012 6:42 am Post subject: design for roll back. |
|
|
Centurion
Joined: 02 Apr 2010 Posts: 104 Location: Charlotte
|
We have an incoming XML request as REST based post request.
The request xml can have multiple groups in it.
each group can generate upto 8 mainframe mq request messages.
If there is any exception in any we have to roll back writing to the mq queue and send a notification.
Can you please suggest the possible design for it. _________________ skr_wmb |
|
Back to top |
|
 |
Vitor |
Posted: Fri May 18, 2012 6:47 am Post subject: Re: design for roll back. |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sravan wrote: |
Can you please suggest the possible design for it. |
Put the WMQ work under syncpoint & wire up exception handling to send a notification?
Which is so simplistic it can't possibly be the answer to any question you intended to ask. Perhaps if you rephrased it, adding subtitles for the hard of understanding? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri May 18, 2012 6:52 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
I think he wants to ask: does the ESB automatically compensate the successful seven mainframe transactions if the eighth one fails? The answer is no, you must issue compensating transactions to backout the seven that worked. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri May 18, 2012 6:55 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
I don't dare mention that compensation is covered in day two of the required training class. If I did, Esa would explode ! Vitor says: Training !  _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Vitor |
Posted: Fri May 18, 2012 6:56 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
It was the phrase "roll back writing to the queue" that confused me.
I stand by my assertion it's better not to send any messages in the group than attempt to compensate the sent messages in the group. But I accept both methods are workable & widely used. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Fri May 18, 2012 6:57 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
lancelotlinc wrote: |
I don't dare mention that compensation is covered in day two of the required training class. |
Is it? That's an interesting addition.
Diffidently I point out that no-one seems to require the training except you. A huge number of employers consider it highly optional...... _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sravan |
Posted: Fri May 18, 2012 7:01 am Post subject: |
|
|
Centurion
Joined: 02 Apr 2010 Posts: 104 Location: Charlotte
|
sorry for not phrasing the question correctly.
As lancelotlinc mentioned I have to roll back the seven sucessful messages if the eight messages failed for some reason within a group. _________________ skr_wmb |
|
Back to top |
|
 |
Vitor |
Posted: Fri May 18, 2012 7:16 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sravan wrote: |
As lancelotlinc mentioned I have to roll back the seven sucessful messages if the eight messages failed for some reason within a group. |
Then you can either:
a) send all 8 as a unit of work as I've suggested
b) send compensating messages as my associate suggests
Both are valid, one or the other may be better for you depending on your individual requirements. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri May 18, 2012 7:33 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Vitor wrote: |
sravan wrote: |
As lancelotlinc mentioned I have to roll back the seven sucessful messages if the eight messages failed for some reason within a group. |
Then you can either:
a) send all 8 as a unit of work as I've suggested
b) send compensating messages as my associate suggests
Both are valid, one or the other may be better for you depending on your individual requirements. |
a) send all 8 as a unit of work as I've suggested: means a single MQ message with 8 steps, mainframe completing all 8 at once or not at all. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Vitor |
Posted: Fri May 18, 2012 7:36 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
lancelotlinc wrote: |
a) send all 8 as a unit of work as I've suggested: means a single MQ message with 8 steps, mainframe completing all 8 at once or not at all. |
I was thinking of 8 messages rather than a single message with 8 steps.
But yes, it means completing all 8 or not at all. The alternative is to complete all 8 then complete 7 compensations. Whichever is preferable depends on the individual requirements. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri May 18, 2012 7:39 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
I'm confused as to what kind of error needs to cause a roll-back.
Is it an error on processing the messages on the mainframe side? Because that's a completely ridiculous idea if it is. You won't be able to accomplish that, because you can't commit the messages to the mainframe before you get a response from the mainframe and the mainframe can't create a response until after you've committed the messages.
Is it an error in the format of the messages on the input side? If so, there's no reason to send the message on to the mainframe in the first place. Do all the necessary validation on all 8 pieces up front. If any fail, don't send any messages. If all succeed, send all 8 messages. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri May 18, 2012 7:40 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Common errors I have seen are foreign key violations. Thats why I suggested one MQ message with 8 steps. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
mqjeff |
Posted: Fri May 18, 2012 7:44 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
lancelotlinc wrote: |
Common errors I have seen are foreign key violations. Thats why I suggested one MQ message with 8 steps. |
That doesn't change the nature of the problem.
If it's an error that can only be detected on the mainframe side - like a foreign key violation - then the rollback of the request message CAN NOT be performed. Regardless of whether there's one or many request messages.
You can certain rollback the input message and retry it. But you can't roll back the messages that go to the mainframe from the fan out. Because they have to be committed before they can be processed to determine if there's an error with them. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri May 18, 2012 7:47 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
I agree. Thats why, if you fan out, you need compensating transactions to reverse the successful updates. ESB does not do this automatically. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
sravan |
Posted: Fri May 18, 2012 8:06 am Post subject: |
|
|
Centurion
Joined: 02 Apr 2010 Posts: 104 Location: Charlotte
|
It is not errors on mainframe.
I have to send upto 8 messages from a single XML request into a mainframe request queue.
If one of the eight messages fails to get build sucessfully(may be due to mapping issue from xml to mainframe message) or some other issue in message broker,I should not send the messages to the request queue.
There is no response in this service from mainframe at all and also we do not account for any mainframe system errors once the messages are sucessfully sent to the request queue. _________________ skr_wmb |
|
Back to top |
|
 |
|