Модель программирования send only - только отправить

Эта модель программирования позволяет проводить транзакцию IMS в режиме без ответа.

Для запуска транзакции в режиме без ответа в IMS TM, приложением Java выполняется взаимодействиеSYNC_SEND. Приложением предоставляется значение SYNC_SEND для свойства interactionVerb и значение 0 для свойства commitMode объекта IMSInteractionSpec, используемого методом выполнения.

При вызове приложением Java взаимодействия SYNC_SEND адаптер ресурсов IMS отправляет запрос в IMS через IMS Connect и не ожидает ответа от IMS. Поскольку адаптер ресурсов IMS "только отправляет" данные системе IMS, взаимодействие SYNC_SEND обычно используется в транзакциях в режиме без ответа.

Для использования взаимодействия SYNC_SEND в транзакции приложение должно указать значение SYNC_SEND для свойства interactionVerb и значение 0 для свойства commitMode объекта IMSInteractionSpec, используемого методом выполнения. Способ выполнения взаимодействия SYNC_SEND зависит от типа соединения с сокетом (оно может быть общим или выделенным) и типа выполняемой транзакции IMS.

Прим.: Свойства purgeAsycOutput, reRoute и reRouteName объекта IMSInteractionSpec не применяются к взаимодействиям SYNC_SEND, поэтому IMS Connector for Java их игнорирует.

Модель обработки для общих постоянных сокетов

Следующие сценарии описывают взаимодействие SYNC_SEND через общий постоянный сокет для разных типов транзакций.
  • Транзакция в режиме без ответа

    Приложение IMS, связаное с транзакцией, для которой в IMS настроен режим без ответа, обычно не добавляет сообщение вывода в I/O PC; поэтому такие сообщения не создаются и не помещаются в очередь TPIPE.

  • Транзакция в режиме с ответом

    Приложение IMS, связанное с транзакцией, для которой в IMS настроен режим без ответа, обычно добавляет сообщение вывода в I/O PCB. Поскольку адаптер ресурсов IMS TM не ожидает ответа при взаимодействии SYNC_SEND, любые добавляемые сообщения вывода помещаются в очередь TPIPE с именем, совпадающим с ИД клиента. Для получения ответа взаимодействия SYNC_SEND можно использовать взаимодействия SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT и SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT, запустив их сразу после SYNC_SEND в том же приложении и том же соединении.

  • Транзакции (как с ответом, так и без), вызывающие прикладную программу IMS, которая добавляет сообщение в альтернативный PCB
    Для извлечения сообщения, помещенного в альтернативный PCB, необходимо запустить взаимодействие по соединению с выделенным постоянным сокетом. Для добавления этого сообщения, выполните следующие действия:
    1. Настройте значение TRUE для свойства CM0Dedicated фабрики соединений.
    2. Задайте следующие значения для объекта IMSInteractionSpec взаимодействия:
      • interactionVerb=SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
      • commitMode=0
      • clientID= имя альтернативного PCB

Модель обработки для выделенных постоянных сокетов

Следующие сценарии описывают взаимодействие SYNC_SEND через выделенный постоянный сокет для разных типов транзакций. Взаимодействия SYNC_SEND используют режим фиксации 0. Это существенно, так как соединения с выделенным постоянным сокетом можно использовать только для взаимодействий в режиме фиксации 0.
  • Транзакция в режиме без ответа

    Прикладная программа IMS, связанная с транзакцией, для которой в IMS настроен режим без ответа, обычно не добавляет сообщение вывода в I/O PCB, поэтому такие сообщения не создаются и не помещаются в очередь TPIPE.

  • Транзакция в режиме с ответом

    Прикладная программа IMS, связанная с транзакцией, для которой в IMS настроен режим с ответом, обычно добавляет сообщение вывода в I/O PCB. Поскольку адаптер ресурсов IMS TM не ожидает ответа при взаимодействии SYNC_SEND, любые добавляемые сообщения вывода помещаются в очередь TPIPE с именем, совпадающем с ИД клиента, заданным для взаимодействия. Сообщения, сохраненные в TPIPE этого типа, можно извлекать с помощью взаимодействий SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT. Имя TPIPE - это ИД клиента, указанный для взаимодействия SYNC_SEND. ИД клиента всегда задается при настройке соединения с выделенным постоянным сокетом.

  • Транзакции (как с ответом, так и без), вызывающие приложение IMS, которое добавляет сообщение в альтернативный PCB
    Для извлечения сообщения, помещенного в альтернативный PCB, необходимо запустить взаимодействие по соединению с выделенным постоянным сокетом. Выполните следующие действия:
    1. Настройте значение TRUE для свойства CM0Dedicated фабрики соединений.
    2. Задайте следующие значения для объекта IMSInteractionSpec взаимодействия:
      • interactionVerb=SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
      • commitMode=0
      • clientID= имя альтернативного PCB

Комментарии