3.1.4.9 TransactedSuspend
The WSDL definition of the TransactedSuspend operation is as follows:
-
<wsdl:operation name="TransactedSuspend"> <wsdl:input wsaw:Action="http://schemas.datacontract.org/2008/10/ WorkflowServices/IWorkflowInstanceManagement/TransactedSuspend" message="tns:IWorkflowInstanceManagement_TransactedSuspend_InputMessage" /> <wsdl:output wsaw:Action="http://schemas.datacontract.org/2008/10/ WorkflowServices/IWorkflowInstanceManagement/TransactedSuspendResponse" message="tns:IWorkflowInstanceManagement_TransactedSuspend_OutputMessage" /> </wsdl:operation>
TransactedSuspend is an atomic operation that SHOULD perform the following tasks under the scope of a transaction flowed in from the client, if one is flowed in, using a protocol that is recognized by the client and server roles, such as [MS-WSRVCAT]:
Transitions a durable program instance from the active state to the suspended state. If the durable program instance is already in the suspended state, then this task is not performed. The durable program instance MUST NOT execute when in the suspended state.
The operation SHOULD return a SOAP fault message if one or more of the following conditions exist:
The value of the <instanceId> element is not in the correct format, as specified in [MS-DTYP] section 2.3.4.
The <instanceId> element is absent.
The value of the <instanceId> element does not exist in the Durable Program Instance Table on the server.
The durable program instance associated with the value of the <instanceId> element is in the completed state.
The <reason> element is missing, empty, or has the xsi:nil attribute set to a value of true.
The server encounters an internal error while executing the TransactedSuspend operation.
If the system maintains the durable state of the durable program instance, then the durable state MUST be updated during execution of this operation. If the durable store is a transactional resource manager, then the same transaction SHOULD be used for the durable state change. Failure to make the durable state change MUST result in failure of the operation.
A GUID MUST be passed to the operation as the value of the <instanceId> element to identify the durable program instance on which the operation is to be performed. If the durable program instance associated with the identifier passed to the Suspend operation is already in the suspended state, then the state is not modified.