Извлечение асинхронного вывода без альтернативного ИД клиента при использовании соединений с общим постоянным сокетом

Извлечение асинхронного вывода необходимо выполнять по тому же соединению, что и предыдущее взаимодействие, если не задан альтернативный ИД клиента.

Об этой задаче

Приложение-клиент может извлекать только не перенаправленные сообщения асинхронного вывода, полученные в результате взаимодействия по соединению с общим постоянным сокетом без использования альтернативного ИД клиента путем выполнения взаимодействия SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT. Эти взаимодействия должны находиться на том же соединении общего постоянного сокета, где взаимодействие с того же приложения привело к постановке асинхронных выводов в очередь.

В приведенной ниже таблице показан характер взаимодействия, называемого "извлечение сообщений асинхронного вывода" (resume tpipe) с различными заданными значениями свойств.
Табл. 1. Характер взаимодействий resume tpipe с разными значениями свойств IMSConnectionSpec
Взаимодействие Сокет ИД клиента Имя смены маршрутизации Альтернативный ИД клиента Замечания
resume tpipe без указания альтернативного ИД клиента Общий пусто пусто пусто Извлечение асинхронного вывода необходимо выполнять по тому же соединению, что и предыдущее взаимодействие. Иначе извлечение асинхронного вывода будет невозможно. Если извлечение данных не было выполнено, сообщение будет потеряно.
resume tpipe без указания альтернативного ИД клиента Общий пусто myRR пусто Извлечение асинхронного вывода необходимо выполнять по тому же соединению, что и предыдущее взаимодействие. Если извлечение данных не было выполнено, сообщение будет перенаправлено в myRR.
resume tpipe с указанием альтернативного ИД клиента Общий пусто нд myTpipe Получение асинхронных сообщений выполняется по каналу tpipe myTpipe. Свойства reRouteName и altClientID являются взаимоисключающими, поэтому их нельзя указывать одновременно.
resume tpipe Выделенный myCID нд нд Получение асинхронных сообщений осуществляется с помощью ИД клиента myCID.

Для соединений с общим постоянным сокетом для взаимодействия SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT IMS TM автоматически устанавливает значение режима фиксации, равное 0, независимо от установленного для данного взаимодействия в IMSInteractionSpec. Такое поведение отличается от характера изменений для взаимодействий SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT или SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT с использованием соединений с выделенным постоянным сокетом. Для соединений с выделенным сокетом, режим фиксации необходимо вручную установить равным 0.


Комментарии