【发布时间】:2010-11-05 09:22:44
【问题描述】:
这是昨天问的question 的更详细版本。
我有一个客户端应用程序,它通过对无状态 EJB 的 RMI 调用与服务器应用程序进行通信。使用这些配置参数构建初始上下文:
InitialContext ctx = new InitialContext(new Hashtable<String, String>() {
{
this.put("java.naming.provider.url", "serverUrl:portNumber");
this.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
this.put("java.naming.factory.url", "org.jnp.interfaces.TimedSocketFactory");
}
});
然后使用以下方法查找代理:
ServerBean bean = (ServerBean) ctx.lookup("ejb/ServerBeanImpl");
然后客户端生成许多线程共享ServerBean 的同一个实例。每个线程时不时地调用共享 bean 上的远程调用。
我的问题是,这些调用是以串行方式还是并行方式执行的?每个远程调用都在服务器上执行。执行一些计算并返回结果。如果所有调用都被序列化,那么我将不得不限制现有线程的数量,因为它们中的许多都可以在ServerBean 上被阻塞。
【问题讨论】:
-
听起来像是您可以测试的场景:-)。启动 JMeter(或编写一个小型客户端应用程序)看看会发生什么!
标签: java concurrency jboss ejb rmi