The transactionControl Service
The transactionControl service is a built-in service provided by SOAPam Server for the purpose of allowing a Web service client application to begin, commit or abort a transaction. The transactionControl service is used in conjunction with one or more user-defined methods that include a <transactionControl> element and a <header> or <parameter> element of type txControlRequestType and txControlResponseType.
The transactionControl service is defined in a Service Definition File just as user-defined services are. The SDF is located in the Virtual File System at /services/transactionControl/transactionControl.sdf. You can also view the SDF and corresponding WSDL through the Service Catalog.
A client application uses the transactionControl service just as it would a user-defined service, typically by referencing its WSDL.
The transactionControl service supports three methods: TransactionBegin, TransactionCommit and TransactionAbort.
While a client application may use the TransactionControl service's methods to begin and/or commit or abort a transaction, it must 'enlist' user-defined methods in the transaction in order to be part of its 'unit of work'. Methods participate in a common transaction by copying the txURL element of txControlResponseType in one method's response to the txURL element of txControlRequestType in a subsequent method's request.
Client applications may control transactions without the use of the transactionControl service if the determination as to whether to commit or abort a transaction can be made solely based on the reply code (first 2-byte word) of the destination server's reply interprocess message. However, if the client application needs to make the commit/abort determination based on other criteria (the contents of one or more server replies, user input, etc.), it uses the transactionControl service to commit or abort the transaction without any interaction with the application server.