Настройка свойства IMSInteractionSpec

Для взаимодействия с IMS нужен настроенный объект IMSInteractionSpec.

При взаимодействии приложения Java с IMS объект IMSInteractionSpec должен быть настроен. Значения свойств IMSInteractionSpec описывают взаимодействие с IMS. Значения свойств IMSInteractionSpec можно задавать непосредственно с помощью методов установки или с помощью мастера IDE, генерирующего код для приложения. Свойства могут быть либо только ввода, либо ввода и вывода, либо только вывода. Дополнительную информацию о взаимодействии дает опрос приложением Java (другое название - элемент приложения) свойств вывода.

Ниже описаны все свойства объекта IMSInteractionSpec:

altClientID
Свойство ввода; задает альтернативный ИД клиента. Это имя будет использоваться в качестве TPIPE, откуда получают асинхронный вывод при соединении с общим постоянным сокетом.
Свойство поддерживается со следующими критериями:
  • Соединение TCP/IP с общим постоянным сокетом
  • Правильные команды взаимодействия для получения сообщений асинхронного вывода (resumeTpipe request): SYNC_RECEIVE_ASYNCOUTPUT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT и SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
  • Взаимодействие в режиме фиксации 0 - не используется с Local Option
  • Не используется для соединений с выделенным сокетом
  • Имя перенаправления и альтернативный ИД клиента являются взаимоисключающими, их нельзя указывать одновременно
asyncOutputAvailable
Это свойство вывода. С его помощью приложение на Java может определить, доступен ли вывод в связанном с соединением TPIPE для взаимодействия с режимом фиксации 0. В случае соединения с выделенным постоянным сокетом свойство clientID объектаIMSConnectionSpec принимает значение имени TPIPE. В случае соединения с общим постоянным сокетом имя TPIPE генерируется IMS Connector for Java. Значение asyncOutputAvailable равно true, если в очереди есть сообщения. Свойство asyncOutputAvailable не задается приложением во вводе. Примечание: Если ваше приложение на Java использует значение этого свойства, оно должно экспортироваться как свойство вывода IMSInteractionSpec.
convEnded
Это свойство вывода. С его помощью приложение на Java может определить, завершён ли диалог (true). Свойство convEnded не задается приложением во вводе. Примечание: Если ваше приложение на Java использует значение этого свойства, оно должно экспортироваться как свойство вывода IMSInteractionSpec.
commitMode
Используется адаптером ресурсов IMS TM для указания типа фиксации для транзакции IMS. За дополнительной информацией обратитесь к разделу Обзор режимов фиксации. Свойство commitMode может принимать значения 0 и 1, если interactionVerb равен SYNC_SEND_RECEIVE. Если interactionVerb равен SYNC_RECEIVE_ASYNCOUTPUT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT или SYNC_SEND, IMS Connector for Java использует режим фиксации 0. Режим фиксации 1 обязателен в том случае, если interactionVerb равен SYNC_END_CONVERSATION.
Если для взаимодействия используется режим фиксации 0 и общий постоянный сокет, то свойство clientID задавать не следует. В этом случае сообщение вывода транзакции можно либо удалять, либо перенаправлять в другое расположение. Недоставленный вспомогательный вывод, создаваемый при переключении между программами, также может удаляться или перенаправляться.
Если для взаимодействия используется соединение с выделенным постоянным сокетом, то режим фиксации должен быть равен 0, и должно быть задано свойство clientID объекта IMSConnectionSpec. Недоставленные сообщения ввода всегда можно восстановить. Их нельзя удалять или перенаправлять.
socketTimeout
Максимальное время ожидания ответа от IMS Connect, по истечении которого IMS Connector for Java отсоединяется от сокета и возвращает приложению клиента сообщение об исключительной ситуации. Значение socketTimeout указывается в миллисекундах. Для включения тайм-аута значение свойства должно быть больше нуля. Если оно не определено или равно нулю, ограничение отключается. Дополнительная информация приведена в разделах Тайм-аут сокета и Настройка тайм-аута сокета.
executionTimeout
Максимальное время, в течение которого IMS Connect должен отправить сообщение системе IMS и получить от нее ответ. Тайм-аут выполнения указывается в миллисекундах и может принимать значение -1 или значения из диапазона от 1 до 3600000, включительно. Иными словами, значение executionTimeout должно быть больше нуля и не должно превышать один час. Если значение равно -1, время выполнения транзакции не ограничено. За дополнительной информацией обратитесь к разделам Тайм-аут выполнения, Задание тайм-аута выполнения и Допустимые значения тайм-аута выполнения.
imsRequestType
Задает тип запроса IMS и определяет способ обработки вывода адаптером ресурсов IMS TM. Целочисленные значения:
Значение Именованная константа в IMSInteractionSpecProperties Описание
1

IMS_REQUEST_TYPE_IMS_
TRANSACTION

Запрос является транзакцией IMS. Сообщение вывода заполняется обычным выводом транзакции IMS. Если IMS возвращает сообщение "DFS", адаптер ресурсов IMS генерирует исключительную ситуацию IMSDFSMessageException, содержащую сообщение "DFS".

Значение imsRequestType используется для приложений, которые не были сгенерированы с помощью компонента поддержки MFS WebSphere Studio.

2 IMS_REQUEST_TYPE_IMS_COMMAND Запрос является командой IMS. Сообщение вывода заполняется выводом команды IMS, в том числе сообщениями "DFS". Исключительная ситуация IMSDFSMessageException не генерируется.

Это значение свойства imsRequestType используется для приложений, отправляющих команды IMS.

3

IMS_REQUEST_TYPE_MFS_
TRANSACTION

Значение imsRequestType используется для приложений, сгенерированных компонентом поддержки MFS WebSphere Studio.

Сообщение вывода заполняется обычным выводом транзакции IMS и сообщениями "DFS". Исключительная ситуация IMSDFSMessageException не генерируется.

interactionVerb
Режим взаимодействия между приложением на Java и IMS. Значения, поддерживаемые адаптером ресурсов IMS TM:
Значение Именованная константа в IMSInteractionSpecProperties Описание
0 SYNC_SEND Адаптер ресурсов IMS TM отправляет запрос клиента IMS через IMS Connect и не ожидает ответа от IMS. При взаимодействии SYNC_SEND клиент не требует ответа от IMS. Опция SYNC_SEND поддерживается как на общих, так и на выделенных постоянных сокетах и доступна только в режиме фиксации 0. Если interactionVerb равен SYNC_SEND, значения тайм-аутов выполнения и сокета игнорируются. Примечание: imsRequest типа 2 несовместим с SYNC_SEND, и его использование в этом случае приведет к возникновению исключительной ситуации.
1 SYNC_SEND_RECEIVE Взаимодействие IMS отправляет запрос в IMS и получает ответ в синхронном режиме. Обычно взаимодействие SYNC_SEND_RECEIVE выполняется в виде недиалоговой транзакции IMS, в рамках которой в IMS отправляется запись ввода (сообщение ввода транзакции IMS), а IMS возвращает запись вывода (сообщение вывода транзакции IMS). Взаимодействия SYNC_SEND_RECEIVE также используются для итераций диалоговых транзакций IMS. Для последних требуется режим фиксации 1. Недиалоговые транзакции могут выполняться в обоих режимах. Если режим 0 используется в сочетании с выделенным постоянным сокетом, то должно быть задано свойство clientID объекта IMSConnectionSpec. Если режим 0 используется в сочетании с общим постоянным сокетом, то свойство clientID объекта IMSConnectionSpec не должно быть задано.
3 SYNC_END_CONVERSATION Если приложение выполняет взаимодействие, указав в свойстве interactionVerb значение SYNC_END_CONVERSATION, адаптер ресурсов IMS TM отправляет сообщение для принудительного завершения диалоговой транзакции IMS.

Свойства commitMode и clientID объекта InteractionSpec при этом игнорируются.

4 SYNC_RECEIVE_ASYNCOUTPUT Значение interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT может применяться для соединений с общим и выделенным постоянным сокетом. Значение SYNC_RECEIVE_ASYNCOUTPUT предназначено для получения недоставленного асинхронного вывода. Если значение SYNC_RECEIVE_ASYNCOUTPUT используется в сочетании с выделенным постоянным сокетом, то необходимо указать свойство clientID объекта IMSConnectionSpec.

Взаимодействие SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT должно выполняться тем же приложением, что и взаимодействие SYNC_SEND или SYNC_SEND_RECEIVE, вывод которого запрашивается, и должно выполняться на том же общем постоянном соединении. Обычно такое взаимодействие требуется после тайм-аута выполнения.

С помощью взаимодействия такого типа клиент Java может получить только одно сообщение. Если в очереди асинхронного вывода IMS OTMA нет сообщений для переданного в запросе clientID, то другие попытки получить сообщение не предпринимаются. Никакое сообщение не возвращается. Через время, указанное в свойстве executionTimeout взаимодействия SYNC_RECEIVE_ASYNCOUTPUT, будет сообщено о тайм-ауте.

5

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

interactionVerb

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

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

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

должно выполняться тем же приложением, что и взаимодействие SYNC_SEND или SYNC_SEND_RECEIVE, вывод которого запрашивается, и должно использовать то же общее постоянное соединение. Обычно такое взаимодействие требуется после тайм-аута выполнения.
С помощью взаимодействия такого типа клиент Java может получить только одно сообщение. Если в очереди асинхронного вывода IMS OTMA нет сообщений для переданного в запросе clientID, то другие попытки получить сообщение не предпринимаются. Через время, указанное в свойстве executionTimeout взаимодействия

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

, будет сообщено о тайм-ауте.
Примечание: Значения interactionVerbs, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT и

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

равносильны. Однако рекомендуется использовать

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

6

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

interactionVerb

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

предназначено для получения асинхронного вывода. Оно допустимо для соединений с общим и выделенным постоянным сокетом.
Взаимодействие

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

должно выполняться тем же приложением, что и взаимодействие SYNC_SEND или SYNC_SEND_RECEIVE, вывод которого запрашивается, и должно использовать то же общее постоянное соединение. Обычно такое взаимодействие требуется после тайм-аута выполнения.
С помощью взаимодействия такого типа клиент Java может получить только одно сообщение. Если в очереди асинхронного вывода IMS OTMA нет сообщений для переданного в запросе clientID, то IMS Connect ждет, пока OTMA вернет сообщение. Время ожидания IMS Connect ограничено значением свойства executionTimeout взаимодействия

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT,

и в случае его превышения генерируется исключительная ситуация.

Значения SYNC_RECEIVE (2) архитектуры соединения J2EE (JCA) не поддерживаются.

ltermName
Имя LTERM. Имеет больший приоритет, чем поле LTERM I/O PCB прикладной программы IMS. За дополнительной информацией обратитесь к книге IMS Connect User's Guide and Reference (SC27-0946-23).

Это свойство позволяет приложению клиента указать собственное имя LTERM. Оно будет находиться в I/O PCB прикладной программы IMS, и на его основе приложение IMS будет принимать соответствующие решения.

Это свойство позволяет приложению клиента указать собственное имя LTERM. Оно будет находиться в I/O PCB прикладной программы IMS, и на его основе приложение IMS будет принимать соответствующие решения.

mapName
Поле mapName обычно содержит имя управляющего блока MFS (Message Format Service). MFS - это компонент IMS, ответственный за форматирование сообщений ввода и вывода. Поскольку IMS Connect использует IMS OTMA при обращении к IMS, форматирование средствами MFS не выполняется. Однако поле mapName по-прежнему может использоваться приложением на Java для передачи имени управляющего блока MFS прикладной программе IMS, либо для получения такого имени от прикладной программы IMS.

Во вводе значение mapName обычно совпадает с именем дескриптора вывода MFS, или "MOD". Имя MOD передаётся прикладной программе IMS в I/O PCB.

В выводе значение mapName всегда равно имени описателя вывода MFS, или "MOD". Это имя MOD, указанное прикладной программой IMS при добавлении сообщения вывода транзакции в I/O PCB.

Примечание: Поле mapName не должно использоваться приложениями на Java, работающими со службами, ввод и вывод которых создается компонентом поддержки MFS WebSphere Studio.

Во вводе значение mapName обычно совпадает с именем дескриптора вывода MFS, или "MOD". Имя MOD передаётся прикладной программе IMS в I/O PCB.

В выводе значение mapName всегда равно имени описателя вывода MFS, или "MOD". Это имя MOD, указанное прикладной программой IMS при добавлении сообщения вывода транзакции в I/O PCB.

Поле mapName не должно использоваться приложениями на Java, работающими со службами, ввод и вывод которых создается компонентом поддержки MFS WebSphere.

purgeAsyncOutput
Это свойство ввода. Оно позволяет включить очистку недоставленного вывода в IMS Connect.

Это свойство предназначено только для взаимодействий, использующих команду взаимодействия IMS SYNC_SEND_RECEIVE и соединение с общим постоянным сокетом. Его нельзя указывать для взаимодействий, использующих соединения с выделенным постоянным сокетом. Данное свойство относится к взаимодействиям с режимом фиксации 0. Оно не применяется для взаимодействий с режимом фиксации 1. При переключении между программами в рамках взаимодействия с режимом фиксации 1 новая программа будет работать в режиме фиксации 0 и, следовательно, будет использовать это свойство.

Если свойство purgeAsyncOutput не задано для взаимодействия SYNC_SEND_RECEIVE, использующего соединение с общим постоянным сокетом, то по умолчанию применяется значение TRUE, то есть выполняется очистка следующих сообщений вывода:
  • недоставленные сообщения вывода, помещенные в I/O PCB главным приложением IMS.
  • Сообщения вывода, помещенные в I/O PCB вспомогательными приложениями IMS, вызванными путем переключения с программы на программу.
reRoute
Это свойство ввода.

Это свойство предназначено только для взаимодействий, использующих команду взаимодействия IMS SYNC_SEND_RECEIVE и соединение с общим постоянным сокетом. Его нельзя указывать для взаимодействий, использующих соединения с выделенным постоянным сокетом. Данное свойство относится к взаимодействиям с режимом фиксации 0. Оно не применяется для взаимодействий с режимом фиксации 1. При переключении между программами в рамках взаимодействия с режимом фиксации 1 новая программа будет работать в режиме фиксации 0 и, следовательно, будет использовать это свойство. Это свойство определяет, следует ли перенаправлять недоставленный вывод в целевое расположение, указанное в поле reRouteName. Если reRoute равно TRUE, то асинхронный вывод не помещается в очередь TPIPE, связанную с автоматически созданным clientID. Вместо этого он записывается в целевое расположение, заданное в поле reRouteName. По умолчанию это свойство равно FALSE.

Если значение TRUE присвоено как reRoute, так и purgeAsyncOutput, то генерируется исключительная ситуация.

reRouteName
Имя целевого расположения, в которое записывается асинхронный вывод. Оно используется только в том случае, если reRoute равно TRUE. Если reRoute равно FALSE, свойство reRouteName игнорируется.
Если свойство reRoute равно TRUE, но свойство reRouteName не определено, то используется следующее значение:
  1. Значение из файла конфигурации IMS Connect.
  2. Если в этом файле не задано значение свойства, то используется значение "HWS$DEF".
Допустимое значение свойства reRouteName:
  • Должно являться строкой из 1-8 алфавитно-цифровых (A-Z, 0-9) или специальных (@,#,$) символов.
  • Не должно начинаться с "HWS".
  • Не должно совпадать с номером порта IMS Connect.
  • Строчные буквы при указании автоматически заменяются на прописные.

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

syncLevel
Это свойство ввода. syncLevel - это степень синхронизации взаимодействия между IMS Connector for Java и IMS OTMA. Допустимые значения synch level - 0 (NONE) и 1 (CONFIRM). Свойство syncLevel применяется только для значений SYNC_SEND_RECEIVE и SYNC_SEND свойства interactionVerb и используется вместе со свойством commitMode. Предназначено как для диалоговых, так и для недиалоговых приложений.
Режим фиксации 1
Действительны значения Sync Level 0 и 1, стандартное значение -  0. Например, если для свойства interactionVerb задано значение SYNC_SEND_RECEIVE, а для свойства commitMode - значение 1, то устанавливать свойство syncLevel не нужно. При передаче методу setSyncLevel(int) значения, отличного от 0 или 1, наступает исключительная ситуация.  
Режим фиксации 0
Действительно только значение Sync Level 1. В данном режиме фиксации нет необходимости устанавливать Sync Level. При передаче методу setSyncLevel(int) значения, отличного от 1, наступает исключительная ситуация.
Программы, которые активируются при переключении с программы на программу, всегда обрабатываются как режим фиксации 1, независимо от Sync Level исходной программы. По этой причине вспомогательный вывод от этих программ может быть поставлен в очередь для перенаправления или удален, в зависимости от значения свойств reRoute и purgeNotDeliverable в исходном взаимодействии.

Комментарии