NonStop SOAP 4.1 User's Manual
SOAP Server Transaction Management
The NonStop SOAP 4 server can manage a simple transaction without a Transaction header block
in the SOAP message. A client can invoke a service on the NonStop server and be certain that all
the changes made to the database by that service are completed in their entirety or, should the
transaction fail, the database restored to a prior state, using a single SOAP message.
When the NonStop SOAP 4 server receives a SOAP message that does not contain a Transaction
header block (and before invoking the requested operation), it examines the setting of the
TMFTransactionSupport attribute for this operation in the appropriate services.xml file.
If the value is set to Required, the SOAP server will start a transaction through TMF and then
continue with the service request. When the operation is complete and the service returns control
back after executing the transaction, NonStop SOAP 4 will invoke TMF to commit the transaction
before replying with a SOAP message back to the client.
If the call to the service fails, or the operation itself returns a fault indication, the SOAP server will
abort the transaction, and the client will be notified that the operation failed.
NOTE: The AbortTransactionOnFault attribute has no effect on the feature being described
here – the SOAP server will always abort the transaction as a result of an error when it is managing
the transaction irrespective of the setting of AbortTransactionOnFault, if present for this
operation.
For information on the AbortTransactionOnFault attribute, see “Configuring Transactions to
Abort on Fault” (page 248)e.
It is possible to set a timeout for this transaction using the optional TMFTimeout attribute in the
services.xml file. If not set, the default TMFAutoAbort timeout will apply. For information on
the TMFAutoAbort attribute, see “Transaction Timeouts” (page 246).
SOAP Client Transaction Management
NonStop SOAP 4 allows clients to control when transactions are started, continued, and ended
through values set for the Command attribute in a Transaction header block in the SOAP message.
Based on these values, the SOAP server calls TMF to begin, resume, commit, or abort transactions
before and following the invocation of one or more service operations indicated by the SOAP
request. The Transaction header block can be defined in the WSDL file for a service by setting the
service-level GenerateTransactionHeader attribute to yes in the SDL file for the service. After
the transaction header block is defined in the WSDL file, tools that generate client code from the
WSDL file (such as, wsimport) will create routines to access the transaction header block fields.
In addition to the Command attribute, there are two other important attributes used in the Transaction
Header:
• TransactionID
• TimeOut
Table 18 lists the attributes in the transaction header element and their values.
238 Transaction Management










