Используя эту поддержку, можно компоновать приложение J2EE, объединяя набор изменений в одну транзакцию, то есть одну операцию, для того чтобы все включенные в транзакцию изменения были применены или отозваны. Это позволяет запускать приложение на сервере приложений, совместимом с J2EE (например, WebSphere Application Server), и обращаться к данным и транзакциям IMS согласованным способом. Управление глобальными транзакциями обеспечивает целостность данных в IMS.
При изменении защищенных ресурсов важно гарантировать правильность этих изменений. Например, как клиент банка вы хотите перевести деньги со сберегательного счета на текущий счет. Вам необходима уверенность в том, что сумма, списанная с одного счета, будет моментально добавлена на другой. Вы бы не хотели, чтобы данная транзакция была выполнена лишь частично, то есть деньги были бы списаны со сберегательного счета, но не были добавлены на текущий счет.
Другой пример: вы покупаете билет от Сан-Франциско до Парижа, но прямого рейса нет. Пока вам не удастся заказать билет от Сан-Франциско до Чикаго и от Чикаго до Парижа, вы не сможете отправиться в поездку. Вам придется "отозвать" решение о поездке в Париж, потому что билет только на часть пути до Парижа вас не устраивает.
В обоих примерах рассмотрена одна общая транзакция, состоящая из более мелких транзакций. Если одна из этих мелких транзакций не выполнена, нет необходимости в выполнении общей транзакции (например, переводе денег или поездке в Париж). Вместо этого нужно отозвать все шаги транзакции, для того чтобы ни одна из мелких транзакций не была зафиксирована. Для успешного перевода денег или поездки в Париж необходимо, чтобы мелкие транзакции управлялись и координировались совместно в ходе выполнения общей транзакции.
Для обеспечения скоординированного выполнения транзакций платформа J2EE (состоящая из сервера приложений J2EE, компонентов приложения J2EE и адаптера ресурсов архитектуры коннекторов J2EE) представляет распределенную среду обработки транзакций, в которой применяется прозрачное управление транзакциями, а ресурсы согласованно обновляются и восстанавливаются на различных платформах.
Сервер адаптера приложенрий, совместимый с J2EE (такой как WebSphere Application Server) управляет транзакциями с помощью администратора транзакцийJava также известного как внешний координатор. Он применяется для связи с компонентами приложения (например,сервлетамиJava или объектами Enterprise Java Beans) и администраторами ресурсов(например, IMS или DB2) через адаптеры ресурсов (например,адаптер ресурсов IMS TM).
Если транзакцией управляет администратор транзакций, то такая транзакция рассматривается как глобальная транзакция. Если администратор транзакций координирует выполнение транзакции с несколькими администраторами ресурсов, то внешний координатор использует протокол двухэтапной фиксации.
В предыдущем примере с банком требовалось перевести деньги со сберегательного счета на текущий счет. Если информация о сберегательном и текущем счетах находится у разных администраторов ресурсов (например, сберегательный счет находится в IMS, а текущий счет в DB2), то администратор транзакций на сервере приложений (WebSphere Application Server) поможет приложению скоординировать изменения IMS и DB2 с помощью двухэтапной фиксации. В частности, администратор транзакций применяет адаптер ресурсовIMS для управления изменениями в IMS.
Адаптер ресурсов IMS TM разработан для совместной работы с администратором транзакций Java на платформе J2EE, Resource Recovery Services (RRS) в z/OS и IMS Connect для внесения согласованных изменений в IMS и другие защищенные ресурсы.
Для участия в процессе двухэтапной фиксации с IMS, адаптером ресурсов IMS TM используется протокол точек синхронизации для уровня синхронизации IMS OTMA. Для участия в глобальной транзакции с двухэтапной фиксацией, в которой изменения запрашиваются у удаленного приложения, IMS использует RRS в z/OS.
С точки зрения IMS, RRS управляет обновлением и восстановлением ресурсов как "внешний координатор" или администратор точек синхронизации. Адаптер ресурсов IMS TM и IMS Connect взаимодействуют с администратором транзакций Java, запущенном на сервере приложений, и RRS в z/OS для того, чтобы глобальная транзакция, запущенная на платформе J2EE, могла согласованно обновляться вместе с IMS.
При настройке приложения J2EE для участия в глобальной транзакции необходимо выбрать один из двух протоколов связи, который будет применяться при взаимодействии IMS Connector for Java сIMS Connect. IMS Connector for Java иIMS Connect поддерживают два протокола связи: TCP/IP и Local Option.
В области глобальной транзакции компонент приложения J2EE может обращаться к транзакции IMS, установив соединение TCP/IP с IMS Connect. Для управления глобальной транзакцией и процессом двухэтапной фиксации адаптер ресурсов IMS TM взаимодействует с администратором транзакций Java через протокол X/Open (XA). Протокол XA определяет набор интерфейсов и взаимодействий, описывающих взаимодействие администратора транзакций Java и администратора ресурсов в среде обработки распределенной транзакции. Для внесения согласованных изменений, адаптер ресурсов IMS TM и IMS Connect используют протоколXA и используют IMS и Resource Recovery Services (RRS) в z/OS.
Ограничения: Необходимо, чтобы служба RRS была запущена в той же системеMVS, что иIMS Connect.
Информация о настройке RRS в системе IMS Connect приведена в руководстве IMS Connect Guide and Reference (SC27-0946). Дополнительную информацию о применении протокола TCP/IP для глобальной транзакций и процесса двухэтапной фиксации можно найти в разделах Платформы и протоколы и Среда двухэтапной фиксации.
Если компонент приложения J2EE запущен на сервере WebSphere Application Server for z/OS, то можно отправлять сообщения транзакции IMS по протоколу Local Option и участвовать в глобальной транзакции. Обработкой транзакции управляют Resource Recovery Services (RRS) в z/OS и WebSphere Application Server for z/OS. IMS Connector for Java совместим с RRS и разработан специально для работы с RRS, поэтому он может работать совместно с администратором транзакцийJava в WebSphere иIMS, в качестве администратора ресурсов, что позволяетвносить согласованные изменения в защищенные ресурсы. Адаптер ресурсовIMS TM не использует протокол XA при выполнении глобальной транзакции с помощью Local Option.
Дополнительную информацию о применении протокола Local Option в глобальных транзакциях и процессе двухэтапной фиксации можно найти в разделах Платформы и протоколы связи, Предварительные требования для двухэтапной фиксации и Среда двухэтапной фиксации.
Локальная транзакция
В архитектуре соединений J2EE определен интерфейс javax.resource.cci.LocalTransaction, который позволяет администратору ресурсов локально управлять транзакцией вместо администратора транзакций. Однако адаптер ресурсов IMS TM поддерживает управление тразакцией только через администратор транзакций. Таким образом, IMS Connector for Java не поддерживает интерфейс javax.resource.cci.LocalTransaction. При вызове метода IMSConnection.getLocalTransaction() возникает исключительная ситуация NotSupportedException. Для использования поддержки транзакций с помощью адаптера ресурсов IMS TM, необходимо либо использовать интерфейс транзакций JTA, либо задать соответствующий атрибут транзакции в файле описания приложения. Более подробную информацию можно найти в разделе Применение поддержки глобальных транзакций в приложениях.
Одноэтапная фиксация
Адаптер ресурсов IMS TM поддерживает одноэтапную фиксацию с помощью администратора транзакций. Это означает, что если все изменения в области транзакции принадлежат одному ресурсу IMS, администратор транзакций может выполнить одноэтапную фиксацию, при которой запрос на фиксацию изменений сразу отправляется администратору ресурсов, минуя запрос на подготовку.
Обработка неглобальной транзакции
Если в приложении не обрабатываются глобальные транзакции (например, если атрибуту транзакций присвоено значение TX_NOTSUPPORTED), то для обработки всех неглобальных транзакций используется "Синхронизация при возврате" (OTMA SyncLevel=None). К тому моменту, когда фиксация транзакции IMS завершается, вывод уже возвращен клиенту.
Обработка диалоговых транзакций в области глобальных транзакций
IMS использует диалоговую программу для того, чтобы разделить обработку на ряд взаимодействий (итераций) клиент-программа-клиент. Каждая итерация - это разновидность диалоговой транзакции IMS. Диалоговая обработка используется тогда, когда транзакция состоит из нескольких частей. Каждая часть, составляющая одну большую транзакцию, фиксируется или откатывается отдельно.
Более подробная информация о поддержке глобальных транзакций приведена на Web-cтранице адаптера ресурсов IMS TM. Откройте Web-сайт www.ibm.com/ims и щелкните на ссылке Hints and Tips на странице поддержки.