ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Interchange Server + Adapters » Compensation Service Call (Create - Delete)

Post new topic  Reply to topic
 Compensation Service Call (Create - Delete) « View previous topic :: View next topic » 
Author Message
fponcet
PostPosted: Fri Nov 18, 2005 5:55 am    Post subject: Compensation Service Call (Create - Delete) Reply with quote

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
View user's profile Send private message
jsware
PostPosted: Mon Nov 21, 2005 5:15 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Interchange Server + Adapters » Compensation Service Call (Create - Delete)
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.