Author |
Message
|
mbuserpras |
Posted: Thu Mar 11, 2010 2:28 am Post subject: Using Transaction in Webservices |
|
|
Newbie
Joined: 10 Mar 2010 Posts: 3
|
Hi Folks
We are using WMB and WPS in our enterprise. From WMB, we are calling a Web Service exposed by WPS. Internally, the WPS implementation calls Database and Amdocs APIs. We are using SOAP/http to invoke the WPS Webservice.
I do not have any control on the architecture. I cannot avoid calling WPS from WMB. I have been mandated to use both of these.
Consider this Situation
1) WMB makes the Webservice call by soap/http. WPS webservice does its internal processing. Meanwhile, the WMB Webservice call times out. But WPS still continues with the transaction and commits it.
Can i prevent this?
I feel, if i could control the transaction from WMB, it would be good. But i am not able to do it. Someone told me WS-AT (AtomicTransaction) can help, but can i implement it using WMB 6.1.0.5/WMQ 6.0.2.5/AIX 5.3?
Request your views please
Thanks
P |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Mar 11, 2010 3:16 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Why would it timeout? Why not prevent it from timing out? |
|
Back to top |
|
 |
mbuserpras |
Posted: Thu Mar 11, 2010 6:00 am Post subject: |
|
|
Newbie
Joined: 10 Mar 2010 Posts: 3
|
Thanks Jeff
I have a SLA within which i have to respond. It is a synchronous transaction, so i cannot wait (for long) for the Web Services to respond.
All i am trying to do is have the transaction run in a co-ordinated manner. If Message broker loses connection (because of aborts or network disruptions or some other reasons), the webservice container should not continue with downstream processings. Instead it should rollback the entire processing.
Can we achieve this?
Appreciate your help. |
|
Back to top |
|
 |
JLRowe |
Posted: Fri Mar 12, 2010 3:19 am Post subject: |
|
|
 Yatiri
Joined: 25 May 2002 Posts: 664 Location: South East London
|
Does broker support WS-AT?
If not, then I guess you are out of luck. |
|
Back to top |
|
 |
mbuserpras |
Posted: Sun Mar 14, 2010 8:53 am Post subject: |
|
|
Newbie
Joined: 10 Mar 2010 Posts: 3
|
I think Broker doesn't support WS-AT. The version 6.1.0.X supports only WS-Addressing and WS-Security.
If i am out of luck, then how does so many broker users worldwide accomplish these kind of a functions? I think this is a very basic function with respect to transactions. Or am i missing something which is very evident? Can anyone please help? |
|
Back to top |
|
 |
mqjeff |
Posted: Sun Mar 14, 2010 9:36 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
It's not a very basic question with regards to transactions.
You're asking about maintaining a distributed transaction across multiple independant systems.
This is a complicated problem, and rapidly approaches Turing Completeness as you make it more general
I suspect you will find that most people use Process Server for this, since that is actually part of it's job. WPS can actually include a broker flow in a larger transaction, as I understand it.
If you have to do it in broker, and you can reliably know at some point that the transaction on the webservice has failed, you can create a compensating transaction. Or you can modify the webservice you are calling to hold the transaction open (and roll it back after some time) until it gets an acknowledgment from the broker flow.
I suspect if you look at WS-AT, you'll see that it basically does the same thing - doesn't commit a given transaction until a transactional acknowledgment has occurred. |
|
Back to top |
|
 |
skidewd |
Posted: Sat Mar 20, 2010 11:13 am Post subject: |
|
|
 Novice
Joined: 20 Mar 2010 Posts: 12
|
Have you considered using asynchronous Request/Response nodes in WMB? In fact, WMB7 added support for SCA nodes (including async request/response), which are exactly meant for interacting with WPS server. |
|
Back to top |
|
 |
|