NonStop SOAP User's Manual
NonStop SOAP Features and Functions
NonStop SOAP User’s Manual—520501-012
4-16
Starting a Transaction
A SOAP server does not begin, abort, or end a transaction implicitly (without the
knowledge of the SOAP client), except in these cases:
•
When a context-sensitive server ends a dialog, and the service permits only one
transaction per dialog. In this case, the SOAP server ends the transaction but not
the session.
•
When the target server (context free or context sensitive) aborts a transaction after
a system error, the SOAP server implicitly ends the session and aborts any
transaction associated with the session.
•
When the SOAP server ends a session under a client request which does not
specify CurrentTransactionCommand, it implicitly commits the current transaction
within that session.
•
When the SOAP server end a session which has expired, it implicitly aborts the
current transaction within that session.
Starting a Transaction
To start a transaction, the client sends a SOAP message specifying “yes” as the value
of the BeginNewTransaction attribute of the Session element of the NonStop SOAP
header. (For the header DTD, see NonStop SOAP Header on page 4-2.)
A message that begins a transaction must either request a new session or include the
session ID of an existing session. The SOAP server stores the transaction tag as part
of the session context. The server returns a fault if it cannot begin a transaction--for
example, if the target service does not support transactions--or if a transaction is
already in progress for the session.
The body of a request that starts a transaction can invoke a target service, or it can be
empty, as in this example:
Continuing a Transaction
A transaction continues automatically if a request specifies a session ID for which a
transaction is in progress and the target service supports transactions.
For an example, see Request Continues the Session and the Transaction on
page 6-40.
Example 4-14. Starting a Transaction
<SOAP-ENV:Envelope xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:sd="urn:compaq_nsk_oss_SoapHeader">
<sd:Session SessionID="23456" BeginNewTransaction="yes"/>
</SOAP-ENV:Header>
<SOAP-ENV:Body/>
</SOAP-ENV:Envelope>