The transactionControl service is a built-in service provided by SOAP/AM Server for the purpose of allowing a Web service client application to begin, commit or abort a transaction. See Managing Transactions for more information about transactions.
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 (VFS) at /services/transactionControl/transactionControl.sdf. You can also view the SDF and corresponding WSDL through the SOAP/AM Control Panel at http://mysystem:port/system/tools.
A client application uses the transactionControl service just as it would a user-defined service, typically by referencing its WSDL. The WSDL for the transactionControl service is located at http://mysystem:port/services/transactionControl/transactionControl.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.