Процедура передачи сообщений с запросами асинхронных внешних вызовов

Сообщение асинхронного внешнего вызова помещается в очередь блокировки и ожидает, пока его заберет внешнее приложение или служба. Если ожидается ответ, внешнее приложение выполняет обычную транзакцию IMS для передачи выходных данных в соответствующее приложение IMS.
На следующем рисунке показан типичный поток сообщений асинхронного вызова:
Рис. 1. Процедура передачи сообщений с запросами асинхронных внешних вызовов
На этой диаграмме показан поток сообщений для асинхронного внешнего вызова.
  1. В WebSphere Application Server запускается приложение Java™, которое устанавливает общее постоянное соединение с IMS Connect с помощью IMS TM. Приложение выполняет взаимодействие SYNC_RECEIVE_CALLOUT, указав значение тайм-аута и имя tpipe в качестве значения альтернативного ИД клиента. В свою очередь, IMS TM отправляет запрос RESUME TPIPE в tpipe и ожидает запрос внешнего вызова от IMS Connect.
  2. Инициирующий клиент, например, терминал или IMS Connect или клиент OTMA, запускает приложение IMS.
  3. Приложение IMS отправляет вызов ISRT ALTPCB дескриптору целевого расположения OTMA, содержащему имя tpipe расположения. Сообщение с запросом внешнего вызова помещается в очередь в данном tpipe.
  4. Если запрос внешнего вызова недоступен во время выполнения SYNC_RECEIVE_CALLOUT, IMS TM блокируется, и объект ожидает прихода сообщения внешнего вызова до истечения тайм-аута. Как только запрос внешнего вызова доступен в tpipe, IMS Connect доставляет сообщение внешнего вызова в IMS TM.
  5. IMS TM получает сообщение запроса внешнего вызова и возвращает запрос внешнего вызова объекту. Объект EJB обрабатывает запрос внешнего вызова.
  6. Если объект получает данные ответа, которые необходимо переслать обратно в IMS, он отправляет обычный запрос транзакции IMS с выходными данными соответствующему приложению IMS.

Комментарии