NonStop SOAP 4.1 User's Manual
Table 18 Attributes in the Transaction Header Block
DescriptionValuesAttributes of the Header Element
Specifies the transaction command. Note that it is
case-sensitive.
Begin, Continue, Commit,
Abort
Command
Contains the value set by TMF to identify a specific
transaction.
TMF TransactionIDTransactionID
Specifies the transaction timeout in seconds.
NOTE: The TimeOut attribute can be used only
when the Command attribute in the transaction
header block of the SOAP request header element
is set to Begin.
Transaction timeoutTimeOut
The TimeOut attribute can be used to provide more granular control of the TimeOut value to be
used by TMF before it automatically aborts a transaction and frees any resources (for example,
database locks) that might be held by that transaction. For more information on the timeout settings,
see “Transaction Timeouts” (page 246).
The value passed in the TransactionID attribute is a TMF transaction ID set by NonStop SOAP
4 in a Transaction header block contained in the SOAP response message. This attribute value is
then sent by the SOAP client in the Transaction header block of subsequent SOAP requests as a
handle to be used by NonStop SOAP 4 to associate messages received to a specific active
transaction.
WARNING! The client must not alter the value of this attribute, or else the transaction will almost
certainly fail.
During the processing of a multi-step transaction, the SOAP messages submitted by a client will
probably be processed by different SOAP server instances. The only thing that associates messages
to any particular logical transaction is the TransactionID attribute carried in a Transaction
header block. Before a response is sent back to a client, the SOAP server instance suspends the
active transaction. This makes the server available to receive another message from another or the
same client to do work on behalf of another transaction; that is, each SOAP server instance is
context-free – it retains no knowledge of any particular transaction.
It also follows from this that a client can also be involved simultaneously in multiple transactions.
For a GUI application that is used by a human operator at a workstation, this probably does not
make sense. However, for a complex application requester in a Services Oriented Architecture
(SOA) accessing services on the NonStop server through NonStop SOAP, it is perfectly possible
for it to be managing multiple parallel transactions and use the TransactionID attribute as the
handle for each of its processing threads.
The following sections will detail how each of the four transaction commands (Begin, Continue,
Commit, End) are processed by NonStop SOAP 4 with examples of the Transaction header block
sent by the client and responses back from SOAP for each command.
Begin a New Transaction
To begin a new TMF transaction, the client must set the value of the Command attribute (in the
transaction header block of the NonStop SOAP 4 request header element) to Begin and send it
as a part of the SOAP request header element.
NOTE: The body of a request that starts a transaction can invoke a target service, or it can be
empty.
Figure 17 shows the schematic flow for beginning a new transaction.
SOAP Client Transaction Management 239










