Как найти удаленный JNDI

Можно ли искать удаленный JNDI в IBM MQ. Мой сценарий: у меня есть установка MQ на машине A с ресурсами JNDI (администрируемые объекты JMS в MQ Explorer). Теперь, если я хочу подключиться к MQ через JMS из автономного класса JAVA, я могу выполнить поиск из "file://JNDI_FACTORY" . Все примеры только упоминают об этом. Но возможно ли это, если мне нужен этот автономный класс JAVA на машине B. То есть машина B имеет класс JAVA, который должен подключаться к удаленному JNDI (на машине A) и искать фабрику соединений. Могу ли я использовать что-то вроде «имя хоста A: порт» для свойства ContextProviderUrl в классе java на машине B для доступа к удаленным объектам с машины A?

Также предложите мне удаленный поиск JNDI.

Пожалуйста помоги!

СПАСИБО ЧАКРИ


person Chakri    schedule 07.03.2013    source источник


Ответы (1)


Для простоты все образцы MQ JMS используют файл JNDI для демонстрации использования начального контекста. Вы можете изменить образцы для поиска на сервере LDAP информации о фабрике соединений и месте назначения.

Сначала в MQExplorer вам нужно выбрать опцию LDAP Server, чтобы сохранить фабрику соединений и информацию о месте назначения на сервере LDAP. Затем в вашем приложении вам нужно иметь код, который выглядит так:

  String initialContextUrl = "ldap://myhost:991/c=uk,o=ACME"
  String contextFactory = "com.sun.jndi.ldap.LdapCtxFactory";
  Hashtable environment = new Hashtable();
  environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
  environment.put(Context.PROVIDER_URL, initialContextUrl);
  Context context = new InitialDirContext(environment);

См. тему Infocenter Использование JNDI для извлечения администрируемых объектов в приложении JMS для получения подробной информации и дополнительных примеров кода.

person Shashi    schedule 07.03.2013
comment
Да, Т.Роб. Это была проблема с записью, которую я имел для SO в моем файле etc/hosts. Я удалил запись, и я вернулся. - person Shashi; 08.03.2013
comment
Еще одна вещь: я использую MQexplorer для управления диспетчером очередей, и когда я подключаюсь к MQ, используя JMS с поиском JNDI, используя qcf.createQueueConnection(); Я получаю JMSWMQ2013: аутентификация безопасности недействительна, которая была предоставлена ​​​​для ошибки QueueManager, все сообщения / блоги упоминают об этой ошибке, но они говорят удалить CHAUTH для менеджера очередей и т. д.... Как мне решить это с помощью MQExplorer, Пожалуйста помоги мне с этим - person Chakri; 13.03.2013
comment
На самом деле отключать CHLAUTH НЕ рекомендуется, так как это открывает ваш менеджер очередей для всего мира. Ничего страшного, если это тестовый менеджер очередей. Используя runmqsc, вы можете отключить аутентификацию канала. В runmqsc введите команду ALTER QMGR CHLAUTH(DISABLED), чтобы отключить аутентификацию канала. - person Shashi; 14.03.2013