分散トランザクション処理機能 OpenTP1 解説

[目次][用語][索引][前へ][次へ]

付録D.3 グローバル検索処理の概要

グローバル検索とは,自OpenTP1がall_nodeオペランドに指定したノードと該当するノードのall_nodeオペランドに指定されたノードまで,サービス検索する検索方法です。グローバル検索機能については,「3.2.2(1) グローバル検索機能」を参照してください。

ここでは,グローバル検索処理の概要について,次の図に示します。詳細なサービス情報の検索条件については,「付録D.2 他ノードへのリモートプロシジャコールの処理の概要」を参照してください。

図D-3 グローバル検索処理の概要

[図データ]

[図データ]

[図データ]

図で示した処理の流れについて,次に説明します。番号は,図中の番号と対応しています。なお,1.〜3.および9.〜12.はTP1-Xの処理,4.,5.,7.,8.はTP1-Aの処理,6.はTP1-B,TP1-C,TP1-Dの処理,13.〜16.はTP1-Dの処理についての説明です。

  1. dc_rpc_call関数の引数に指定されたサービスグループ名を検索キーに,該当するサービス情報がローカルキャッシュとグローバルキャッシュに登録されているかを確認します。
  2. 該当するサービス情報が存在しなければ,ネームサービスにサービス情報の検索要求を送信します。
  3. TP1-Xは,システム共通定義のall_nodeオペランドに指定されたノード(TP1-A)に対してサービス情報のグローバル検索要求を送信します。
  4. グローバル検索要求を受信したTP1-Aのネームサービスは,ローカルキャッシュとグローバルキャッシュに該当するサービスグループが存在するか検索します。
  5. 該当するサービス情報がキャッシュに存在しなければ,TP1-Aはシステム共通定義のall_nodeオペランドに指定されたノード(TP1-B,TP1-C,TP1-D)に対してサービス情報の検索要求を送信します。
  6. サービス情報の検索要求を受信したTP1-B,TP1-C,TP1-Dのネームサービスは,ローカルキャッシュに該当するサービスグループが存在するか検索し,その結果をTP1-Aのネームサービスに送信します。
  7. 他ノードに対するサービス要求の応答が返ってきたため,TP1-Aのネームサービスは,受信したサービス情報をグローバルキャッシュに登録します。
  8. TP1-Aのネームサービスは,検索して取得したサービス情報を,サービス要求元ノードであるTP1-Xのネームサービスに送信します。
  9. TP1-Aに対するグローバルサービス検索要求の応答が返ってきたため,TP1-Xのネームサービスは,受信したサービス情報をグローバルキャッシュに登録します。
  10. TP1-Xのネームサービスは,検索して取得したサービス情報を,サービス要求元UAPに返します。
  11. 複数の同一サービスグループ名称のUAPが起動されていた場合は,その中から一つのサービス要求先UAP(サーバUAP1)を選択します。この説明では,TP1-Dをあて先に選択すると仮定します。
  12. 11.で選択したTP1-Dのスケジュールサービスに対して,サービス実行要求を送信します。
  13. サービス要求を受信したスケジュールサービスでは,該当するサービスグループのサービス要求先UAP(サーバUAP1)のメッセージキューに対し,サービス要求を登録します。
  14. サービス要求が登録されたサービス要求先UAP(サーバUAP1)では,メッセージキューからサービス要求を取り出します。
  15. サービス関数を実行します。
  16. サービス関数の実行後,サービス要求元UAPに対して,サービス要求先UAP(サーバUAP1)から,直接応答メッセージを送信します。