Вопрос

Я тестирую JMS WebLogic 10.3.1, но возникла проблема.

Мой этап тестирования:

  1. Запустить сервер WebLogic
  2. Запустить JMS-клиент
  3. Клиент отправляет объект в WebLogic JMS, и сервер получает объект.
  4. Остановить сервер WebLogic
  5. Отправьте еще один объект в WebLogic JMS.

Я ожидаю, что возникнет исключение, но ничего не появилось и программа зависла.Программа остановилась на:

sender.send(objMsg);

Я добавил некоторые настройки тайм-аута, но все еще не работает:

((WLProducerImpl) sender).setSendTimeout(1000);
((WLConnection) connection).setReconnectPolicy(JMSConstants.RECONNECT_POLICY_PRODUCER);
((WLConnection) connection).setReconnectBlockingMillis(1000);

Есть ли способ создать исключение в этом случае?Большое спасибо.

С уважением, Крис

Это было полезно?

Решение 3

Решение найдено:

Пожалуйста, добавьте эти 2 параметра:

-Dsun.net.client.defaultConnectTimeout=30000
-Dsun.net.client.defaultReadTimeout=30000

Другие советы

Вы можете попробовать указать тайм-аут в методе отправки.что-то похожее на следующее:sender.send(objMsg, Message.DEFAULT_DELIVERY_MODE, Message.DEFAULT_PRIORITY, 10000);

Я подозреваю, что транспорт WebLogic завис и не обнаружил, что сервер пропал, и отправка заблокирована в транспорте.Если WebLogic JMS не использует отдельный внутренний поток, тайм-аут не поможет.

ИМХО, служба поддержки WebLogic - единственные ребята, которые смогут вам помочь в этом вопросе (похоже на ошибку).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top