TMA TCP for IMS製品は、リモート・システムとのTCP/IP接続も開始できます。これらの発信セッションは、処理先のリモート・システムにIMSクライアント・リクエストを送信する際に使用されます。
図2-3に示すように、IMSクライアント・トランザクションは、適切にフォーマットされたメッセージをIMSメッセージ・キューに格納することで、リクエストを開始します。ゲートウェイを実行する際に、OTMAクライアントにメッセージを送信するためのIMSユーザー・イグジットを2つインストールする必要があります(リクエスト/レスポンスの処理の詳細は、「Oracle TMA TCP for IMSのプログラミング」の項を参照、サンプルのユーザー・イグジットについては、「JCLおよびユーザー・イグジットのサンプル」の項を参照)。ゲートウェイはリクエストを取得し、処理先の該当リモート・システムに転送します。リモート・システムから受信したレスポンス(必要な場合)は、処理先のトランザクションに配信されるようにIMSに戻されます。
図2-3 IMSの発信処理
Oracle TMA TCP for IMSの初期化の仕組み
TMA TCP for IMSゲートウェイは、OTMAクライアント用の適切なJCLを実行すると(または開始済のタスクとして)起動します。その後に、次の処理が行われます。
ゲートウェイはテキストの文が記述されている順編成のデータセットから構成情報を取得します。これらの文には、ローカル・ゲートウェイとリモート・ゲートウェイの定義を含む、TMA TCP for IMSの動作環境が定義されています。初期化中になんらかの構成エラーが検出された場合、ゲートウェイはすぐに終了します。
TMA TCP for IMSがリモート・システムからリクエストを受信すると、リクエスト・メッセージがフォーマットされてから、IMSメッセージ・キューに挿入され、指定のIMSサーバー・トランザクション(リクエストを処理するIMSサーバー・トランザクションのトランザクション・コードに該当するリクエスト対象のサービス名)に処理されるまで待機します。
リクエストがメッセージ・キューに挿入されると、リクエスタは事実上、リクエスト処理から切り離されます。つまり、TMA TCP for IMSによるリクエストの処理は、リクエスト対象のトランザクションの実行とは切り離されて続行されます。リクエストの中には、TMA TCP for IMSによってリクエストに対するレスポンスを処理するようにスケジュールされたレスポンス・トランザクションの名前(トランザクション・コード)が格納されます。
TMA TCP for IMSゲートウェイはIMSからリクエストを取得し、そのフォーマットが正しいか検証します。なんらかのエラーが検出されると、所定の戻りコードを持つ特定のレスポンス・トランザクションがすぐにスケジュールされます。
TMA TCP for IMSのアクセス先のリモート・システムが提供するサービスのディレクトリ内に、リクエスト対象のサービス名があるかどうか検索されます。リクエスト対象のサービスが見つからない場合、または必要なリモート・ゲートウェイが現在アクセス不可能な場合は、エラーが発生しているものとして認識されると同時に、所定の戻りコードを持つレスポンス・トランザクションがスケジュールされます。