IMS での端末との対話

標準的な IMS™ プログラムは、以下の図に示すようなメッセージ駆動型の構造を使用します。

IMS におけるメッセージ・キュー構造

この例では、IMS コントローラーは、トランザクション・プログラムと関連するメッセージ・キューがメッセージを含む場合、 そのプログラムを開始します。 別のプログラムがそのキューにメッセージを入れた可能性もありますし、 コントローラーが端末から入力を読み取った可能性もあります。 そのプログラムはキューからメッセージを取り出し、必要ななんらかのデータベース I/O を行い、メッセージを出力キューに追加して処理を継続します。 出力キューは入力端末、別の端末またはプリンター、または別のトランザクションに関連するキューを表すことができます。 次に、プログラムは先頭にループバックし、その入力キューで次のメッセージを処理します。

複数の端末が同じトランザクションを並行して実行するため、標準的な PL/I または COBOL プログラムは、メッセージ・キューが空になるまでサイクルを継続する必要があります。 ただし、EGL プログラムは自動的にループし、キュー内の次のメッセージを読み取ります。 ユーザーが、メッセージ・キュー制御機能を直接定義する必要はありません。 メッセージ駆動型の構造の代わりに同期論理構造を使用する、CICS® のプログラムを定義するだけで、IMS 用のプログラムを定義することができます。 この同期モデルを使用すれば、考慮する必要がある処理は、単一の端末で 1 人のユーザーのために実行する処理のみとなります。 これによって、プログラムの設計と定義が単純化します。

IMS では、ユーザー入力を待っている間に、ユーザーがすべてのデータベースの変更をコミットし、 すべてのデータベースのロックと位置を解放する必要があります。 EGL では、これは、セグメント化されたプログラム (すなわち、単一セグメント・プログラム) を作成することを意味します。 プログラムを定義する際には、EGL が各 converse I/O 文でコミットを実行することを覚えておいてください。 IMS のプログラムを作成する際にセグメンテーションがどのように機能するかを理解する必要があります。 『textUI プログラムにおけるセグメンテーション』を参照してください。

関連概念
DL/I データベース・サポート
textUI プログラムのセグメンテーション

関連リファレンス
add
converse
get

関連タスク

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.