并发使用作为RMI服务公开的EJB

时间:2010-11-04 16:55:50

标签: java concurrency jboss ejb rmi

我构建了一个使用相同RMI服务模拟多个客户端的应用程序。然后,每个客户端检索数据并将数据上载到服务器,同时调用此服务。我担心的是,如果每次删除调用都需要一些时间,远程服务实现(jBoss 5 EJB)可以远程处理这些调用,或者将它们序列化。

如果是后者,那么我必须限制客户端数量以防止它们减慢速度。

2 个答案:

答案 0 :(得分:1)

你到底是什么意思?

您是说有多个客户端各自获取远程EJB bean,然后在他们收到的存根/代理上调用方法,或者是否有大量远程客户端共享一个代理?

我们在谈论什么样的EJB bean?无状态会话bean?

这些bean由服务器汇集,并且对于每个传入的远程方法调用,都会将实例从线程池分配给工作线程。所以是的,如果给定时间范围内的请求数量大于可用bean实例和工作线程的数量,则那些剩余请求将必须等到bean变为可用。

这是一种自动节流机制。

答案 1 :(得分:1)

除非远程方法实现执行某种类型的同步,否则不会对RMI调用进行顺序化。这适用于RMI / JRMP和RMI / IIOP。