Эта программная модель позволяет извлекать выходные данные, которые были поставлены в очередь
IMS.
Для используемого приложения может понадобиться вывод данных, которые были поставлены в очередь ранее. Такой вывод данных называется асинхронный вывод.
Асинхронный вывод выполняется в следующих ситуациях:
например, это могут быть непереданные данные взаимодействий в режиме фиксации 0, выходные данные от межпрограммных переключателей,
передача выходных данных вызовов ISRT в альтернативный блок процессов (PCB), выходные данные приложения
IMS, возвращающего многочисленные исходящие
сообщения.
Для получения асинхронного вывода приложением Java™
выполняется взаимодействие SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT. Приложением предоставляется значение для свойства interactionVerb
и значение 0 для свойства commitMode объекта IMSInteractionSpec, используемого методом
выполнения взаимодействия.
Для асинхронного вывода данных можно использовать два типа соединений с сокетами: постоянный общий сокет и
постоянный выделенный сокет. Способ получения исходящих асинхронных сообщений зависит от
используемого типа соединения с сокетом. Для асинхронного вывода могут быть использованы следующие значения
свойства interactionVerb:
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
Совет: Команда SYNC_RECEIVE_ASYNCOUTPUT устарела в IMS TM версии
10 и заменена на SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT.
Разница между SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT и
SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT заключается в том, каким образом IMS Connect
проверяет наличие вывода в очереди асинхронной блокировки IMS OTMA.
- В случае использования взаимодействий SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT при отсутствии асинхронного вывода в
в очереди асинхронной блокировки IMS OTMA,
на момент получения запроса извлечения IMS Connect
выдает уведомление о тайм-ауте выполнения, как только истекает время, указанное в клиентском приложении как значение
тайм-аута выполнения.
Рекомендация: Для взаимодействий SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
задайте минимальное значение тайм-аута выполнения, равное 10.
- В случае использования взаимодействий SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT, как только истекает время, указанное в клиентском приложении
как значение тайм-аута выполнения, при отсутствии асинхронного вывода в очереди блокировки
IMS Connect выдает уведомление о тайм-ауте выполнения.
В других случаях IMS Connect возвращает первое выводимое сообщение,
которое было помещено в очередь.
Рекомендация: Для взаимодействий SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
выберите оптимальное значение тайм-аута, а не минимальное допустимое значение.
Программная модель асинхронного вывода может быть использована для соединений
общего постоянного сокета или выделенного постоянного сокета, также требуется установить режим фиксации 0. Кроме того, свойства IMSInteractionSpec -
purgeAsycOutput, reRoute, и reRouteName - не применяются и будут проигнорированы, если
для какого-либо из этих значений установлено свойство interactionVerb.
При использовании соединений с выделенным и общим постоянным сокетом применяются различные способы вызова свойства interactionVerb.