Руководство по WebSphere Application Server

ОнЛ@йн руководство с примерами по WAS

  • Главная
  • Авторское право
  • Команда
  • Контакты
  • Оглавнение

13

Дек

8.2.10. Получатели JMS-сообщений

Опубликовал admin  Рубрика Часть 8. Асинхронный обмен сообщениями

JMS-сеанс также функционирует как фабрика для получателей JMS-сообщений. JMSклиент использует получателя сообщений для получения сообщений из пункта назначения в провайдере JMS. Получатель JMS-сообщений не поддерживает параллельное использование.

Интерфейс получателя сообщений, как он определен в спецификации JMS, показан в табл. 8.7.

Вспомните из обсуждения в разделе «Получатели сообщений», что получатели могут работать в режиме извлечения (pull) и режиме приема (push). В спецификации JMS определяются получатели сообщений для обоих режимов. Получатели, работающие в этих режимах, рассматриваются в следующих разделах.

Режим извлечения

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

Код, необходимый для получения сообщения в режиме извлечения, показан в примере 8.6.

Пример 8.6. Получение JMS-сообщения в режиме извлечения

// Создание получателя сообщений

MessageConsumer msgConsumer = session.createConsumer(destination);

// Запуск соединения

conn1.start();

// Попытка получить сообщение

Message msg = msgConsumer.receiveNoWait();

// Проверка наличия текстовых сообщений if (msg instanceof TextMessage) {

// Приведение сообщения к нужному типу TextMessage txtMsg = (TextMessage)msg;

// Вывод содержимого сообщения

System.out.println(txtMsg.getText()); }

Примечание. Перед попыткой получения сообщения необходимо вызвать метод start объекта Connection. Соединение не нужно запускать для передачи сообщений, а только для получения. Это позволяет приложению выполнить все необходимые шаги по конфигурированию перед попыткой получения сообщения.

Чтобы реализовать решение, в котором используется метод приема (push), JMSклиент должен зарегистрировать в объекте MessageConsumer объект, реализующий интерфейс javax.jms.MessageListener. Когда такой объект-получатель запросов зарегистрирован, JMS-провайдер доставляет сообщения по мере их поступления, используя метод onMessage получателя запросов.

Интерфейс javax.jms.MessageListener показан в примере 8.7.

Пример 8.7. Интерфейс javax.jms.Messa geListene r

package javax.jms;

public interface MessageListener {

public void onMessage(Message message);

}

Простой класс, реализующий интерфейс javax.jms.MessageListener, показан в примере 8.8.

Пример 8.8. Простая реализация Messa geListene r package com.ibm.itso.jms;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener; import javax.jms.TextMessage;

public class SimpleListener implements MessageListener {

public void onMessage(Message msg)

{

// Make sure that we have a text message if (msg instanceof TextMessage) {

// Cast the message to the correct type TextMessage txtMsg = (TextMessage)msg;

try

{

// Print the contents of the message System.out.println(txtMsg.getText()); }

catch (JMSException e) {

e.printStackTrace();

}

}

}

}

Экземпляр объекта-получателя запросов теперь может быть зарегистрирован клиентским JMS-приложением в объекте-получателе JMS-сообщений. После регистрации получателя запросов нужно запустить соединение, чтобы сообщения можно было доставлять получателю. Код, необходимый для регистрации получателя запросов в получателе JMS-сообщений показан в примере 8.9.

Пример 8.9. Получение JMS-сообщения с помощью метода приема import com.ibm.itso.jms.SimpleListener;

// Создание получателя сообщений

MessageConsumer msgConsumer = session.createConsumer(destination);

// Создание экземпляра получателя запросов

SimpleListener listener = new SimpleListener();

// Регистрация получателя запросов в получателе сообщений msgConsumer.setMessageListener(listener);

// Запуск соединения

conn1.start();

Примечание. В JMS-домене Точка-Точка сообщения остаются в пункте назначения до тех пор, пока их не получит получатель или пока не истечет срок их хранения. В домене Публикация/ Подписка сообщения остаются в пункте назначения до тех пор, пока они не будут доставлены всем зарегистрированным подписчикам или пока не истечет срок их хранения. Чтобы сообщение сохранялось в то время, когда приложение-подписчик недоступно, подписчик должен создать долгосрочную подписку. Обращайтесь за дополнительной информацией к разделу «Долгосрочные подписки в домене Публикация/Подписка».

  • Twitter
  • Одноклассники
  • ВКонтакте
  • FaceBook
  • ой Мир
« 8.2.9. Отправители JMS-сообщений
8.2.11. Обработка исключений в JMS »

Рубрики

  • Часть 1. Основы
  • Часть 2. Технический обзор
  • Часть 3. Профили
  • Часть 4. Основы администрирования
  • Часть 5. Использование скриптов
  • Часть 6. Конфигурирование ресурсов
  • Часть 7. Управление Web-серверами
  • Часть 8. Асинхронный обмен сообщениями

Свежие записи

  • 8.4.8. Наилучшие подходы к работе с MDB-компонентами
  • 8.4.7. Связывание компонента, управляемого сообщением, с пунктом назначения
  • 8.4.6. Конфигурационные свойства активации MDB-компонентов
  • 8.4.5. Компоненты, управляемые сообщениями, и транзакции
  • 8.4.4. Жизненный цикл компонента, управляемого сообщениями

Страницы

  • Авторское право
  • Команда
  • Главная
    • Дополнения
    • Примечание
  • Контакты
  • Оглавнение

Последние записи

  • 8.4.8. Наилучшие подходы к работе с MDB-компонентами
  • 8.4.7. Связывание компонента, управляемого сообщением, с пунктом назначения
  • 8.4.6. Конфигурационные свойства активации MDB-компонентов
  • 8.4.5. Компоненты, управляемые сообщениями, и транзакции
  • 8.4.4. Жизненный цикл компонента, управляемого сообщениями
  • 8.4.3. Реализация компонента, управляемого сообщениями
  • 8.4.2. Взгляд на компонент, управляемый сообщениями, со стороны клиента
  • 8.4.1. Типы компонентов, управляемых сообщениями
  • 8.4. Компоненты, управляемые сообщениями
  • 8.3.5.-8.3.8 Размещение конечной точки для сообщений

Свежие комментарии

  • Комментариев нет
  • Случайные записи

    • 7.2. Работа с Web-серверами
    • 3.6.2. Останов распределенной серверной среды
    • 8.1. Концепции обмена сообщениями
    • 6.2.5.1. Добавление и обновление настраиваемых свойств
    • 8.1.3. Назначение
    • 5.2.6.9. Пример 5.21 (создание сервисной интеграционной шины)
    • 4.1.3. Изменение периода ожидания для сеанса административной консоли
© 2012 Руководство по WebSphere Application Server
Дизайн : Roam2Rome | Локализация темы для wordpress goodwin
Копирование материалов с данного сайта возможно только при наличии индексируемой ссылки на данный ресурс.