Уникальное имя JMS JNDI, доступное как из кластерных, так и из автономных экземпляров

#jms #weblogic

#jms #weblogic

Вопрос:

У меня есть домен weblogic с 5 управляемыми серверами. 3 из них находятся в кластере, а 2 являются автономными. Одно приложение развертывается на кластере, второе и третье — на двух оставшихся узлах. Из всех 3 приложений мне нужно получить доступ к очередям JMS и фабрике соединений с тем же именем JNDI (т. Е. использовать jms / q1 из кластерных и автономных экземпляров для доступа к очереди). Это не обязательно должна быть одна и та же очередь, но имя должно быть уникальным в домене. Я пытался использовать распределенные очереди (UDD), но это не позволяет смешивать кластер с некластеризованными узлами.

Какие есть варианты для достижения этого и сохранения очередей JMS, развернутых в одном домене?

Комментарии:

1. Это невозможно сделать. У каждого сервера есть информация о каждой очереди, настроенной в домене, в его дереве JNDI. Зачем вам вообще понадобилось иметь три разные очереди под одним и тем же JNDI? Какую реальную проблему вы пытаетесь решить?

Ответ №1:

Извините за двусмысленность, я попытаюсь прояснить это сейчас. В идеале все имена JNDI должны указывать на одну и ту же очередь (я оставил опцию, если это невозможно).

Теперь о проблеме. У меня есть упакованное приложение (IBM Maximo), которое развернуто на кластере c1, и автономные узлы n1, n2 с 3 разными файлами ear с небольшими различиями в конфигурации (методы входа различны для каждого файла). Мне нужно включить интеграцию JMS с внешней системой ESB. Я не могу настроить имя JMS для каждого экземпляра развертывания, JNDI считывается из базы данных.

Проблема с weblogic заключается в том, что распределенная очередь (UDD) не может быть развернута как в кластерных , так и в автономных экземплярах. Распределенная очередь имеет уникальное имя JNDI для всех развернутых узлов.

Одним из действительно уродливых решений для этого может быть использование внешнего сервера JNDI и указание на внешний сервер JMS, такой как HORNETQ. Я уже пробовал это, и решение простое и рабочее, однако это еще одна система для управления в производстве, и я хочу этого избежать.

Я знаю, что это можно сделать, поскольку механизм распределенной очереди работает в weblogic для кластера, каждый узел указывает на одну и ту же очередь JMS с тем же именем JNDI, но я не могу добавить автономные узлы. Кроме того, создание отдельных доменов для каждого автономного экземпляра не является действительно желательным вариантом.

Комментарии:

1. Чтобы ответить на мой собственный вопрос: можно создавать очереди с тем же именем JNDI, что и распределенные, для автономных серверов. Единственная проблема в том, что у меня будет более одной очереди для прослушивания на стороне EBS