Ok, so each time an instance of the SCA component that uses
MyServiceImpl  as its implementation is created a new instance of
MyExternalObject  will also be created. As it stands this component
implementation has stateless scope so this will happen when each
message arrives, I.e. each call to getMyExternalObject() will return a
new instance of MyExternalObject.

Also note that you will only be given access to the actual instance
that was created in very specific circumstances, i.e. when the service
interface/proxy is @Local and pass by reference semantics can be used
or when the service interface is @Remotable but the operation/proxy
has @AllowsPassByReference set and again the runtime chooses to use
pass by reference semantics. There is ongoing discussion to make the
pass by reference semantics work properly in 2.x.

In other cases, the obvious being where a remote binding is involved
such as binding,ws, pass by value semantics are uses and the
MyExternalObject  object will be copied and transformed as it's
marshalled to/from the protocol stack.

Hope this helps

Simon

Reply via email to