Author |
Message
|
manoj |
Posted: Fri May 07, 2004 1:15 pm Post subject: [SOLVED]UPES activity termination and multiple queues (compe |
|
|
 Master
Joined: 30 Jan 2002 Posts: 237 Location: Virgina
|
I am curious to know what people do in the following scenario. i am pretty sure different people will have different ideas.
When a UPES activity is terminated workflow puts a termination message in to the UPESQ. But if that UPESQ is on multiple servers (clustered env.) then it's quite possible that the application gets a chance to process the "Termination" message before processing the "Activity Impl Invoke" message.
Compensating a terminated activity is possible only if the above order was reverse. _________________ -manoj
Last edited by manoj on Wed May 12, 2004 10:00 am; edited 1 time in total |
|
Back to top |
|
 |
jmac |
Posted: Fri May 07, 2004 2:14 pm Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
What I have done is ignore these messages.
However, it would be possible to process them, but you would have to take care of correlating the incoming programTerminate or Expire message with the thread running the corresponding activityInvoke. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
manoj |
Posted: Fri May 07, 2004 3:43 pm Post subject: |
|
|
 Master
Joined: 30 Jan 2002 Posts: 237 Location: Virgina
|
John,
The problem i have is "program terminate" message coming first and "activity impl invoke" message second. this is possible when you have the UPES Queue defined on multiple mqservers.
Even if i try to correlate there will still be a timing issue.
Is it possible to use any MQseries or MQSI feature ?
Any thoughts ?
thanks _________________ -manoj |
|
Back to top |
|
 |
jmac |
Posted: Fri May 07, 2004 3:57 pm Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
manoj wrote: |
Even if i try to correlate there will still be a timing issue.
|
How so... maybe I just don't understand. Which ever message comes in first does not matter, what matters is that they will both have the correlation ID... SO if the Program Terminate comes in first, you have some table (or some such method) that is keyed by the correlation ID and you indicate that you have received a Program Terminate, and you have your "invoke" action check the table prior to starting to see if the Terminate is there. Would that not solve the problem? _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
manoj |
Posted: Mon May 10, 2004 8:11 am Post subject: |
|
|
 Master
Joined: 30 Jan 2002 Posts: 237 Location: Virgina
|
John, Storing the Correlation ID in a database and check for it before message processing will work but this is not 100% proof..
I have 4 machines for UPES processing with 50 application threads in each of these machines (50 * 4). Q1 is defined on all these 4 machines and the listener applications processing messages from Q1.
When the time difference between processing "Terminate" and "Invoke" is too small the application might not get a chance to compensate (this is very much true when you have a large throughput system/application).
The other thing to note that the "Invoke" message processing time may run in to a minute or so (at times). So checking the correlation ID at the start of processing "Invoke" message is not safe.
i couldn't find a standard way of doing this. _________________ -manoj |
|
Back to top |
|
 |
jmac |
Posted: Mon May 10, 2004 8:34 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
Manoj:
OK, now I get what you are saying.... If the terminate comes in too close to the invoke you might actually process the message before the terminate is seen. I really don't think there is a way around this situation. I guess you could create a model to deal with this, but I don't know what your process is doing. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
manoj |
Posted: Wed May 12, 2004 9:57 am Post subject: [SOLVED] |
|
|
 Master
Joined: 30 Jan 2002 Posts: 237 Location: Virgina
|
i guess i need to workout a model for this
thanks _________________ -manoj |
|
Back to top |
|
 |
|