RMI规范声明:
“由RMI运行时调度到远程对象的方法 实现(服务器)可能会也可能不会在单独的线程中执行。 来自不同客户端的呼叫将执行虚拟机 在不同的线程。从同一台客户机上它不是 保证每个方法都在一个单独的线程中运行“
现在,EJB如何使用RMI作为核心实现来处理这个问题?
例如,如果我有一个包含许多线程的Web应用程序(每个客户端HTTP请求一个), 他们每个人使用相同的无状态EJB来发出请求,我们显然希望每个请求都有一个服务器RMI线程,当然不喜欢在同一个线程中被序列化和提供的请求。
答案 0 :(得分:0)
首先,在Web应用程序的许多实现中,Enterprise Bean主要是本地的,或过度设计的,并且应该是本地的。在本地访问的情况下,呼叫被分流,并且不会通过RMI。不是说你的情况就是这样,但需要考虑的事情。但是注意到你的servlet容器和bean容器是同一个,我认为使用远程客户端并没有多大用处。
由servlet容器管理的线程和由企业bean容器管理的线程是不同的。每个人都会自己决定他们的游戏池有多大,以及将会采用什么样的重用策略。
答案 1 :(得分:0)
你不会得到那个。这个措辞非常不透明,但其神秘的含义是你不能假设它在服务器上是单线程的。 RMI没有这样的实现。来自客户端的并发呼叫将在服务器上同时进行。