CICSplex における相互トランザクション・アフィニティーの考慮事項

CICSplex は、CICS® 相互通信機能を使用してリンクされた複数の CICS 領域で構成されます。CICS 機能 (動的トランザクション・ルーティングとも呼ばれる) は、トランザクションを処理するためのリソースがある任意の領域への端末からのトランザクションを動的に経路指定することにより、ロード・バランシングをサポートします。

相互トランザクション・アフィニティーは、複数の CICS トランザクションが相互に情報を渡し、トランザクションを同じ CICS 領域で実行する必要がある場合に発生します。相互トランザクション・アフィニティーが存在する場合、トランザクションを CICS に対して定義して、トランザクションが同じ領域に経路指定されるようにする必要があります。

以下のトピックでは、EGL を使用して生成される CICS プログラムでのトランザクション・ルーティングの考慮事項について説明します。トランザクション・ルーティングの詳細については、「Dynamic Routing in a CICSplex」(SC33-1012) を参照してください。

セグメント化プログラム

セグメント化プログラムは、一時ストレージ・キュー (作業データベース) を使用して、converse ステートメントまたは show ステートメントの実行中のプログラム会話の状態を保存します。 会話のすべてのセグメントが同じ一時ストレージ・キューにアクセスでき、継続して同じ端末 ID を使用する必要があります。

更新用の EGL DataTables の共用

プログラムは、CICS 環境で共用 EGL DataTables を更新できます。共用 DataTable は、CICS GETMAIN を使用して取得されるメモリー内に保存されます。すべての更新には、同じ領域で実行しているプログラムのみがアクセスできます。 共用 DataTable を使用して情報を渡すことに依存するすべてのトランザクションは、同じ領域に経路指定される必要があります。

一時ストレージ・キュー

一時ストレージ・キューの EGL サポートは、キューへのアクセスの直列化を必要とします。 生成されるプログラムは、キュー名をリソース名として CICS ENQ および DEQ を使用することにより、これを行います。ENQ および DEQ は、単一領域の範囲内でのみ有効です。キューへのアクセスが直列化されていることを確認するには、以下のいずれかを実行します。
  • 一時ストレージ・キューをローカル・キューとして定義する。
  • キューにアクセスするすべてのトランザクションを同じ領域にルーティングする。
  • sysVar.terminalID からの端末 ID をキュー名の一部として組み込むキュー命名規則を使用して、各端末に異なるキューが使用されるようにする。1 つの端末から同時にアクティブであるトランザクションが 1 つのみであるため、キューへのアクセスは直列化されます。

トランザクション・ルーティングでの一時ストレージ・キューの使用の詳細については、CICS マニュアルを参照してください。

印刷出力での一時データ・キューの使用

印刷出力を一時データ・キューに経路指定できます。プログラムは、印刷出力を一時ストレージ・キューに蓄積します。出力が完了すると、プログラムは出力を一時データ・キューにコピーします。ENQ/DEQ を使用して、同じシステム内の複数のトランザクションからの出力が混在しないようにします。

ENQ/DEQ は 1 つの領域内でのみ有効であるため、キューをローカル・キューとして定義して、複数の領域からの出力が混在しないようにします。

また、FZETPRT 端末印刷プログラムを起動するキューが定義されている場合は、そのキューがある領域内のローカル・トランザクションとして FZETPRT 用のトランザクションを定義します。

エラー宛先キュー

Rational® COBOL Runtime からのエラー・メッセージを、エラー宛先キューと呼ばれる一時データ・キューに送信することができます。EGL プログラムが実行される可能性がある各領域に対してキューをローカル・キューとして定義して、単一のエラーに関連したメッセージが別の領域で同時に発生する別のエラーに関連したメッセージと混在しないようにします。

実行単位のエラーで使用不可にする

診断制御ユーティリティーを使用して指定できるオプションの 1 つは、トランザクションに対して実行単位エラーが検出されると必ずそのトランザクションを使用不可にすることです。

使用不可アクションは CICS SET 機能を使用して実装されており、そのエラーが発生した領域に対してのみ有効です。

CICS ユーティリティー機能領域アフィニティー

Rational COBOL Runtime CICS のユーティリティーは、領域アフィニティーを持つ機能を実行します。したがって、トランザクションが、ユーザー ID、LU 名、または代替トランザクション名に基づいて、希望する領域に経路指定されることを確認する必要があります。次の表に、ユーティリティー、デフォルトのトランザクション ID、および機能の説明をリストします。

表 1. 領域依存のユーティリティー
ユーティリティー デフォルト ID 機能の説明
CICS Utilities Menu ELAM 他のユーティリティーを選択するためのメニュー (トレースを除く)。
New Copy ELAN 領域にプログラム、ライブラリー、サービス、FormGroup、または DataTable の新規コピーをロードします。
Diagnostic Message Print ELAU 領域に関連付けられたエラー・メッセージ・キューを印刷します。
Diagnostic Control Options ELAC Rational COBOL Runtime のエラー・レポート・オプションを設定します。オプション・ファイル (RDO FILE 名 ELACFIL) が各領域に対してローカルとして定義されている場合、領域に依存します。ELACFIL がファイル所有領域を介してアクセスされる共用ファイルとして定義されている場合、領域に依存しません。
Trace ELAZ このユーティリティーによって設定されるトレース・オプションは、領域内の CICS GETMAIN を使用して取得されるメモリーに保存され、ELAZ トランザクションが実行された領域でのみ有効です。

フィードバック