У меня есть два кластера WebLogic в разных доменах.Удаленный кластер содержит кластерный JMS-сервер и очередь.Фабрика соединений для JMS извлекается в другом домене с помощью внешнего провайдера JNDI с использованием протокола t3s
, нацеленного на все URL-адреса экземпляров сервера.Насколько я знаю, фабрика соединений имеет внутренний балансировщик нагрузки и использует протокол t3s
для доставки сообщений.Я правильно настроил хранилища SSL и доверенных сертификатов.
Когда я загружаю службу большим количеством запросов в ходе нагрузочного тестирования, кажется, что обмен сообщениями работает 95% времени, а сообщения сбалансированы на всем управляемом сервере.экземпляры, как и ожидалось.Однако часть запросов завершается с ошибкой на клиенте JMS со следующей ошибкой:
Caused by: java.rmi.ConnectException: Destination not reachable using: 'DefaultSecure[t3s]:t3s(t3s):****:9002:null:-1'; No available router to destination.; nested exception is:
java.rmi.ConnectException: No available router to destination.
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:539)
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:458)
at weblogic.rjvm.RJVMImpl.ensureConnectionEstablishedByURL(RJVMImpl.java:381)
at weblogic.rjvm.RJVMImpl.getOutputStreamByURL(RJVMImpl.java:467)
... 153 more
Caused by: java.rmi.ConnectException: No available router to destination.
at weblogic.rjvm.ConnectionManager.findOrCreateRouter(ConnectionManager.java:1822)
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:520)
... 156 more
Нет ничего особенного в этом неудачном запросе, все они являются общими.Похоже, что проблема решена путем включения опции Enable Tunneling
на вкладке Protocols -> General
во всех экземплярах сервера.Я понятия не имею, почему это необходимо и как это решает проблему, или что вызывает проблему в первую очередь.Есть ли некое неявное туннелирование, происходящее с фабрикой соединений или сторонним JNDI-провайдером под высокой нагрузкой?