7.6.2 入力メッセージの永続化

ここでは,入力メッセージの永続化の処理方式について,メッセージの種類別に説明します。

<この項の構成>
(1) RPCメッセージの永続化
(2) MCPメッセージの永続化
(3) MCHメッセージの永続化

(1) RPCメッセージの永続化

クライアントからCLサーバに対してメッセージの送信要求を行います。RPCメッセージは,実行系が待機系に転送することで永続化されます。

RPCメッセージを永続化するには,RPC関連定義のrpc_recv_permanenceオペランドにYを指定します。また,永続化できるのは,RPC要求メッセージの受信メッセージだけです。

RPCメッセージの永続化処理の流れを次の図に示します。

図7-6 RPCメッセージの永続化処理の流れ

[図データ]

説明
  1. 実行系はクライアントからRPCメッセージを受信したあと,メッセージ転送用の処理キューを登録します。処理キューは,サービスごとにシリアライズされます。サービス名の不正を検知した場合は,処理キューを登録しないでERRTRN1を起動します。
  2. 送信スレッドで処理キューが引き出され,受信したRPCメッセージを待機系に転送します。このメッセージのように,実行系から待機系にリソースの永続化を要求するメッセージを CL同期メッセージといいます。CL同期メッセージを送信したあと,待機系からの送達確認メッセージの待ち合わせを行います。
  3. 待機系は実行系から転送されたRPCメッセージを受信したあと,処理キュー制御用バッファ(PCE)を確保し,処理キューを仮登録します。そのあと,実行系に対して送達確認メッセージを送信します。
  4. 実行系は待機系からの送達確認メッセージをすべて受信したあとに,RPCメッセージを処理キューに登録します。
  5. 処理スレッドで処理キューが引き出され,UAPにRPCメッセージを引き渡します。
以降の処理については,次の項以降で説明します。

なお,RPCメッセージの永続化の場合,次の制限があります。

(2) MCPメッセージの永続化

クライアントからCLサーバのMCPあてにメッセージの送信要求を行います。MCPメッセージは,実行系が待機系に転送することで永続化されます。

MCPメッセージを永続化するには,MCP構成定義のeemcpfunc定義コマンドで-mオプションのrecvpermanenceオペランドにyesを指定します。また,永続化できるのは,MCPメッセージの受信メッセージだけです。

MCPメッセージの永続化処理の流れを次の図に示します。

図7-7 MCPメッセージの永続化処理の流れ

[図データ]

[図データ]

説明
  1. 実行系はクライアントからMCPメッセージを受信したあと,MCP構成定義の指定値に従って,入力セグメント判定UOC,端末キュー登録,および入力メッセージ編集UOCを実行します。そのあと,メッセージ転送用の処理キューを登録します。処理キューは,サービスごとにシリアライズされます。サービス名の不正を検知した場合は,処理キューを登録しないでERRTRN1を起動します。
  2. 送信スレッドで処理キューが引き出され,受信したMCPメッセージを待機系にCL同期メッセージとして転送したあと,待機系からの送達確認メッセージの待ち合わせを行います。
  3. 待機系は実行系から転送されたMCPメッセージを受信したあと,処理キュー制御用バッファ(PCE)を確保し,処理キューを仮登録します。そのあと,実行系に対して送達確認メッセージを送信します。
  4. 実行系は待機系からの送達確認メッセージをすべて受信したあとに,MCPメッセージを処理キューに登録します。
  5. 処理スレッドで処理キューが引き出され,UAPにMCPメッセージを引き渡します。
以降の処理については,次の項以降で説明します。

(3) MCHメッセージの永続化

HAサーバからCLサーバの各サーバに対して,マルチキャストでメッセージの送信要求を行います。MCHメッセージは,実行系と待機系がそれぞれ保持することで永続化されます。MCHメッセージの永続化処理の流れを次の図に示します。

図7-8 MCHメッセージの永続化処理の流れ

[図データ]

説明
  1. HAサーバからCLサーバの各サーバに対して,マルチキャストでメッセージが送信されます。
  2. 待機系は,HAサーバからメッセージを受信したあと,処理キュー制御用バッファ(PCE)を確保し,処理キューを仮登録します。そのあと,実行系に対して送達確認メッセージを送信します。
  3. 実行系は,HAサーバからのメッセージを受信したあと,待機系からの送達確認メッセージの待ち合わせを行います。
  4. 実行系は,待機系からの送達確認メッセージをすべて受信したあとに,HAサーバに対して送達確認メッセージを送信します。
以降の処理については,次の項以降で説明します。

参考
ここでは,MCHメッセージの送信元としてHAサーバを仮定しています。CLサーバから別のクラスタグループのCLサーバへマルチキャストでメッセージを送信することもできます。その場合,HAサーバがCLサーバになります。