Если приложение Java генерирует ответ на вывод и необходимо связать ответ с исходным запросом синхронного внешнего вызова, за это отвечает приложение IMS.
Для асинхронных внешних вызовов связывание можно осуществить, определив
некоторые данные, например идентификатор сообщения или уникальный ИД запроса, в
запросе внешнего вызова, которые можно связать с исходным входным сообщением.
Для синхронных внешних вызовов следует использовать маркер соответствия,
передаваемый вместе с сообщением внешнего вызова.
На следующей диаграмме показаны высокоуровневые операции приема
приложением не MDB запроса внешнего вызова IMS и отправки ответа на него.
Рис. 1. Обработка приема запроса синхронного внешнего вызова IMS приложением не MDB и ответа на него
- Приложение Java™ отправляет запрос
SYNC_RECEIVE_CALLOUT к OTMA tpipe TP1.
- Приложение IMS отправляет вызов DL/I
ICAL с подфункцией SENDRECV и указывает имя дескриптора целевого расположения OTMA и значение тайм-аута.
- IMS OTMA доставляет сообщение запроса в IMS TM через IMS Connect. Вместе
с запросом внешнего вызова отправляется маркер соответствия.
- Приложение Java принимает сообщение запроса внешнего вызова и маркер соответствия. После обработки запроса приложение Java
отправляет ответное сообщение и маркер соответствия назад в
IMS с помощью запроса SYNC_SEND.
Используя маркер соответствия, IMS направляет ответное сообщение в соответствующий экземпляр транзакции IMS.