@jws:conversation Tag

Specifies the role a method or callback plays in a service's conversations. Note that these roles are different between methods and callbacks.

Syntax

@jws:conversation
	phase="none" | "start" | "continue" | "finish"

Attributes

phase

One of four values indicating the method or callback's role in conversations. Note that only continue and finish are available for callbacks.

Remarks

Set the conversation phase attribute for a method or callback to specify its role in the service's conversations.

The following rules apply to this tag's use:

Possible attribute values are as follows:

Set the phase attribute to "continue" for any method or callback that is likely to be used for communication with a client in connection with an ongoing request. In particular, these are methods that are clearly intended to be called subsequent to the conversation's start and before its finish. These include requests for or responses with additional information, requests for progress or status, and so on.

It is also possible to finish a conversation by calling the JwsContext interface finishConversation method. For more information, see Managing Conversation Lifetime.

The phase attributes default values are as follows:

Note: It is possible to create a conversational web service that supports a deadlock condition. If the web service has at least one non-buffered incoming method with conversational phase set to "continue" or "finish" and has at least one non-buffered outgoing callback, it is possible that the callback will be initiated at the same time as a client calls one of the incoming methods. This situation will result in deadlock, causing one or both of the transactions to time out and be rolled back. If you experience this problem, make either all incoming methods or all outgoing callbacks message-buffered. For more about message buffering, see Asynchronous Methods.

Related Topics

Overview: Conversations

JwsContext Interface