CICS LU6.2 ユーザー・データ・プログラミング・モデルは、TI とサーバー TP の間で直接呼び出しとデータ交換を提供します。 このモデルでは、他の通信コンポーネントは必要ありません。
次の図は、クライアント、既定の CICS ミラー トランザクション、メインフレーム トランザクション プログラムの間で発生するワークフローをまとめたものです。 かっこ内の数値は、イベントが発生するおおよその順序を示します。 この図の後に、イベントの詳細な説明を示します。
メインフレーム トランザクション プログラムから LU 6.2 または TCP/IP を送受信するトランザクション インテグレーター
CICS LU6.2 ユーザー・データ・プログラミング・モデルの要約ワークフロー図
CICS LU6.2 ユーザー・データ・プログラミング・モデルは、次のように機能します。
アプリケーションは、コンポーネント サービスまたは .NET Framework で構成された TI コンポーネント内のメソッドを呼び出します。
TI ランタイムは、TI オートメーション プロキシを呼び出します。
アプリケーションが COM+ コンポーネントの場合、TI オートメーション プロキシは次のようになります。
TI デザイナーによって以前に作成されたタイプ ライブラリを読み取ります。
自動化データ型を COBOL データ型にマップします。
アプリケーションが .NET アセンブリの場合、TI オートメーション プロキシは次のようになります。
TI デザイナーによって以前に作成されたアセンブリとメタデータを読み取ります。
.NET Framework データ型を COBOL データ型にマップします。
その後、TI Automation プロキシは次の操作を行います。
変換ルーチンを呼び出して、アプリケーション・データをメインフレーム COBOL タイプに変換します。
COBOL 宣言またはコピーブックを表すフラット化されたデータ ストリーム バッファーを構築します。
メッセージを SNA トランスポート コンポーネントに渡します。
TI プロキシは、TI コンポーネント メソッドで指定された TP 呼び出し要求を、LU6.2 プロトコルを使用してサーバー TP に送信します。 このメッセージでは、TI はメソッドが呼び出しているサーバー TP の TRANID を送信します。
TI とサーバー TP は、それぞれ入力フィールドと出力フィールドを受信および送信する APPC または Common Programming Interface for Communications (CPI-C) 動詞を発行して直接通信します。
必要に応じて、サーバー TP は、同期レベル 2 のプロパティと 2 フェーズ コミットを実装するために適切な動詞を発行します。
メインフレーム TP がソケットを閉じます。
TI オートメーション プロキシは応答データを受信し、応答を処理します。 TI オートメーション プロキシ:
SNA トランスポート コンポーネントからメッセージを受信します。
メッセージ バッファーを読み取ります
アプリケーションが COM+ コンポーネントの場合、TI オートメーション プロキシは次のようになります。
COBOL データ型を自動化データにマップします。
変換ルーチンを呼び出して、メインフレーム COBOL タイプをアプリケーション・データに変換します。
アプリケーションが .NET アセンブリの場合、TI オートメーション プロキシは次のようになります。
COBOL データ型を .NET Framework データ型にマップします。
変換ルーチンを呼び出して、メインフレーム COBOL タイプをアプリケーション・データに変換します。
TI ランタイムは、変換されたデータを、メソッドを呼び出した COM または .NET Framework アプリケーションに送り返します。
Host Integration Server には、CICS LU6.2 ユーザー データ プログラミング モデルを実装する方法を示すサンプル コードが含まれています。 サンプル コードは、 \installation ディレクトリ\SDK\Samples\AppInt にあります。 Microsoft Visual Studio を起動し、使用するチュートリアルを開き、 Readme の指示に従います。
こちらもご覧ください
トランザクション インテグレーター コンポーネント
データ型を Automation から z/OS COBOL に変換する]
z/OS COBOL から Automation へのデータ・タイプの変換
CICS コンポーネント
TI ランタイム
適切なプログラミング モデルの選択
プログラミング モデル