Опубликован: 10.06.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Компания IBM
Лекция 9:

Обмен сообщениями с использованием WebSphere MQ: практическое введение

9.5. Рассылка сообщений по подписке в WebSphere MQ с помощью JMS

В этом разделе демонстрируется применение брокера публикации-подписки (publish/subscribe broker) WebSphere MQ с примерами кода для WebSphere MQ JMS (Java Message Service).

Примечание Для изучения этого раздела необходимо установить пакет Java Development Kit (JDK). JDK 1.4.2 находится в каталоге Prereqs на установочном носителе WebSphere MQ V6.0.

Каталог с исполняемыми файлами 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
    • Выполните следующую команду, чтобы добавить текущий каталог (а также дополнительный пакет 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
Примечание Если при выполнении описанных ниже упражнений вы столкнулись с ошибками, например:
Exception in thread "main" java.lang.NoClassDefFoundError
попробуйте устранить их, выполнив следующие действия. Настройте переменные окружения CLASSPATH вручную, например так.
  • В 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
Михаил Завалко
Михаил Завалко
Беларусь, Минск
Artem Bardakov
Artem Bardakov
Россия