On Thu, Jan 7, 2010 at 10:37 AM, Douglas Leite <[email protected]> wrote: > Hi, > > I would like to know if the Tuscany SCA framework provides something that > allows me to identify which oneWay method invocation a callback operation is > associated with. > > Suppose that a ClientComponent invokes consecutively an oneWay method from a > ServerComponent 3 times. The client method ends their execution up before > the arrival of the messages through callback. Then, when the callback > messages arrive, how can I determine which of the 3 invocations method the > callback is associated with? Can I trust the message delivery order? >
I believe this would depend on the @Scope of your service, below is what the 1.1 spec says in the 7.2.2 section (Callback Instance Management): Instance management for callback requests received by the client of the bidirectional service is handled in the same way as instance management for regular service requests. If the client implementation has STATELESS scope, the callback is dispatched using a newly initialized instance. If the client implementation has COMPOSITE scope, the callback is dispatched using the same shared instance that is used to dispatch regular service requests. As described in the section "Using Callbacks", a stateful callback can obtain information relating to the original service request from parameters on the callback request. Alternatively, a composite- scoped client could store information relating to the original request as instance data and retrieve it when the callback request is received. These approaches could be combined by using a key passed on the callback request (e.g., an order ID) to retrieve information that was stored in a composite-scoped instance by the client code that made the original request. Also, here are some slides on this topic that might help : http://www.slideshare.net/luckbr1975/building-asynchronous-services-with-sca -- Luciano Resende http://people.apache.org/~lresende http://lresende.blogspot.com/
