|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Compensation Service Call (Create - Delete) |
« View previous topic :: View next topic » |
Author |
Message
|
fponcet |
Posted: Fri Nov 18, 2005 5:55 am Post subject: Compensation Service Call (Create - Delete) |
|
|
Acolyte
Joined: 20 Oct 2005 Posts: 55
|
Hello,
This is the way one external application works:
- to create one Client, you send the operation (Create) and client data (name, address, telephone, ...) to the application and it returns the ClientID
- to delete one Client, you send the operation (Delete) and ClientID
In ICS:
- regular sercvice call: Client.create
- compensation service call: Client.delete
But, when ICS is doing a compensation, it is using the original object (with the data and without the ClientID) to call the compensation service call, which does not make sense because the delete operation requires the ClientID.
It looks like ICS makes a copy of the object in the moment you call the regular service call, when you still do not know the ClientID.
Any idea to solve this problem?
Thanks in advance! |
|
Back to top |
|
 |
jsware |
Posted: Mon Nov 21, 2005 5:15 am Post subject: |
|
|
 Chevalier
Joined: 17 May 2001 Posts: 455
|
I have not used ICS or adapters, but I guess this is a common problem for compensating transactions. It might help to try and think how you would do this manually.
You ask the external system (in any manner you wish lets say via a web based form on your intranet) to create the client, giving them the details you have. In an extreme case, you don't have a response from the system (e.g. you get a timeout) so you don't know whether it was actually created or not.
Now how to you manually identify any client that was created? Do you have something else in your original request (that's all you've got to go on) that can identify a client that was created? You might be able to use that if the external system supports deleting clients based on this information (or you can change it to do this).
If you're stuck with only deleting by the client ID, can you perform a search of clients that match your original request and if you get one back, can you use that result's client ID to facilitate the delete? Bear in mind your search might return a "match" which wasn't created by your failed create - at all depends on how unique your original request details are.
Once you've worked out how to do it manually, you can then work this into ICS.
HTH _________________ Regards
John
The pain of low quaility far outlasts the joy of low price. |
|
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
|
|
|
|