Это более подробная версия того же самого вопроса , заданного вчера.
У меня есть клиентское приложение, которое связывается с серверным приложением через вызовы RMI для EJB без сохранения состояния. Начальный контекст создается с помощью следующих параметров конфигурации:
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
. Каждый поток время от времени вызывает удаленные вызовы для общего компонента.
У меня вопрос: эти вызовы выполняются последовательно или параллельно? Каждый удаленный вызов выполняется на сервере. Некоторые вычисления выполняются, и результат возвращается. Если все вызовы будут сериализованы, мне придется ограничить количество существующих потоков, поскольку многие из них могут быть заблокированы на ServerBean
.