Обмен сообщениями с использованием WebSphere MQ: практическое введение
9.5. Рассылка сообщений по подписке в WebSphere MQ с помощью JMS
В этом разделе демонстрируется применение брокера публикации-подписки (publish/subscribe broker) WebSphere MQ с примерами кода для WebSphere MQ JMS (Java Message Service).
Каталог с исполняемыми файлами java и javac из JDK необходимо добавить к пути ОС.
Пример кода для WebSphere MQ JMS потребуется слегка изменить, а затем скомпилировать. Однако знать язык программирования Java для этого не обязательно.
9.5.1. Настройка среды JMS
Создайте на компьютере, на котором предполагается работать с примерами кода, каталог – в нем будут размещены все файлы и каталоги, необходимые для выполнения описанных ниже действий. Все команды и терминальные сеансы должны работать с этим каталогом.
Исполняющая среда Java Runtime Environment (JVM), в которой работают Java-приложения, ищет скомпилированные компоненты Java-приложений в каталоге class path, заданном соответствующей переменной окружения.
При установке WebSphere MQ в Windows путь к компонентам, необходимым для исполнения приложений WebSphere MQ JMS, автоматически добавляется к переменной пути к классам Java, а на платформах UNIX это придется сделать вручную с помощью текущей оболочки.
Далее предполагается, что независимо от платформы рабочий каталог добавлен в путь к классам Java.
Для этого выполните следующие действия (в каждом окне командной строки или терминальном окне, где будут выполняться описанные ниже упражнения).
- В Windows:
- Перейдите в рабочий каталог, например:
C: cd \wmq_redbook\jmspubsub
- Выполните следующую команду, чтобы добавить путь к текущему каталогу в путь к классам Java:
set CLASSPATH=%CLASSPATH%;.
- Перейдите в рабочий каталог, например:
- В UNIX:
- Перейдите в рабочий каталог, например так:
cd ~/wmq_redbook/jmspubsub
- Выполните следующую команду (с синтаксисом, принятым на вашей UNIX-платформе; не забудьте пробел между знаками "." и "/"):
- В UNIX (кроме AIX 5L):
. /opt/mqm/java/bin/setjmsenv
- В AIX 5L:
. /usr/mqm/java/bin/setjmsenv
- В UNIX (кроме AIX 5L):
- Выполните следующую команду, чтобы добавить текущий каталог (а также дополнительный пакет Jar, не добавленный setjmsenv ) в путь к классам Java.
- В UNIX (кроме AIX 5L):
CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/jms.jar:. export CLASSPATH
- В AIX 5L:
CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/jms.jar:. export CLASSPATH
- В UNIX (кроме AIX 5L):
- Перейдите в рабочий каталог, например так:
Exception in thread "main" java.lang.NoClassDefFoundError
- В UNIX (кроме AIX 5L):
CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/com.ibm.mq.jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/com.ibm.mqjms.jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/connector.jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/jms.jar CLASSPATH=$CLASSPATH:/ opt/mqm/java/lib/jndi.jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/jta. jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/providerutil.jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/fscontext.jar CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/ldap.jar CLASSPATH=$CLASSPATH:. export CLASSPATH
- В AIX 5L:
CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/com.ibm.mq.jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/com.ibm.mqjms.jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/connector.jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/jms.jar CLASSPATH=$CLASSPATH:/ usr/mqm/java/lib/jndi.jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/jta. jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/providerutil.jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/fscontext.jar CLASSPATH=$CLASSPATH:/usr/mqm/java/lib/ldap.jar CLASSPATH=$CLASSPATH:. export CLASSPATH