I've done some quick tests where a client makes regular calls to an EJB, during which I update the bean with a new version (eg. change the return string from a getVersion() method). I did this with stateless and stateful beans, and noted the following:
* Stateless: the client can continue to use the original reference, which automatically points to a new instance; unless it tries to make a call in the middle of the update, in which case one of several exceptions might be thrown.
* Stateful: the same as with stateless, if caught in the middle of an update; otherwise, an ObjectNotFoundException is thrown.
Is this an accurate view of what's happening? Are there any configuration options to set different behaviour (such as, current clients holding a reference to the original EJB, while new clients get the new version)?
Any help, or pointers to further reading, is appreciated.