Hi,

Following is quoted from the SCA assembly spec 1.0:

"851 One or more operations in a conversational interface may be annotated with an 852 endsConversation annotation (the mechanism for annotating the interface depends on the 853 interface type). Where an interface is bidirectional, operations may also be annotated in this 854 way on operations of a callback interface. When a conversation ending operation is called, it 855 indicates to both the client and the service provider that the conversation is complete. Any 856 subsequent attempts to call an operation or a callback operation associated with the same
857 conversation will generate a sca:ConversationViolation fault."

My understanding is that in your scenatio, both A->B and B->A are in the same conversation and step 3 will ends the conversation for both A and B.

Thanks,
Raymond

----- Original Message ----- From: "Simon Nash" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Sunday, September 09, 2007 1:05 PM
Subject: Re: Resetting state of service references at conversation end


Please can you explain the scenario in a little more detail.  If I am
understanding the scenario correctly, the client's conversation ID
should not be set back to null.  Here's what I think the scenario is:
  1. client A calls Service B on a conversational interface
  2. service B calls back to client A on a conversational interface
     using the same conversation ID (a stateful callback)
  3. service B calls back to client A using an @EndsConversation method
  4. The conversation from B to A is now ended. but the conversation
     from A to B will continue until A ends it.

I think I must have misunderstood the scenario.  Please clarify.

  Simon

Simon Laws wrote:

When @ConversationEnd is called on a satefull callback the conversation id
of the client reference is not reset back to null. I have put a fix in in
the case where the scope of the originating component is CONVERSATION. This
relies on storing the Conversation object in the conversational scope
container so that when the instance is marked for removal the conversation
id can be set to null also.

However to make this approach work for all scopes I have to go and add this feature to the other scope containers. Before I do this is there an easy way
to get to all of a component instances CallableReferences from the
JavaImplementationInvoker? If there were I could search for the conversation
object with the matching conversationId rather than adding extra code to
store it away.

Simon




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to