Concurrency servlet中ejb3注入的并发含义是什么?

Concurrency servlet中ejb3注入的并发含义是什么?,concurrency,ejb-3.0,cluster-computing,Concurrency,Ejb 3.0,Cluster Computing,我想对比ejb3注入和jndi查找方法,注入是否将一个特定的代理实例绑定到servlet??如果是这样,那么在集群环境中,这种紧密的运行时绑定可能会导致效率低下。对于无状态,EJB代理与其支持实例(通常是池)是1对多的,并且可以安全地注入servlet 对于Singleton,EJB代理与其支持实例是1对1的,但是容器(或bean)负责确保并发调用是安全的还是不允许的,这取决于每个方法的业务逻辑@AccessTimeout可用于控制等待锁定的时间 对于有状态,EJB代理与其支持实例是1对1的,并

我想对比ejb3注入和jndi查找方法,注入是否将一个特定的代理实例绑定到servlet??如果是这样,那么在集群环境中,这种紧密的运行时绑定可能会导致效率低下。

对于无状态,EJB代理与其支持实例(通常是池)是1对多的,并且可以安全地注入servlet

对于Singleton,EJB代理与其支持实例是1对1的,但是容器(或bean)负责确保并发调用是安全的还是不允许的,这取决于每个方法的业务逻辑@AccessTimeout可用于控制等待锁定的时间


对于有状态,EJB代理与其支持实例是1对1的,并且注入servlet是不安全的。从EJB3.1开始,有状态会话bean并发允许一些安全性,但是由于有状态会话bean超时,将有状态会话bean注入servlet不太可能有用。

很好的干净答案。另外,@AccessTimeout是一种很好的方法,可以指定与多线程访问相关的“如果我的bean很忙怎么办”条件。是高度并发系统的明确朋友,可供所有会话bean使用。谢谢:-)。更新了注意SFSB并发性的答案(尽管我仍然不认为将SFSB注入servlet是有用的)。对,您可能希望查找它并将其保存在请求中,或者将其填充到会话中。注意:无状态bean上的@AccessTimeout指定在池中等待实例的时间。在单例上,它指定您可以等待多长时间才能获得锁。啊,我没有意识到@AccessTimeout对无状态有这种效果。我最熟悉的WebSphere Application Server总是在必要时分配一个实例,如果池已满,它将在方法完成后销毁该实例……尽管在第二次阅读EJB3.1第4.3.14节时,我没有看到@AccessTimeout适用于SLSB?