Рассмотрены способы вызова исходящих приложений на сервере WebSphere Application Server с помощью WebSphere Optimized Local Adapters.
С помощью API WebSphere Optimized Local Adapter для приема запросов (BBOA1RCV) или службы хоста (BBOA1SRV) любое приложение можно сделать доступным для приложений Java на сервере WebSphere Application Server (для вызова применяются методы JCA). Дополнительная информация о применении этих API приведена в разделе Оптимизированные локальные адаптера для API z/OS.
Приложения, работающие в среде CICS, IMS, USS или в пакетной среде z/OS могут использовать API WebSphere Optimized Local Adapter для работы в качестве серверов WebSphere Optimized Local Adapter, принимая запросы от WebSphere Application Server.
Сервер связей WebSphere Optimized Local Adapter представляет собой приложение, которое запускается в области CICS и выполняет роль сервера или посредника для вызовов существующих программ CICS. В этом случае приложение WebSphere Application Server вызывает существующие программы CICS с помощью EXEC CICS LINK. Для передачи и возврата данных применяется область связи (COMMAREA) или канал и контейнер.
По умолчанию WebSphere Optimized Local Adapter передает данные сообщений программе CICS с помощью механизма COMMAREA. В свойствах фабрики соединений можно указать разные контейнеры CICS для доставки сообщения запроса и возврата ответа. Если требуется один контейнер запроса/ответа, настройте запрос IndexedRecord с одной записью. Кроме того, можно настроить доставку нескольких сообщений в нескольких контейнерах для указанного канала. Для этой цели можно использовать методы set или конфигурацию фабрики соединений. Для нескольких записей укажите MappedRecord в WebSphere Optimized Local Adapter для исходящего вызова CICS. Дополнительная информация о поддержке каналов и контейнеров CICS в WebSphere Optimized Local Adapter приведена на веб-странице Транзакции WebSphere Application Server BBOC, BBO$, BBO#.
Для создания реализации с поддержкой контейнеров CICS выполните следующие действия:
Третий способ выполнения исходящих вызовов с помощью WebSphere Optimized Local Adapter - вызов существующих приложений IMS. Для этой цели WebSphere Optimized Local Adapter использует доступный для вызова интерфейс IMS OTMA. За применение OTMA отвечает метод set в спецификации соединения WebSphere Optimized Local Adapter и фабрике соединений. Приложения WebSphere Application Server выбирают имя сервера OTMA и ИД группы, упаковывают данные сообщений в формат IMS и вызывают адаптер ресурса WebSphere Optimized Local Adapter, выбирая OTMA в качестве протокола.
Стандартный формат данных сообщения запроса IMS для WebSphere Optimized Local Adapter с поддержкой OTMA: LLZZ или LLLLZZ плюс ИД транзакции IMS (8 символов) плюс данные сообщения IMS.
Формат данных сообщения, возвращаемого в ответ на вызов WebSphere Optimized Local Adapter с поддержкой OTMA: LLZZ и данные ответа или LLLLZZ и данные ответа. В конфигурации WebSphere Optimized Local Adapter с поддержкой OTMA рекомендуется указать конкретный формат: LLZZ или LLLLZZ. WebSphere Optimized Local Adapter поддерживает оба формата данных запроса и ответа; их можно указать с помощью методов set в спецификации соединения или с помощью свойств фабрики соединений.
В случае применения функции импорта данных откройте книгу COBOL или структуру PL/I, определите формат данных запроса IMS (LLZZ или LLLLZZ) и выберите связанный флаг в свойствах фабрики соединений WebSphere Optimized Local Adapter (или воспользуйтесь соответствующим методом set). Дополнительная информация о форматах данных сообщений приведена на веб-странице Вызов существующих транзакций IMS с помощью оптимизированных локальных адаптеров по протоколу OTMA. Дополнительная информация о WebSphere Optimized Local Adapter с поддержкой OTMA приведена в разделе (Необязательно) Работа со средой IMS.
Кроме того, WebSphere Optimized Local Adapter поддерживает глобальные транзакции с двухэтапной фиксацией в обоих направлениях между WebSphere Application Server и CICS, а также между WebSphere Application Server и IMS. Дополнительная информация о продукте WebSphere Optimized Local Adapter и глобальных транзакциях приведена в разделе Вызов объекта EJB из внешнего адресного пространства в транзакции клиента.
Дополнительная информация о продукте WebSphere Optimized Local Adapter и глобальных транзакциях IMS приведена в разделе Вызов существующих транзакций IMS с помощью оптимизированных локальных адаптеров по протоколу OTMA.
В случае применения удаленного режима с помощью рабочей среды и WebSphere Application Server можно развернуть приложение без внесения изменений в конфигурацию сервера WebSphere Application Server z/OS, на котором выполняется посредник WebSphere Optimized Local Adapter. Как правило, этот метод применяется в ходе разработки и тестирования обновлений приложений. Дополнительная информация об использовании WebSphere Optimized Local Adapter в режиме разработки или удаленном режиме приведена в разделе Развертывание оптимизированных локальных адаптеров в режиме разработки.
Ниже приведен пример реализации внешнего вызова WebSphere Optimized Local с именем zCUSTCPY_Out. В примере указаны имя JNDI eis/ola и имя целевой службы ZCUSTGET. Вместе с реализацией создан вспомогательный класс на основе книги COBOL с определением уровня 01 с именем CUSTOMER.
package com.ibm.rad.ola.test;
import javax.resource.ResourceException;
import javax.resource.cci.Connection;
import javax.resource.cci.Interaction;
import javax.resource.cci.ConnectionFactory;
import javax.resource.cci.ConnectionSpec;
import javax.resource.cci.InteractionSpec;
import javax.resource.cci.Record;
import javax.resource.cci.ResourceAdapterMetaData;
/**
* @j2c.connectionFactory jndi-name="eis/ola"
* @j2c.connectionSpec class="com.ibm.websphere.ola.ConnectionSpecImpl"
* @generated
*/
public class ZCICSCustGetImpl implements com.ibm.rad.ola.test.ZCICSCustGet {
private ConnectionSpec typeLevelConnectionSpec;
private InteractionSpec invokedInteractionSpec;
private InteractionSpec interactionSpec;
private ConnectionSpec connectionSpec;
private Connection connection;
private ConnectionFactory connectionFactory;
/**
* @j2c.interactionSpec class="com.ibm.websphere.ola.InteractionSpecImpl"
* @j2c.interactionSpec-property name="serviceName" value="ZCUSTGET"
* @generated
*/
public com.ibm.rad.ola.test.CUSTOMER zCUSTCPY_Out(
com.ibm.rad.ola.test.CUSTOMER arg)
throws javax.resource.ResourceException {
ConnectionSpec cs = getConnectionSpec();
InteractionSpec is = interactionSpec;
try {
if (cs == null) {
cs = getTypeLevelConnectionSpec();
}
if (is == null) {
is = new com.ibm.websphere.ola.InteractionSpecImpl();
((com.ibm.websphere.ola.InteractionSpecImpl) is)
.setServiceName("ZCUSTGET");
}
} catch (Exception e) {
throw new ResourceException(e.getMessage());
}
com.ibm.rad.ola.test.CUSTOMER output = new
com.ibm.rad.ola.test.CUSTOMER();
invoke(cs, is, arg, output);
return output;
}
< ... другие методы ... >
Для применения этого класса приложение должно создать запись CUSTOMER для передачи в качестве входных данных и приема в качестве выходных данных, а также создать экземпляр zCUSTCPY_Out() для внешнего вызова целевого приложения через адаптер ресурса WebSphere Optimized Local Adapter.
В ходе установки приложения, использующего эти инструменты, необходимо установить адаптер ресурса WebSphere Optimized Local Adapter и создать фабрику соединений с указанным именем JNDI (в этом примере применяется имя JNDI eis/ola). Кроме того, для фабрики соединений необходимо указать имя регистра WebSphere Optimized Local Adapter. В случае применения WebSphere Optimized Local Adapter с поддержкой OTMA укажите для фабрики соединений имя сервера IMS OTMA и имя группы. Дополнительная информация о свойствах фабрики соединений WebSphere Optimized Local Adapter, связанных с WebSphere Optimized Local Adapter с поддержкой OTMA, приведена на веб-странице Особенности фабрики соединений для оптимизированных локальных адаптеров.