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
