Диалоговые программы

Программой IMS поддерживается как транзакция, состоящая из одного этапа, так и транзакция, состоящая из нескольких этапов. Последняя называется диалоговой транзакцией.

В большинстве разделов настоящей документации под термином транзакции IMS мы подразумеваем недиалоговые транзакции, выполнение которых состоит из одного этапа. В противоположность им, диалоговая программа IMS выполняет обработку транзакций, состоящих из нескольких этапов. Адаптером ресурсов IMS TM поддерживаются оба вида транзакций. Настоящий же раздел посвящен именно последнему типу, как особому виду транзакций IMS.

Диалоговая программа IMS позволяет разделить обработку на ряд взаимодействий клиент-программа-клиент. Диалоговая программаIMS получает сообщения от клиента, обрабатывает запросы и направляет ответ клиенту. Кроме того, программа сохраняет промежуточные данные транзакции во временной рабочей области (scratch pad area - SPA). В случае ввода пользователем дополнительных данных, полученных от клиента, диалоговая программа IMS продолжит обработку запроса, используя данные из последнего сообщения, сохраненного в SPA.

Благодаря диалоговой поддержке IMS Connector for Java, при взаимодействии с диалоговой транзакцией IMS клиент, как правило, использует одно из двух перечисленных ниже приложений: В случае с приложениями Web, пользователь работает в одном и том же браузере для выполнения ряда запросов, повторяющихся для различных взаимодействий диалога IMS Conversation. Согласно требованиям IMS Connect, все итерации диалога должны происходить в одном и том же соединении. Сервлет Java получает входной запрос от браузера и, используя классы IMS Connector for Java, направляет запрос о диалоговой транзакции в IMS Connect через протокол связи TCP/IP. После этого IMS Connect направляет запрос о транзакции в OTMA и в IMS и вносит проведение диалоговой транзакцииIMS в расписание задач. Таким образом создается новый диалог IMS. Приложение IMS обрабатывает запрос и направляет результат обработки обратно сервлету Java через IMS Connect и систему диалоговой поддержки IMS Connector for Java. Сервлет Java загружает соответствующую страницу JavaServer для отображения данных вывода и просмотра их пользователем в окне браузера.

Если на последней итерации диалог не был завершен, или если приложение не выдаст запрос end conversation - окончание диалога (возможно, из-за того, что браузер был закрыт до окончания диалога), то диалог IMS и связанное с ним хранение данных IMS останутся в системе на длительное время. Такой потерянный диалог IMS может помешать системе в выполнении оперативных изменений. Узнать, есть ли в системе потерянные диалоги IMS, можно с помощью команды /DISPLAY CONV. Потерянный диалог IMS можно завершить только путем перезапуска системы IMS. Список команд IMS, поддерживаемых OTMA см. Commands Supported from LU 6.2 Devices and OTMA not currently supported section of Chapter 1. IMS Command Language in the IMS V9 Command Reference. Обратите внимание: некоторые команды IMS, например /EXIT, /HOLD и /RELEASE, используемые в диалоговых транзакциях IMS, не поддерживаются OTMA. Во избежание такой ситуации рекомендуется использовать тайм-ауты (подобные тайм-ауту сеанса EJB).

Если не указано иное, в документации по IMS Connector for Java и примерах подразумевается выполнение недиалоговых транзакций и программ (приложений) IMS.


Комментарии