On Thursday 15 September 2011 09:20 AM, David M. Lloyd wrote:
Each EJB receiver has an obligation to keep the EJB client context
updated with the list of module identities that it can access. When a
proxy is invoked upon, the EJB client context uses this table to select
the destination. This means that for the Remoting protocol for example,
the server sends back messages informing the client of changes in
deployment status (which should be relatively infrequent) as well as
sending an initial summary of what modules are available.
If we solely rely on the
EJB module inventory on the client side to
select the right server target for a proxy, would it not introduce a
problem where the module inventory (on the client side) might not yet
have been updated by the server side when the user code invokes on the
proxy? For example, a server might be hosting 10 EJB modules and it
might be in the process of sending that module availability report to
the client, when the client might invoke on the proxy. That would result
in a spurious "target not available" for the invocation, even though the
beans are hosted on the server.
-Jaikiran