2013-04-04 4 views
1

Я получаю ссылку на удаленный экземпляр EJB без каких-либо проблем, но иногда, когда я вызываю один из его методов, «java.net.SocketTimeoutException: Read timed out» is выбрасывается с клиентской стороны. На серверной стороне проблем не возникаетSocketTimeoutException в вызове клиента EJB

Есть ли способ установить время ожидания клиента EJB для каждого вызова?

Я использую довольно старую версию JBoss (4.2.1 GA)

С уважением

ответ

1
  1. Вы можете настроить InvokerLocater атрибут для соединителя MBean.

    <attribute name="InvokerLocator">socket://{jboss.bind.address}:3873/?socketTimeout=60000</attribute>

  2. Может обеспечить более тонкие детали для элемента конфигурации под атрибутом конфигурации. По умолчанию это одна минута.

    <attribute name="socketTimeout">60000</attribute>

  3. Обеспечение параметров времени ожидания в файле свойств JNDI.

    jnp.timeout: Соединение таймаут в миллисекундах. Значение по умолчанию равно 0, что означает, что соединение будет блокироваться до тех пор, пока не истечет время простоя VM TCP/IP .

    jnp.sotimeout: Связанный тайм-аут чтения сокета в миллисекундах. Значение по умолчанию равно 0, что означает, что чтение будет блокироваться. Это значение , переданное Socket.setSoTimeout в недавно подключенном сокете.

    Чтобы вручную настроить тайм-аут для отдельных вызовов, вам необходимо создать исходный контекст с соответствующими значениями свойств.

Смежные вопросы