WebSphere Optimized Local Adapters を使用して WebSphere Application Server 上のアウトバウンド・アプリケーションを呼び出す方法を以下に示します。
WebSphere Optimized Local Adapter の Receive Request (BBOA1RCV) API または Host Service (BBOA1SRV) API を使用して、任意のアプリケーションを WebSphere Application Server 内の Java アプリケーションで使用できるようにすることができます。これにより、Java アプリケーションは JCA スタイル・メソッドを使用してこれらを呼び出すことができるようになります。これらの API の使用について詳しくは、z/OS API 用の最適化されたローカル・アダプターを参照してください。
z/OS のバッチ、CICS、IMS、および USS で実行されているアプリケーションはすべて、WebSphere Optimized Local Adapter API を使用して、WebSphere Application Server からの要求を受け入れる WebSphere Optimized Local Adapter サーバーとして設定することができます。
WebSphere Optimized Local Adapter リンク・サーバーは、CICS 領域で始動できるアプリケーションであり、既存の CICS プログラムに対する呼び出しのサーバーまたはプロキシーとして機能します。この場合 WebSphere Application Server アプリケーションは、応答データの受け渡しと取得を行う通信域 (COMMAREA) またはチャネルおよびコンテナーのいずれかを指定した EXEC CICS LINK により、既存の未変更の CICS プログラムを呼び出します。
メッセージ・ペイロードを CICS プログラムに渡すために WebSphere Optimized Local Adapter が使用するデフォルトのメカニズムは COMMAREA です。接続ファクトリー・プロパティーを使用することにより、1 つの CICS コンテナーが要求メッセージを送信し、別の CICS コンテナーが応答用に使用されることを指定できます。単一の要求/応答コンテナーの場合、単一の項目を含む IndexedRecord として要求レコードをセットアップします。また、指定したチャネル名に対し WebSphere Optimized Local Adapter が複数のコンテナーに複数のメッセージを送信するよう指定することもできます。これを行うには、setter メソッドを使用するか、これが接続ファクトリーで要求されていることを示します。複数のレコードの場合、CICS へのアウトバウンド・コールのため WebSphere Optimized Local Adapter に MappedRecord を指定します。WebSphere Optimized Local Adapter における CICS チャネルおよびコンテナーのサポートについて詳しくは、WebSphere Application Server トランザクション BBOC、 BBO$、BBO# を参照してください。
CICS コンテナーをサポートする実装を生成するには、以下の手順を実行します。
WebSphere Optimized Local Adapter でアウトバウンド・コールを実行する 3 つ目の方法は、既存の IMS トランザクションを呼び出すためのものです。このために、WebSphere Optimized Local Adapter では IMS OTMA 呼び出し可能インターフェースを使用します。WebSphere Optimized Local Adapter 接続仕様の setter メソッドと、OTMA が使用されていることを示す接続ファクトリーがあります。WebSphere Application Server アプリケーションは、OTMA サーバー名とグループ ID を選択する必要があります。さらに、メッセージ・ペイロードを IMS メッセージとしてバンドルしてから、基礎となるプロトコルとして OTMA を選択して WebSphere Optimized Local Adapter リソース・アダプターを呼び出す必要があります。
OTMA を介した WebSphere Optimized Local Adapter の IMS 要求メッセージ・データは、LLZZ または LLLLZZ + IMS トランザクション ID (8 文字) + IMS メッセージ・データの標準 IMS 形式で構成する必要があります。
OTMA 呼び出しを介した WebSphere Optimized Local Adapter からの IMS 応答メッセージ・データは、LLZZ + 応答データまたは LLLLZZ + 応答データのいずれかとして返すことができます。OTMA を介した WebSphere Optimized Local Adapter のセットアップ・オプションを確認し、LLZZ 形式を使用するか LLLLZZ 形式を使用するかを示すことをお勧めします。WebSphere Optimized Local Adapter は要求と応答のペイロードで両方の形式をサポートしており、これらは接続仕様の setter メソッド、あるいは接続ファクトリーのプロパティーで設定できます。
ワークベンチのデータ・インポーターを使用している場合は、COBOL コピーブックまたは PL/I 構造を調べ、IMS 要求ペイロードにいずれの形式が使用されているか (LLZZまたは LLLLZZ) を確認し、そのフォーマットに合う関連フラグを WebSphere Optimized Local Adapter 接続ファクトリーで選択 (または適切な setter メソッドを使用) します。メッセージ・ペイロードのフォーマットについて詳しくは、OTMA を介した最適化されたローカル・アダプターを使用した、既存の IMS トランザクションの呼び出しを参照してください。OTMA を介した WebSphere Optimized Local Adapter について詳しくは、(オプション) IMS 環境を使用しますを参照してください。
WebSphere Optimized Local Adapter はまた、WebSphere Application Server と CICS 間、WebSphere Application Server と IMS 間の双方向の 2 フェーズ・コミット・グローバル・トランザクションもサポートします。 WebSphere Optimized Local Adapter とグローバル・トランザクションについて詳しくは、クライアントが開始したトランザクションでの外部アドレス・スペースからのエンタープライズ Bean の呼び出しを参照してください。
WebSphere Application Server と IMS のグローバル・トランザクションについては、OTMA を介した最適化されたローカル・アダプターを使用した、既存の IMS トランザクションの呼び出しを参照してください。
リモート・モードを使用している場合、ワークベンチと WebSphere Application Server を使用して、WebSphere Optimized Local Adapter プロキシーが実行されている WebSphere Application Server z/OS サーバーで変更を行うことなくアプリケーションをデプロイまたは再デプロイすることができます。この方法は、アプリケーション更新の開発およびテストを行っている場合に使用する必要がある場合があります。開発モードまたはリモート・モードにおける WebSphere Optimized Local Adapter の使用について詳しくは、開発モードでの最適化されたローカル・アダプターのデプロイメントを参照してください。
以下は、zCUSTCPY_Out という名前で作成された、生成済み WebSphere Optimized Local Adapter の外部呼び出し実装のサンプルです。JNDI 名 eis/ola およびターゲット・サービス名 ZCUSTGET を使用するように構成されています。これは、CUSTOMER という Level 01 定義を持つ COBOL コピーブックから作成されたデータ・バインディング helper クラスを組み込むように生成されました。
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;
}
< ... more generate methods follow ... >
このクラスを使用するアプリケーションが行う必要があるのは、入力として渡して出力として受け取る CUSTOMER レコードの新規 UP と、WebSphere Optimized Local Adapter リソース・アダプターを介したターゲット・アプリケーションへの外部呼び出しを実行する zCUSTCPY_Out() のインスタンスの新規 UP だけです。
これらのツールを使用するアプリケーションをインストールする場合は、必ず、WebSphere Optimized Local Adapter リソース・アダプターをインストールし、JNDI 名を求めるプロンプトで指定した名前と同じ名前の接続ファクトリーを作成してください (この例では、JNDI 名は eis/ola です)。また、WebSphere Optimized Local Adapter レジスター名を接続ファクトリー上で指定する必要があります。OTMA を介した WebSphere Optimized Local Adapter を使用している場合は、IMS OTMA サーバー名とグループ名を接続ファクトリー上で指定します。OTMA を介した WebSphere Optimized Local Adapter に関連する WebSphere Optimized Local Adapter 接続ファクトリー・プロパティーについては、最適化されたローカル・アダプターに関する接続ファクトリーの考慮事項を参照してください。