Подключитесь к IBM MQ с помощью JMS. Укажите канал и администратор очередей - PullRequest
2 голосов
/ 23 февраля 2010

Как мне указать, к какому администратору очередей подключаться в свойствах моей системы. Вот код:

Properties properties = new Properties(); 
properties.setProperty("java.naming.factory.initial", "com.ibm.mq.jms.context.WMQInitialContextFactory");
properties.setProperty("java.naming.provider.url", "localhost:1414/SYSTEM.DEF.SVRCONN"); 

Context context = new InitialContext(properties); 
factory= (QueueConnectionFactory)context.lookup("TESTOUT"); 

контекст всегда получает TEST que, только не может соединиться с TESTOUT queue

Ответы [ 3 ]

2 голосов
/ 28 апреля 2010

Хммм ... так много проблем с размещенным вами фрагментом кода, трудно понять, с чего начать.

Использование WMQInitialContectFactory не похоже на то место, где можно начать с MQ. Это добавляет слой сложности, который вы, вероятно, не хотите на данном этапе. Я бы предложил использовать fscontext от Sun и сохранить управляемые объекты в локальном файле. Исходный контекст, который вы используете, в основном используется для создания общего JNDI-репозитория для многих пользователей или приложений, однако он не поддерживается. Моя проблема в том, что программа сначала должна подключиться к администратору очередей, чтобы получить фабрику соединений, которая ... сообщает программе, как подключиться к QMgr!

Все эти объекты с именем SYSTEM.DEF. * Или SYSTEM.AUTO. * Никогда не должны использоваться для реальных подключений. Это шаблоны, от которых наследуются новые объекты. Если они пригодны для использования, вы не можете защитить их или любые объекты, созданные из них.

Либо фрагмент не завершен, либо вы путаете фабрику соединений с объектом очереди. В сообщении говорится, что вам нужна очередь TESTOUT, но в коде есть только фабрика соединений с очередью, а не пункт назначения или объект очереди.

Если вы установили сервер или клиент WMQ локально, у вас уже есть куча хороших примеров. Расположение по умолчанию для них: C: \ Program Files \ IBM \ WebSphere MQ \ tools \ jms \ samples, и они включают примеры pub / sub и двухточечные. Если вам нужен пример, демонстрирующий создание файла .bindings, ознакомьтесь со статьей и примером кода здесь: http://www.ibm.com/developerworks/websphere/techjournal/0610_woolf/0610_woolf.html В статье объясняются некоторые проблемы, которые я только что упомянул, с каналами, безопасностью клиента и т. Д.

2 голосов
/ 24 февраля 2010

Вот пример с сайта IBM о том, как настроить Websphere Application Server (WAS) для использования MQ в качестве механизма для JMS.
http://www.ibm.com/developerworks/websphere/techjournal/0505_woolf/0505_woolf.html

Также у IBM есть хорошее руководство, в котором приведены примеры того, как это сделать, если вы являетесь производителем сообщений по адресу:
http://www.redbooks.ibm.com/redbooks/pdfs/sg247128.pdf

Есть также несколько хороших примеров кода Java по адресу:
http://www.capitalware.biz/mq_code_java.html

Извините .... У меня больше нет доступа к коду, который я сделал для этого, или я приведу несколько примеров.

0 голосов
/ 09 марта 2010

Можно использовать конструктор MQQueueManager, чтобы указать имя целевого администратора очередей, используйте конструктор со свойствами для информации о соединении. Обратитесь к следующей ссылке для получения более подробной информации о свойствах:

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.csqzaw.doc/jm10910_.htm

...