WebSphere Optimized Local Adapters アウトバウンドの生成

WebSphere Optimized Local Adapters を使用して、z/OS 上の外部アドレス・スペースで実行されているアプリケーションを呼び出すことができます。最適なパフォーマンスを得られるように、これらのアプリケーションはローカルで、同じ z/OS イメージ上で実行する必要があります。WebSphere Optimized Local Adapters は、分散 WebSphere Application Server で実行されているアプリケーションからの z/OS 上のアプリケーションの呼び出しもサポートします。これはリモート・モード、または開発者モードと呼ばれます。

このタスクについて

重要: J2C Bean は、WebSphere® Application Servers で公式にサポートされており、テストされています。 ほかの Java™ 環境で使用しても 動作するはずですが、十分にはテストされていません。生成されたコードに問題があり、 そのコードが WebSphere Application Server 環境内などに独立してある状態であれば、サポート対象になります。

WebSphere Optimized Local Adapters を使用して WebSphere Application Server 上のアウトバウンド・アプリケーションを呼び出す方法を以下に示します。

バッチ/UNIX システム・サービス・アプリケーションの呼び出し

WebSphere Optimized Local Adapter を使用して、いずれかの WebSphere Optimized Local Adapter サーバー API を使用するように変更された z/OS 上のバッチ・アプリケーションおよび USS アプリケーションを呼び出すことができます。

このタスクについて

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 サーバーとして設定することができます。

既存の CICS アプリケーションの呼び出し

WebSphere Optimized Local Adapter を、WebSphere Optimized Local Adapter CICS リンク・サーバーと共にアウトバウンド・コールに使用することができます。

このタスクについて

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 コンテナーをサポートする実装を生成するには、以下の手順を実行します。

  1. 「データのインポート」ページで、COBOL コピーブック・ファイル名を求めるプロンプトが表示されたら、「COBOL WebSphere Optimized Local Adapter CICS チャネルから Java」を指定します。
  2. 使用する CICS チャネル名を求めるプロンプトが表示されたら、要求および応答のコンテナー名を指定します。
  3. オプション: 複数のコンテナー名を追加して、それらを同じチャネルに関連付けることができます。これにより、コンテナーごとに個別のマッピング (コピーブック) を指定します。この方法は、MappedRecord を使用して複数のコンテナーを渡し、CICS アプリケーションから複数のコンテナーを戻す場合に役立ちます。

次のタスク

WebSphere Optimized Local Adapter CICS リンク・サーバーに関する WebSphere Optimized Local Adapter 接続ファクトリー・プロパティーについては、最適化されたローカル・アダプターに関する接続ファクトリーの考慮事項を参照してください。CICS アプリケーションでの WebSphere Optimized Local Adapter の使用について詳しくは、(オプション) CICS 環境を使用しますを参照してください。

既存の IMS アプリケーションの呼び出し

WebSphere Optimized Local Adapter でアウトバウンド・コールを実行する 3 つ目の方法は、既存の IMS トランザクションを呼び出すためのものです。

このタスクについて

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 でサポートされるメッセージ・フォーマット

OTMA を介した WebSphere Optimized Local Adapter では、IMS 複数セグメント・メッセージがサポートされます。

このタスクについて

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 Java Bean コンテナーへのセキュリティー資格情報の伝搬とアサーションをサポートします。

このタスクについて

操作方法は、外部環境のタイプ (バッチ、CICS、IMS のいずれか) によって異なります。WebSphere Application Server からバッチへの呼び出しの場合、ユーザー資格情報は伝搬されず、バッチ・ジョブは常にバッチ・ユーザー ID で実行されます。CICS および IMS の場合、WebSphere Optimized Local Adapter はユーザーの ID の伝搬とアサーションをサポートしますが、CICS の場合は WebSphere Optimized Local Adapter CICS リンク・サーバーを、IMS の場合は OTMA を介した WebSphere Optimized Local Adapter を使用している必要があります。この実装について詳しくは、最適化されたローカル・アダプターの保護を参照してください。

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 Optimized Local Adapter アプリケーションの実行

WebSphere Optimized Local Adapter を開発モードまたはリモート・モードで実行することにより、別の z/OS システムで実行中の WebSphere Application Server または z/OS 以外の分散システムで実行中のアプリケーション・サーバーにリモートで接続することができます。

このタスクについて

WebSphere Optimized Local Adapter はローカルの技術であり、その最も大きな利点は、CICS、IMS、およびバッチ環境の既存のアプリケーションと同じ場所に WebSphere Application Server z/OS を配置して実行することから得られます。ただし、リモート接続された、別の z/OS システム上で実行されている WebSphere Application Server、または z/OS 以外の分散システムで実行されているアプリケーション・サーバーで、WebSphere Optimized Local Adapter リソース・アダプターを使用することができます。これを行うには、WebSphere Optimized Local Adapter を開発モードまたはリモート・モードで実行し、WebSphere Optimized Local Adapter プロキシー・アプリケーションを接続先の WebSphere Application Server z/OS サーバーにインストールして、z/OS アセットに到達できるようにする必要があります。プロキシー・アプリケーションが実行される WebSphere Application Server z/OS は、CICS、IMS、またはバッチの、対象の z/OS アプリケーションと同じ場所に配置する必要があります。

リモート・モードを使用している場合、ワークベンチと WebSphere Application Server を使用して、WebSphere Optimized Local Adapter プロキシーが実行されている WebSphere Application Server z/OS サーバーで変更を行うことなくアプリケーションをデプロイまたは再デプロイすることができます。この方法は、アプリケーション更新の開発およびテストを行っている場合に使用する必要がある場合があります。開発モードまたはリモート・モードにおける WebSphere Optimized Local Adapter の使用について詳しくは、開発モードでの最適化されたローカル・アダプターのデプロイメントを参照してください。

WebSphere Optimized Local Adapter アウトバウンド・コール・アプリケーションの生成: サンプル手順

以下は、いずれかの環境で実行中のアプリケーションが外部アドレス・スペースを呼び出すというシナリオで、要求と応答のために一方の側からもう一方の側へデータを移動する手順とサンプル・コードです。

手順

  1. 「ファイル」 > 「新規」 > 「その他」 > 「J2C」の順に選択します。
  2. 「WebSphere Optimized Local Adapter (IBM:2)」をクリックして、「次へ」をクリックします。
  3. 「コネクターのインポート」ページの「コネクター・プロジェクト」フィールドでデフォルト値「ola」を受け入れ、「ターゲット・サーバー」フィールドで、使用する WebSphere Application Server バージョンを選択して、「次へ」をクリックします。
  4. アダプター・スタイル・ページで、「アウトバウンド」を選択してから「次へ」をクリックします。
  5. 「接続プロパティー」ダイアログで、WebSphere Optimized Local Adapter アウトバウンド・コールで使用する接続ファクトリーの JNDI 名を入力し、「次へ」をクリックします。
  6. 「J2C Java Bean 出力プロパティー」に、このアウトバウンド・コールで使用する、既存の、あるいは新規に作成する場合は新規のプロジェクト名、パッケージ、インターフェース実装名を入力し、「次へ」をクリックします。
    1. 「新規 J2C Java Bean」ページでプロジェクトに対して入力した名前が、「Java プロジェクト」ページの「名前」フィールドに表示されます。 これが正しいことを確認します。プロジェクト名が表示されない場合は、「名前」フィールドにプロジェクト名を入力します。
    2. 「名前」フィールドに、Java プロジェクトの名前を入力します。デフォルトの「プロジェクト・ロケーション」を変更するには、 「参照」ボタンをクリックして、新規ロケーションを選択します。
    3. 「ターゲット・ランタイム」フィールドで、デプロイ先の WebSphere Application Server のバージョンを選択します。 この選択では、プロジェクトのクラスパス・エントリーを変更することによって、コンパイルおよびランタイム設定に影響を与えます。
      注: 新規 EAR プロジェクト名を指定すると、EAR プロジェクトが、作成されるプロジェクトのバージョンに基づいて、互換性のある最も低い Java EE バージョンでデフォルトのロケーションに作成されます。エンタープライズ・アプリケーションに別のバージョンまたは別のロケーションを指定するには、 「新規エンタープライズ・アプリケーション・プロジェクト」ウィザードを使用します。
    4. デフォルトの「Java モジュール・バージョン (Java Module version)」を受け入れるか、リストから別のバージョンを選択します。J2C インバウンド・アプリケーションを作成している場合は、Java 3.0 を選択する必要があります。
      重要: Java 3.0 を選択すると、Java 3.0 ウィザードはデフォルトでローカル・インターフェースを作成します。リモート・インターフェースを作成するには、@Remote(class= interface.java) 注釈を J2C Bean に追加して、手動で作成します。
    5. 「構成」フィールドで、デフォルトの構成を受け入れるか、「変更」をクリックしてプロジェクトのプロジェクト・ファセットを変更します。
    6. EAR プロジェクトに Java プロジェクトを追加する場合は、 「EAR にプロジェクトを追加」を選択します。
    7. Java モジュールの追加先の EAR プロジェクトを選択するか、「EAR プロジェクト名」フィールドに新規 EAR プロジェクトの名前を入力し、「次へ」をクリックします。
    8. 「Java モジュール (Java Module)」ページの「ソース・フォルダー」フィールドで、ソース・フォルダーのデフォルトである ejbModule を受け入れるか、または Java プロジェクト用に異なるソース・フォルダー名を入力して、「次へ」をクリックします。
    9. 「Java モジュール設定の構成 (Configure Java module settings)」ページで、以下のタスクを実行します。
      1. エンタープライズ Bean のクライアント・インターフェースのクラスを個別の Java クライアント JAR ファイルに保持する場合は、「クライアント・インターフェースおよびクラスを保持する Java クライアント JAR モジュールを作成 (Create an Java Client JAR module to hold the client interfaces and classes)」をクリックします。この Java クライアント JAR ファイルは、プロジェクト・ユーティリティー JAR ファイルとしてエンタープライズ・アプリケーションに追加されます。
      2. 「名前」フィールドで、クライアント JAR モジュールのデフォルトの名前をそのまま受け入れるか、または別の名前を入力します。
      3. 「クライアント JAR の URI」フィールドで、クライアント JAR ファイルのデフォルト名を受け入れるか、または別の名前を入力します。
    10. 「終了」をクリックします。
  7. 「J2C Java Bean 出力プロパティー」ページで、以下を実行します。
    1. 「Java プロジェクト名」フィールドで、プロジェクト名が正しいことを確認するか、正しいプロジェクト名を入力します。
    2. 「パッケージ名」フィールドに、パッケージ名を入力します。
    3. 「ステートレス・セッション Java 名 (Stateless Session Java name)」フィールドに、ステートレス・セッション Java 名を入力します。
    「次へ」をクリックします。
  8. 「Java メソッド」ページで、「追加」をクリックして Java メソッドを作成します。
  9. 「EJB メソッド」ページの「名前」フィールドに、Java メソッドの名前を入力します。
    1. 「入力タイプ」フィールドで、「参照」をクリックして入力を検索するか、「新規作成」をクリックして入力を作成します。
      1. 「データのインポート」ページの「マッピングの選択」フィールドで、「COBOL から Java」を選択します。
      2. 「COBOL ファイル」フィールドで、「参照」をクリックして COBOL ファイルを見つけ、「次へ」をクリックします。
      3. 「インポーター」ページの「プラットフォーム」フィールドで「z/OS」を選択し、「コード・ページ」フィールドで「IBM-1047」を選択し、「データ構造」フィールドで使用したいデータ構造を選択して、「次へ」をクリックします。
    2. 「保存するプロパティー」ページで、helper クラスの値がリストされていることを確認し、「終了」をクリックします。
  10. 「Java メソッド」ページの「サービス名」フィールドに、ターゲットの WebSphere Optimized Local Adapter サービス名を入力します。これは、外部アドレス・スペース・アプリケーションが WebSphere Optimized Local Adapter の Receive Request API または Host Service API で使用する名前です。WebSphere Optimized Local Adapter CICS リンク・サーバーを使用している場合、これは、指定されたサービス名または SVC パラメーターとマッチングされる名前です。OTMA を介した WebSphere Optimized Local Adapter を使用している場合、これは IMS ターゲット・トランザクション名です。「終了」をクリックします。

タスクの結果

サンプル Java クラス

以下は、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 接続ファクトリー・プロパティーについては、最適化されたローカル・アダプターに関する接続ファクトリーの考慮事項を参照してください。


フィードバック