Это более подробная версия того же вопроса . спросил вчера.
У меня есть клиентское приложение, которое взаимодействует с серверным приложением через вызовы 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
.