IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECソリューションイノベータ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-18
(45)【発行日】2023-07-26
(54)【発明の名称】疎結合システム
(51)【国際特許分類】
   G06F 11/20 20060101AFI20230719BHJP
   G06F 9/52 20060101ALI20230719BHJP
【FI】
G06F11/20 617
G06F9/52 120Z
G06F11/20 656
G06F11/20 630
G06F11/20 633
【請求項の数】 7
(21)【出願番号】P 2019216420
(22)【出願日】2019-11-29
(65)【公開番号】P2021086489
(43)【公開日】2021-06-03
【審査請求日】2022-10-05
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】岩竹 勝平
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2012-212280(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
G06F 9/52
(57)【特許請求の範囲】
【請求項1】
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、
前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、
前記待機系排他制御装置は、前記稼働系排他制御装置から前記装置側ロックデータを受信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、前記待機系排他制御装置は、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
疎結合システム。
【請求項2】
前記待機系排他制御装置を複数備え、
前記稼働系排他制御装置は、前記装置側ロックデータをそれぞれの前記待機系排他制御装置に送信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、それぞれの前記待機系排他制御装置は、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報のうち当該待機系排他制御装置が受け持つ前記共用資源に係る排他制御情報を再生する、
請求項に記載の疎結合システム。
【請求項3】
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備えた疎結合システムが実行するリカバリ方法であって、
前記稼働系排他制御装置が、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
それぞれの前記ホストが、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、
前記待機系排他制御装置が、前記稼働系排他制御装置から前記装置側ロックデータを受信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストが、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、前記待機系排他制御装置が、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
リカバリ方法。
【請求項4】
前記疎結合システムは、前記待機系排他制御装置を複数備え、
前記稼働系排他制御装置が、前記装置側ロックデータをそれぞれの前記待機系排他制御装置に送信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストが、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、それぞれの前記待機系排他制御装置が、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報のうち当該待機系排他制御装置が受け持つ前記共用資源に係る排他制御情報を再生する、
請求項に記載のリカバリ方法。
【請求項5】
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置であって、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する手段と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する手段と、
を備える待機系排他制御装置。
【請求項6】
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、複数の待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを複数の前記待機系排他制御装置のそれぞれに送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置であって、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する手段と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する手段と、
を備える待機系排他制御装置。
【請求項7】
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置を構成するコンピュータに、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する処理と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する処理と、
を行わせるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、疎結合システム、リカバリ方法、待機系排他制御装置、および、プログラムに関する。
【背景技術】
【0002】
複数のホスト(Host-Computer、ホストコンピュータ)間で共用される共用資源を、MSCP(Multi-System Control Processor、排他制御装置)を用いて排他制御しながら複数の処理を行う疎結合システム(Loosely-Coupled System)がある。そのような疎結合システムにおいて、ホストから稼働系MSCPに送信したロックもしくはアンロックを要求するコマンドをホスト側でも保持し、稼働系MSCPが故障した場合、ホストに保持するコマンドを待機系MSCPに送信することにより、故障した稼働系MSCPが保持していた排他制御情報を待機系MSCPに再生することにより、システムの運用を継続させる技術(以下、第1の関連技術と記す)がある(例えば、特許文献1、2参照)。
【0003】
また、複数のホストと複数のMSCPとが単一のネットワークに接続された疎結合システムにおいて、待機系MSCPが、ネットワーク上の全ての通信を監視し、稼働系MSCPが全て正常に運用されている間にホストから稼働系MSCPへ発せられたコマンドを蓄積し、稼働系MSCPに障害が発生したときに、蓄積したコマンドに含まれる上記障害が発生した稼働系MSCPに対するコマンドおよび該コマンドに対する応答を抽出し、上記障害が発生した稼働系MSCPの排他制御情報を再生する技術(以下、第2の関連技術と記す)がある(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第3134864号
【文献】特許第3636163号
【文献】特許第5067075号
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、第1の関連技術では、ホストが稼働系MSCPに送信したコマンドを大量に保持している状況で稼働系MSCPが故障すると、ホストから待機系MSCPへ全てのコマンドを送信し終わるまでに多くの時間がかかる。そのため、故障した稼働系MSCPが保持していた排他制御情報を待機系MSCPに速やかに再生するのは困難であった。一方、第2の関連技術では、そのような課題は解消されるけれども、複数のホストと複数のMSCPとが単一のネットワークで接続されていなければならないという制約がある。そのため、複数のホストと複数のMSCPとの接続形態による制約を受けずに、故障した稼働系MSCPが保持していた排他制御情報を待機系MSCPに速やかに再生し得る技術が望まれている。
【0006】
本発明の目的は、上述した課題を解決する疎結合システムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の一形態に係る疎結合システムは、
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、
前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
前記待機系排他制御装置は、前記稼働系排他制御装置から前記装置側ロックデータを受信し、
前記稼働系排他制御装置が故障した場合、前記待機系排他制御装置は、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
ように構成されている。
【0008】
また本発明の他の形態に係るリカバリ方法は、
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備えた疎結合システムが実行するリカバリ方法であって、
前記稼働系排他制御装置が、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
前記待機系排他制御装置が、前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
ように構成されている。
【0009】
また本発明の他の形態に係る待機系排他制御装置は、
複数のホストと前記複数のホストで共用する共用資源と稼働系排他制御装置と待機系排他制御装置とを備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信する、疎結合システムにおける前記待機系排他制御装置であって、
前記稼働系排他制御装置から前記装置側ロックデータを受信する手段と、
前記稼働系排他制御装置が故障した場合、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する手段と、
を備えるように構成されている。
【0010】
また本発明の他の形態に係るプログラムは、
複数のホストと前記複数のホストで共用する共用資源と稼働系排他制御装置と待機系排他制御装置とを備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信する、疎結合システムにおける前記待機系排他制御装置を構成するコンピュータに、
前記稼働系排他制御装置から前記装置側ロックデータを受信する処理と、
前記稼働系排他制御装置が故障した場合、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する処理と、
を行わせるように構成されている。
【発明の効果】
【0011】
本発明は、上述した構成を有することにより、複数のホストと複数のMSCPとの接続形態にかかわらず、故障した稼働系MSCPが保持していた排他制御情報を待機系MSCPに速やかに再生することができる。
【図面の簡単な説明】
【0012】
図1】本発明の第1の実施形態に係る疎結合システムのブロック図である。
図2】本発明の第1の実施形態におけるロックデータテーブルの一例を示す図である。
図3】本発明の第1の実施形態における受信状況テーブルの一例を示す図である。
図4】本発明の第1の実施形態において稼働系MSCPが正常に動作している状態でホスト上のAPから共用資源の排他要求が出されたときのシステムの動作を示すフローチャートである。
図5】本発明の第1の実施形態におけるMSCPリリーフ動作の一例を示すフローチャートである。
図6A】本発明の第1の実施形態において稼働系MSCPに故障が発生する迄にホストのAPから共用資源に対して出された一連の排他要求および稼働系MSCPからホストに出されたアテンション通知の一例を示す図である。
図6B】本発明の第1の実施形態において稼働系MSCPに故障が発生した時点の排他制御テーブルで管理されている共用資源の排他制御状態を表す図である。
図7A】本発明の第1の実施形態において稼働系MSCPに故障が発生した時点のホスト1のロックデータテーブルの一例を示す図である。
図7B】本発明の第1の実施形態において稼働系MSCPに故障が発生した時点のホスト2のロックデータテーブルの一例を示す図である。
図7C】本発明の第1の実施形態において稼働系MSCPに故障が発生した時点の待機系MSCPのロックデータテーブルの一例を示す図である。
図7D】本発明の第1の実施形態において稼働系MSCPに故障が発生した時点の待機系MSCPのロックデータテーブルの他の例を示す図である。
図8】本発明の第2の実施形態において稼働系MSCPが正常に動作している状態でホスト上のAPから共用資源の排他要求が出されたときの疎結合システムの動作を示すフローチャートである。
図9】本発明の第2の実施形態におけるMSCPリリーフ動作の一例を示すフローチャートである。
図10】本発明の第2の実施形態においてホストで定期的に行われる処理の一例を示すフローチャートである。
図11】本発明の第2の実施形態においてホストのMSCPリリーフ制御部で行われるロック成功に係る不足ロックデータに基づく復元処理(ステップS212)の一例を示すフローチャートである。
図12A】本発明の第3の実施形態におけるMSCPサブシステムの一例を示す図である。
図12B】本発明の第3の実施形態においてホストの排他制御部がロックコマンドを何れのMSCPに対して発行するかを決定するための制御情報の一例を示す図である。
図12C】本発明の第3の実施形態においてMSCP0故障時のMSCPサブシステムの復元状態を示す図である。
図12D】本発明の第3の実施形態においてMSCP1故障時のMSCPサブシステムの復元状態を示す図である。
図13A】本発明の第3の実施形態におけるMSCPサブシステムの他の例を示す図である。
図13B】本発明の第3の実施形態においてホストの排他制御部がロックコマンドを何れのMSCPに対して発行するかを決定するための制御情報の他の例を示す図である。
図13C】本発明の第3の実施形態においてMSCP0故障時のMSCPサブシステムの復元状態を示す図である。
図13D】本発明の第3の実施形態においてMSCP1故障時のMSCPサブシステムの復元状態を示す図である。
図13E】本発明の第3の実施形態においてMSCP2故障時のMSCPサブシステムの復元状態を示す図である。
図14】本発明の第4の実施形態に係る疎結合システムのブロック図である。
【発明を実施するための形態】
【0013】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態に係る疎結合システム100は、2台のホスト1、2と、ホスト1,2間で共用される共用資源3と、稼働系MSCP4と、待機系MSCP5とを備えている。ホスト1は、信号線61、62、63を通じて、共用資源3、稼働系MSCP4、待機系MSCP5に通信可能に接続されている。またホスト2は、信号線64、65、66を通じて、共用資源3、稼働系MSCP4、待機系MSCP5に通信可能に接続されている。また稼働系MSCP4と待機系MSCP5は、信号線67を通じて互いに通信可能に接続されている。
【0014】
共用資源3は、ホスト1,2間で共用する資源(リソース)である。共用資源3は、例えばディスク装置などの記憶装置、或いは記憶装置に記憶されたファイルなどであってよい。
【0015】
ホスト1は、オンライン処理やバッチ処理などの業務処理を実行する情報処理装置である。ホスト1は、演算処理部11と記憶部12と入出力装置13とを含んで構成されている。
【0016】
入出力装置13は、キーボードなどの入力装置と、液晶ディスプレイなどの画面表示装置とを含んで構成されている。記憶部12は、ハードディスクやメモリなどの記憶装置からなり、演算処理部11での各種処理に必要な処理情報およびプログラム121を記憶するように構成されている。プログラム121は、演算処理部11に読み込まれて実行されることにより各種処理部を実現するプログラムであり、入出力装置13などのデータ入出力機能を介して外部装置(図示せず)や記録媒体(図示せず)から予め読み込まれて記憶部12に保存される。記憶部12で記憶される主な処理情報として、ロックデータテーブル122と受信状況テーブル123がある。
【0017】
ロックデータテーブル122は、ホスト1から稼働系MSCP4に対して送信された共用資源3をロックもしくはアンロックするコマンドを保持するテーブルである。図2は、ロックデータテーブル122の一例を示す。この例のロックデータテーブル122は、ロックデータを格納するエントリを複数備えている。それぞれのエントリは、MSCP_ID、コマンドイメージ、結果、通番の各項目を有する。MSCP_IDの項目には、稼働系MSCP4を一意に識別する識別情報が記録される。コマンドイメージの項目には、ロックコマンドもしくはアンロックコマンドのコマンドイメージが記録される。コマンドイメージは、例えば、ロックか、アンロックの何れであるかを示す要求種別、対象となる共用資源3の識別情報、ロックもしくはアンロックを要求したホストのアプリケーションプロセス(タスクとも称す)を一意に識別する識別情報などを含んで構成されていてよい。結果の項目には、ロックコマンドもしくはアンロックコマンドの実行結果が記録される。実行結果には、例えば、ロック成功、ロック待ち、アンロック成功などがある。通番の項目には、ロックコマンドもしくはアンロックコマンドの実行結果に対して稼働系MSCP4側で採番された通し番号が記録される。
【0018】
受信状況テーブル123は、待機系MSCP5における稼働系MSCP4からのロックデータの受信状況を記録するテーブルである。図3は、受信状況テーブル123の一例を示す。この例の受信状況テーブル123は、稼働系MSCP_IDと待機系MSCP_IDと受信完了通番の各項目を有する1つのエントリを備えている。稼働系MSCP_IDの項目には、稼働系MSCP4の識別情報が記録される。待機系MSCP_IDの項目には、待機系MSCP5の識別情報が記録される。受信完了通番の項目には、待機系MSCP5が稼働系MSCP4から最後に受信したロックデータに含まれる通番が記録される。受信完了通番は、稼働系MSCP4から待機系MSCP5への転送が完了した最新のロックデータに含まれる通番であるとも言える。
【0019】
演算処理部11は、CPUなどのマイクロプロセッサとその周辺回路を有し、記憶部12からプログラム121を読み込んで実行することにより、上記ハードウェアとプログラム121とを協働させて各種処理部を実現するように構成されている。演算処理部11で実現される主な処理部として、AP(アプリケーションプロセス)111、排他制御部112、I/O制御部113、ロックデータ保持部114、ホスト間通信部115、受信状況問合せ部116、障害検出部117、および、MSCPリリーフ制御部118がある。
【0020】
AP111は、オンライン処理やバッチ処理などの業務処理を実行するように構成されている。AP111は、共用資源3に対してアクセスする前に共用資源3のロックを要求する排他要求(ロック要求)を排他制御部112に対して発行し、ロック成功のコマンド実行結果が排他制御部112から通知された後、共用資源3をアクセスするように構成されている。またAP111は、共用資源3に対するアクセスを終えると、共用資源3のアンロックを要求する排他要求(アンロック要求)を排他制御部112に対して発行するように構成されている。
【0021】
排他制御部112は、AP111から排他要求(ロック要求、アンロック要求)が発行されると、その排他要求に応じたコマンド(ロックコマンド、アンロックコマンド)を生成し、当該コマンドを稼働系MSCP4に対して送信(発行)するようI/O制御部113に要求するように構成されている。また排他制御部112は、上記コマンドの応答としてI/O制御部113からコマンド実行結果と通番とを受信すると、そのコマンド実行結果を要求元のAP111へ報告し、また、稼働系MSCP4の識別番号とI/O制御部113に対して発行したコマンドのイメージとI/O制御部113から受信したコマンド実行結果と通番とをロックデータ保持部114へ通知するように構成されている。
【0022】
I/O制御部113は、ホスト1と外部装置(MSCP、共用資源など)との間のI/O制御を司る。例えば、I/O制御部113は、排他制御部112からの要求に応じて、コマンド(ロックコマンド、アンロックコマンド)を、信号線62を通じて稼働系MSCP4に対して発行する。またI/O制御部113は、上記発行したコマンドの実行結果と通番とを信号線62を通じて稼働系MSCP4から受信すると、そのコマンド実行結果と通番とを排他制御部112に伝達する。その他、I/O制御部113は、ホスト間通信や受信状況問合せなどのためにホスト1とMSCP4、5との間のI/O制御を実施する。
【0023】
ロックデータ保持部114は、ロックデータをロックデータテーブル122に保存するように構成されている。例えば、ロックデータ保持部114は、稼働系MSCP4の識別番号とI/O制御部113に対して発行したコマンドのイメージとI/O制御部113から受信したコマンド実行結果と通番とを排他制御部112から通知されると、それらを1つのロックデータとしてロックデータテーブル122に確保した1つの空きエントリに記録する。
【0024】
ホスト間通信部115は、ホスト1とホスト2との間の通信を行うように構成されている。本実施形態では、ホスト間通信部115は、MSCP4もしくはMSCP5を介して、ホスト同士でメッセージ通信を行うように構成されている。但し、本発明は、MSCP4、5を使用してホスト間通信を行う構成に限定されない。例えば、図示しない拡張記憶装置などの記憶装置を使用してホスト間通信を行うようにしてもよいし、LANなどのネットワークを通じてホスト間通信を行うようにしてもよい。
【0025】
受信状況問合せ部116は、待機系MSCP5に対して、稼働系MSCP4からのロックデータの受信状況を問合せるように構成されている。また受信状況問合せ部116は、待機系MSCP5から受信状況の問合せ結果を受信すると、受信した問合せ結果に従って、受信状況テーブル123を更新するように構成されている。後述するように、受信状況の問合せ結果には、待機系MSCP5が稼働系MSCP4から最後に受信したロックデータに含まれる通番が含まれている。受信状況問合せ部116は、受信状況の問合せ結果に含まれる通番により、受信状況テーブルの受信完了通番の項目を上書きするように構成されている。
【0026】
障害検出部117は、システムの運用中、MSCP4、5の故障(障害)を検出するように構成されている。故障検出手法は任意である。例えば、障害検出部117は、一定周期でMSCP4、5に対して何らかの問合せを行い、その問合せに対して一定時間内にMSCP4、5から応答がなかった場合、MSCP4、5に故障が発生したことを検出してよい。
【0027】
MSCPリリーフ制御部118は、システムの運用中に障害検出部117によって稼働系MSCP4の故障が検出された場合、故障したMSCP4が保持していた排他制御情報を待機系MSCP5に再生した後、待機系MSCP5を新たに稼働系MSCPとして動作させてシステムの運用を継続させるように構成されている。ホスト間の排他制御に使われるMSCPの稼働系障害時に待機系MSCPに切り替えを行うことをMSCPリリーフと呼ぶ。MSCPリリーフ制御部118は、MSCPリリーフの制御を行うように構成されている。
【0028】
ホスト2は、ホスト1と同じくオンライン処理やバッチ処理などの業務処理を実行する情報処理装置である。ホスト2は、ホスト1と同様な構成および機能を有している。即ち、ホスト2は、ホスト1の演算処理部11と記憶部12と入出力装置13と同様な演算処理部21と記憶部22と入出力装置23とを含んで構成されている。また記憶部22は、ホスト1のプログラム121、ロックデータテーブル122、および、受信状況テーブル123と同様な、プログラム221、ロックデータテーブル222、および、受信状況テーブル223を記憶するように構成されている。また演算処理部21は、ホスト1のAP111、排他制御部112、I/O制御部113、ロックデータ保持部114、ホスト間通信部115、受信状況問合せ部116、障害検出部117、および、MSCPリリーフ制御部118と同様なAP211、排他制御部212、I/O制御部213、ロックデータ保持部214、ホスト間通信部215、受信状況問合せ部216、障害検出部217、および、MSCPリリーフ制御部218を含んで構成されている。
【0029】
稼働系MSCP4は、通常時に共用資源3の排他制御を実行する情報処理装置である。稼働系MSCP4は、演算処理部41と記憶部42とを含んで構成されている。
【0030】
記憶部42は、ハードディスクやメモリなどの記憶装置からなり、演算処理部41での各種処理に必要な処理情報およびプログラム421を記憶するように構成されている。プログラム421は、演算処理部41に読み込まれて実行されることにより各種処理部を実現するプログラムであり、入出力装置(図示せず)などのデータ入出力機能を介して外部装置(図示せず)や記録媒体(図示せず)から予め読み込まれて記憶部42に保存される。記憶部42で記憶される主な処理情報として、排他制御テーブル422と通信領域424とがある。
【0031】
排他制御テーブル422は、ホスト1およびホスト2からのロックコマンドおよびアンロックコマンドに基づいた共用資源3の排他制御状態を管理するテーブルである。例えば、排他制御テーブル422は、共用資源毎に、共用資源ID、その共用資源をロックしているホスト上のタスクIDの情報を含むロックリスト、その共用資源でロック待ちしているタスクIDの情報を含むロック待ちリストなどを管理する。
【0032】
通信領域424は、ホスト1とホスト2間で稼働系MSCP4を通じて行われるホスト間通信のために共用される通信領域である。
【0033】
演算処理部41は、CPUなどのマイクロプロセッサとその周辺回路を有し、記憶部42からプログラム421を読み込んで実行することにより、上記ハードウェアとプログラム421とを協働させて各種処理部を実現するように構成されている。演算処理部41で実現される主な処理部として、排他制御部411、通番制御部412、ロックデータ送信部413、および、メッセージ転送部414がある。
【0034】
排他制御部411は、ホスト1,2間で共用される共用資源3の排他制御を、排他制御テーブル422を生成・更新しながら実行するように構成されている。
【0035】
例えば、排他制御部411は、ホスト1、2からロックを要求するコマンドを受信すると、排他制御テーブル422に記録された共用資源のロック状態から、ロック要求された共用資源をロックすることが可能か否かを判定する。ロック可であれば、排他制御部411は、ロックを要求したタスクがその共用資源をロックしている情報を排他制御テーブル422に登録し、ロック要求を行ったホスト上のタスクに対してロック成功のコマンド実行結果と通番制御部412から取得した通番とを送信する。また排他制御部411は、稼働系MSCP4の識別情報と上記ロックを要求するコマンドのイメージと上記実行結果と上記通番とをロックデータ送信部413へ通知する。
【0036】
ロック不可であれば、排他制御部411は、ロック待ちの情報を排他制御テーブル422に登録し、ロック要求を行ったホスト上のタスクに対してロック待ちのコマンド実行結果と通番制御部412から取得した通番とを送信する。また排他制御部411は、稼働系MSCP4の識別情報と上記ロックを要求するコマンドのイメージと上記実行結果と上記通番とをロックデータ送信部413へ通知する。
【0037】
また排他制御部411は、ホスト1,2からアンロックを要求するコマンドを受信すると、アンロック要求に該当するタスクのロック情報を排他制御テーブル422から削除し、アンロック要求を行ったホスト上のタスクに対してアンロック成功のコマンド実行結果と通番制御部412から取得した通番を送信する。また排他制御部411は、稼働系MSCP4の識別情報と上記アンロックを要求するコマンドのイメージと上記実行結果と上記通番とをロックデータ送信部413へ通知する。
【0038】
さらに、アンロックされた共用資源に対してロック待ちしているタスクがあれば、排他制御部411は、排他制御テーブル422から当該ロック待ちの情報を削除した後、排他制御テーブル422にそのタスクがその共用資源をロックしている情報を登録し、ロック待ちしていたホスト上のタスクに対してロック成功の実行結果と排他IDと通番制御部412から取得した通番とを含む通知を送信する。以降、この通知をアテンション通知と呼ぶ。上記排他IDは、ロック待ちになっていたロックコマンドを特定できる情報であり、例えば、ロックコマンドに含まれるホスト上のタスクIDおよび共用資源IDから構成されていてよい。また排他制御部411は、稼働系MSCP4の識別情報とアテンション通知とをロックデータ送信部413へ通知する。
【0039】
通番制御部412は、排他制御部411から通番の取得が要求されると、排他制御部411に最後に通知した通番の次の通番を排他制御部411に通知するように構成されている。
【0040】
ロックデータ送信部413は、稼働系MSCP4の識別情報とロックもしくはアンロックを要求するコマンドのイメージと当該コマンドの実行結果と通番とが排他制御部411から通知されると、それらを1つのロックデータとして、信号線67を通じて待機系MSCP5へ送信するように構成されている。またロックデータ送信部413は、稼働系MSCP4の識別情報とアテンション通知とが排他制御部411から通知されると、それらを1つのロックデータとして、信号線67を通じて待機系MSCP5へ送信するように構成されている。ロックデータ送信部413は、1つのロックデータが発生する毎に、その発生したロックデータを、信号線67を通じて待機系MSCP5へ送信するように構成されていてよい。或いはロックデータ送信部413は、発生したロックデータを送信バッファに蓄積し、蓄積量が閾値を超えるか、或いは最も過去に蓄積したロックデータの蓄積時刻からの経過時間が一定時間を超えると、送信バッファに蓄積された全てのロックデータを、信号線67を通じて一括して待機系MSCP5へ送信するように構成されていてよい。
【0041】
メッセージ転送部414は、稼働系MSCP4を通じて行われるホスト間通信のメッセージの転送を行うように構成されている。例えば、メッセージ転送部414は、信号線62を通じてホスト1から受信したホスト2宛てのメッセージを、通信領域424に一時的に保持し、その後、通信領域424に保持したホスト2宛てのメッセージを、信号線65を通じてホスト2へ送信するように構成されている。またメッセージ転送部414は、信号線65を通じてホスト2から受信したホスト1宛てのメッセージを、通信領域424に一時的に保持し、その後、通信領域424に保持したホスト1宛てのメッセージを、信号線62を通じてホスト1へ送信するように構成されている。
【0042】
待機系MSCP5は、稼働系MSCP4が故障した場合に稼働系MSCP4に代わって共用資源3の排他制御を実行する情報処理装置である。待機系MSCP5は、演算処理部51と記憶部52とを含んで構成されている。
【0043】
記憶部52は、ハードディスクやメモリなどの記憶装置からなり、演算処理部51での各種処理に必要な処理情報およびプログラム521を記憶するように構成されている。プログラム521は、演算処理部51に読み込まれて実行されることにより各種処理部を実現するプログラムであり、入出力装置(図示せず)などのデータ入出力機能を介して外部装置(図示せず)や記録媒体(図示せず)から予め読み込まれて記憶部52に保存される。記憶部52で記憶される主な処理情報として、排他制御テーブル522とロックデータテーブル523と通信領域524とがある。
【0044】
ロックデータテーブル523は、稼働系MSCP4から受信したロックデータを保持するテーブルである。
【0045】
排他制御テーブル522は、MSCPリリーフによって再生された排他制御テーブルである。その構成は、排他制御テーブル422と同じである。
【0046】
通信領域524は、ホスト1とホスト2間で待機系MSCP5を通じて行われるホスト間通信のために共用される通信領域である。
【0047】
演算処理部51は、CPUなどのマイクロプロセッサとその周辺回路を有し、記憶部52からプログラム521を読み込んで実行することにより、上記ハードウェアとプログラム521とを協働させて各種処理部を実現するように構成されている。演算処理部51で実現される主な処理部として、メッセージ転送部514、ロックデータ受信部515、排他制御テーブル再生部516、および、受信状況応答部517がある。
【0048】
ロックデータ受信部515は、稼働系MSCP4のロックデータ送信部413から送信されたロックデータを、信号線67を通じて受信するように構成されている。ロックデータ受信部515は、受信したロックデータをロックデータテーブル523に保存するように構成されている。またロックデータ受信部515は、稼働系MSCP4から最後に受信したロックデータに含まれる通番を受信状況応答部517に通知するように構成されている。さらにロックデータ受信部515は、MSCPリリーフ時、ホスト1、2のMSCPリリーフ制御部118から送信されたロックデータ(後述する不足ロックデータ)を、信号線63、66を通じて受信し、ロックデータテーブル523に保存するように構成されている。
【0049】
受信状況応答部517は、ロックデータ受信部515から通知された、稼働系MSCP4から最後に受信したロックデータに含まれる通番を保持するように構成されている。また受信状況応答部517は、ホスト1、2の受信状況問合せ部116、216から受信状況の問合せ要求を受信すると、最後に保持した通番を問合せ元に送信するように構成されている。
【0050】
排他制御テーブル再生部516は、MSCPリリーフ時、ロックデータテーブル523に保持されたロックデータに基づいて、故障した稼働系MSCP4の排他制御テーブル422を排他制御テーブル522として再生するように構成されている。
【0051】
メッセージ転送部514は、待機系MSCP5を通じて行われるホスト間通信のメッセージの転送を行うように構成されている。例えば、メッセージ転送部514は、信号線63を通じてホスト1から受信したホスト2宛てのメッセージを、通信領域524に一時的に保持し、その後、通信領域524に保持したホスト2宛てのメッセージを、信号線66を通じてホスト2へ送信するように構成されている。またメッセージ転送部514は、信号線66を通じてホスト2から受信したホスト1宛てのメッセージを、通信領域524に一時的に保持し、その後、通信領域524に保持したホスト1宛てのメッセージを、信号線63を通じてホスト1へ送信するように構成されている。
【0052】
次に、上述のように構成された疎結合システム100の動作を説明する。先ず、稼働系MSCP4が正常に動作している状態で何れかのホストのAPから共用資源3の排他要求が出されたときのシステムの動作を説明する。一例として、ホスト1のAP111から排他要求が出された場合について説明するが、ホスト2のAP211から排他要求が出された場合も同様の動作となる。
【0053】
図4は、稼働系MSCP4が正常に動作している状態でホスト1上のAP111から共用資源3の排他要求が出されたときのシステムの動作を示すフローチャートである。図4を参照すると、AP111から共用資源3の排他要求(ロック要求もしくはアンロック要求)が出されると(ステップS101)、排他制御部112は排他コマンド(ロックコマンドもしくはアンロックコマンド)を生成し(ステップS102)、I/O制御部113は、排他コマンドを、信号線62を通じて稼働系MSCP4に対して送信(発行)する(ステップS103)。
【0054】
稼働系MSCP4の排他制御部411は、ホスト1から排他コマンドを受信すると(ステップS104)、排他処理を実行し(ステップS105)、その実行結果(ロック成功、ロック待ち、アンロック成功)に対して通番制御部412から取得した通番を付与する(ステップS106)。次に排他制御部411は、実行結果と通番とを要求元のホスト1へ返却する(ステップS107)。またロックデータ送信部413は、排他制御部411から稼働系MSCP4の識別情報と上記排他コマンドのイメージとその実行結果と通番とを受け取り、それらを1つのロックデータとして信号線67を通じて待機系MSCP5へ送信する(ステップS108)。
【0055】
ホスト1のI/O制御部113は、排他コマンドに対するコマンド結果と通番とを信号線62を通じて稼働系MSCP4から受信する(ステップS109)。次にロックデータ保持部114は、稼働系MSCP4の識別情報と上記発行された排他コマンドのイメージとその実行結果と通番とを1つのロックデータとしてロックデータテーブル122に保存する(ステップS110)。また排他制御部112は、上記コマンド結果を要求元のAP111へ通知する(ステップS111)。一方、待機系MSCP5のロックデータ受信部515は、稼働系MSCP4から送信されたロックデータを、信号線67を通じて受信し(ステップS112)、ロックデータテーブル523に保存する(ステップS113)。
【0056】
また稼働系MSCP4の排他制御部411は、ホスト1から受信した排他コマンドがアンロックコマンドである場合、アンロックされた共用資源に対してロック待ちしているタスクがあれば(ステップS114)、そのロック待ちをロック成功に変更し(ステップS115)、そのロック成功の実行結果に通番制御部412から取得した通番を付与し(ステップS116)、ロック成功のコマンド実行結果と排他IDと通番とを含むアテンション通知をホストへ送信する(ステップS117)。またロックデータ送信部413は、稼働系MSCP4の識別情報と上記アテンション通知とを1つのロックデータとして信号線67を通じて待機系MSCP5へ送信する(ステップS118)。
【0057】
ホスト1のI/O制御部113は、上記アテンション通知を受信する(ステップS119)。次にロックデータ保持部114は、稼働系MSCP4の識別情報と上記アテンション通知とを1つのロックデータとしてロックデータテーブル122に保存する(ステップS120)。また排他制御部112は、アテンション通知の排他IDで特定されるAP111へロック成功のコマンド結果を通知する(ステップS121)。一方、待機系MSCP5のロックデータ受信部515は、稼働系MSCP4から送信されたアテンション通知を含むロックデータを、信号線67を通じて受信し(ステップS122)、ロックデータテーブル523に保存する(ステップS123)。
【0058】
上述したように、稼働系MSCP4が正常に動作している場合、稼働系MSCP4は、何れかのホスト1、2から送信された共用資源3をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元のホスト1、2に送信し、且つ、稼働系MSCP4の識別情報とコマンドイメージとその実行結果と通番とを含むロックデータを待機系MSCP5に送信する。また、それぞれのホスト1、2は、稼働系MSCP4に送信したコマンドと稼働系MSCP4から受信したコマンド実行結果と通番とを含むロックデータをロックデータテーブル122に保持する。さらに待機系MSCP5は、稼働系MSCP4から受信したロックデータをロックデータテーブル523に保存する。このような動作が行われることにより、ホスト1、2から稼働系MSCP4に対して送信された排他コマンドとその実行結果とが、ホスト側のロックデータテーブル122、222に保存されると共に、待機系MSCP5側のロックデータテーブル523に保存されることになる。但し、稼働系MSCP4が、ステップS107の実行直後もしくはステップS117の実行直後に故障した場合、稼働系MSCP4からホスト1,2へ送信されたコマンド実行結果やアテンション通知は稼働系MSCP4に送信されない。また、ロックデータ送信部413が、過去一定期間もしくは一定量のロックデータを送信バッファに蓄積後、一括して信号線67を通じてロックデータ受信部515へ送信する場合、送信前に稼働系MSCP4が故障すると、送信バッファに蓄積された全てのロックデータが待機系MSCP5へ送信されない。稼働系MSCP4故障時にホスト1、2のロックデータテーブル122、222に保存されているロックデータのうち、待機系MSCP5のロックデータテーブル523に存在しないロックデータを、不足ロックデータと呼ぶことがある。
【0059】
次に、稼働系MSCP4の故障時にホスト間の排他制御に使われるMSCPを待機系MSCPに切り替えるMSCPリリーフ動作について説明する。
【0060】
図5はMSCPリリーフ動作の一例を示すフローチャートである。図5を参照すると、ホスト1の障害検出部117が稼働系MSCP4の障害を検出すると(ステップS131)、ホスト1が代表ホストとなって、MSCPリリーフ制御部118によりMSCPリリーフ動作が開始される。
【0061】
先ず、MSCPリリーフ制御部118は、ホスト間通信部115によるホスト間通信を使用して、他の全ホストのMSCPリリーフ制御部に対して、稼働系MSCP4に故障が発生した旨の通知を送信する(ステップS132)。その後、MSCPリリーフ制御部118は、AP111から共用資源3に対する新たな排他要求(ロック要求もしくはアンロック要求)が出されてもそれを保留するように排他制御部112を制御し、他の全ホストからの新規排他要求抑止完了通知の受信を待ち合わせる(ステップS134)。ホスト2のMSCPリリーフ制御部218は、ホスト間通信によって稼働系MSCP4に故障が発生した旨の通知を代表ホストから受信すると(ステップS135)、AP211から共用資源3に対する新たな排他要求(ロック要求もしくはアンロック要求)が出されてもそれを保留するように排他制御部212を制御し(ステップS136)、ホスト間通信部215によるホスト間通信を使用して、要求元のホスト1のMSCPリリーフ制御部118に新規排他要求抑止完了通知を送信する(ステップS137)。
【0062】
代表ホスト1のMSCPリリーフ制御部118は、他の全ホストから新規排他要求抑止完了通知を受信すると(ステップS138)、ホスト間通信部115によるホスト間通信を使用して、他の全ホストのMSCPリリーフ制御部に対して、不足ロックデータ送信要求を送信する(ステップS139)。その後、MSCPリリーフ制御部118は、ロックデータテーブル122に保存されているロックデータのうち、待機系MSCP5のロックデータテーブル523に保存されていないロックデータ(不足ロックデータ)をロックデータテーブル122から取得し、信号線63を通じて待機系MSCP5へ送信し(ステップS140)、他の全ホストからの不足ロックデータ送信完了通知の受信を待ち合わせる(ステップS141)。なお、MSCPリリーフ制御部118は、不足ロックデータが存在しない場合、待機系MSCP5への不足ロックデータの送信は行わず、ステップS141の処理へと進む。ここで、MSCPリリーフ制御部118は、不足ロックデータを次のようにして取得する。
【0063】
先ず、MSCPリリーフ制御部118は、受信状況問合せ部116に対して受信完了通番の問合せを依頼する。受信状況問合せ部116は、その依頼に応じて待機系MSCP5の受信状況応答部517へ受信完了通番を問合せる。その問合せに応じて受信状況応答部517は、稼働系MSCP4から最後に受信したロックデータに含まれる通番を受信完了通番として受信状況問合せ部116へ送信する。受信状況問合せ部116は、受信した受信完了通番をMSCPリリーフ制御部118へ通知する。MSCPリリーフ制御部118は、通知された受信完了通番以降の通番を有するロックデータを不足ロックデータとしてロックデータテーブル122から取得する。
【0064】
ホスト2のMSCPリリーフ制御部218は、ホスト間通信によって不足ロックデータ送信要求を受信すると(ステップS142)、ロックデータテーブル222に保存されているロックデータのうち、待機系MSCP5のロックデータテーブル523に保存されていないロックデータを不足ロックデータとしてロックデータテーブル222から取得し、信号線66を通じて待機系MSCP5へ送信し(ステップS143)、ホスト間通信部215のホスト間通信を使用して、代表ホスト1のMSCPリリーフ制御部118に対して不足ロックデータ送信完了通知を送信する(ステップS144)。なお、MSCPリリーフ制御部218は、不足ロックデータが存在しない場合、待機系MSCP5への不足ロックデータの送信は行わず、ステップS144の処理へと進む。また、MSCPリリーフ制御部218は、不足ロックデータの取得では、MSCPリリーフ制御部118と同様の方法で受信完了通番を取得し、受信完了通番以降の通番を有するロックデータをロックデータテーブル523から取得する。
【0065】
待機系MSCP5のロックデータ受信部515は、ホスト1のMSCPリリーフ制御部118から送信された不足ロックデータを、信号線63を通じて受信すると、ロックデータテーブル523へ保存する(ステップS145)。また待機系MSCP5のロックデータ受信部515は、ホスト2のMSCPリリーフ制御部218から送信された不足ロックデータを、信号線66を通じて受信すると、ロックデータテーブル523へ保存する(ステップS145)。
【0066】
代表ホスト1のMSCPリリーフ制御部118は、他の全ホストから不足ロックデータ送信完了通知を受信すると(ステップS146)、信号線63を通じて待機系MSCP5の排他制御テーブル再生部516に対して排他情報再生要求を送信する(ステップS147)。
【0067】
待機系MSCP5の排他制御テーブル再生部516は、排他情報再生要求を受信すると(ステップS148)、ロックデータテーブル523から通番順にロックデータを読み出し、ロックデータに含まれるコマンド、コマンド実行結果、および、アテンション通知に基づいて、障害が発生した稼働系MSCP4の排他制御テーブル422と実質的に同じ内容の排他制御テーブル522を再生する(ステップS149)。そして、排他制御テーブル再生部516は、排他制御テーブル522の再生が完了すると、信号線63を通じて再生完了通知を代表ホスト1のMSCPリリーフ制御部118へ送信し(ステップS150)、新稼働系MSCPとして動作を開始する。
【0068】
代表ホスト1のMSCPリリーフ制御部118は、待機系MSCP5の排他制御テーブル再生部516から再生完了通知を受信すると(ステップS151)、ホスト間通信部115のホスト間通信を使用して、他の全ホストのMSCPリリーフ制御部に対して運用再開要求を送信する(ステップS152)。運用再開要求を受信したホスト2のMSCPリリーフ制御部218、および、運用再開要求を送信したホスト1のMSCPリリーフ制御部118は、以後、MSCP5を新稼働系MSCPとしてシステムの運用を再開する。
【0069】
このように本実施形態では、稼働系MSCP4が故障した場合、ホスト1、2のそれぞれは、ロックデータテーブルに保存されているロックデータのうち待機系MSCP5が稼働系MSCP4から受信したロックデータに含まれる通番の最新のもの以降の通番のロックデータ(不足ロックデータ)を待機系MSCP5へ送信し、待機系MSCP5は、稼働系MSCP4が正常に動作しているときに稼働系MSCP4から受信したロックデータとホスト1,2のそれぞれから受信した不足ロックデータとに基づいて、故障した稼働系MSCP4の排他制御テーブル422の排他制御情報を排他制御テーブル522に再生する。
【0070】
次に、簡単な例を挙げて、本実施形態によるMSCPリリーフについてさらに詳細に説明する。
【0071】
図6Aは、稼働系MSCP4に故障が発生する迄にホスト1、2のAP111、211から共用資源3に対して出された一連の排他要求および稼働系MSCP4からホストに出されたアテンション通知の一例を示す図である。この例では、共用資源3は、ホスト1、2で共用される資源a1~a3、b1~b3を含んで構成されている。また、AP111、211からの排他要求およびアテンション通知は時間的に以下の順番で出されている。
【0072】
(1)AP111から資源a2に対するロック要求(結果は成功)
(2)AP111から資源a1に対するロック要求(結果は成功)
(3)AP211から資源a2に対するロック要求(結果はロック待ち)
(4)AP111から資源a1に対するアンロック要求(結果は成功)
(5)AP111から資源a2に対するアンロック要求(結果は成功)
(6)稼働系MSCP4からAP211に対する資源a2に係るアテンション通知
(7)AP211から資源a3に対するロック要求(結果は成功)
(8)AP111から資源b1に対するロック要求(結果は成功)
(9)AP211から資源b2に対するロック要求(結果は成功)
(10)AP111から資源b3に対するロック要求(結果は成功)
(11)AP211から資源a3に対するアンロック要求(結果は成功)
【0073】
図6Bは、稼働系MSCP4に故障が発生した時点の排他制御テーブル422で管理されている共用資源3の排他制御状態を表す図である。図6Bに示すように、稼働系MSCP4の故障時点の排他制御テーブル422は、AP111が資源b1、b3をロックし、AP211が資源a2、b2をロックしている、という排他制御状態を保持している。
【0074】
図7A図7B、および、図7Cは、稼働系MSCP4に故障が発生した時点のホスト1のロックデータテーブル122、ホスト2のロックデータテーブル222、および、待機系MSCP5のロックデータテーブル523の一例を表す図である。この例では、ロックデータテーブル122には、図6Aに示される6つの要求((1)ロック要求、(2)ロック要求、(4)アンロック要求、(5)アンロック要求、(8)ロック要求、(10)ロック要求)に1対1に対応する6つのロックデータが保存されている。またロックデータテーブル222には、図6Aに示される4つの要求((3)ロック要求、(7)ロック要求、(9)ロック要求、(11)アンロック要求)と1つのアテンション通知((6)アテンション通知)とに1対1に対応する5つのロックデータが保存されている。また、待機系MSCP5のロックデータテーブル523には、図6Aに示される全ての要求およびアテンション通知に1対1に対応する全てのロックデータが保存されている。
【0075】
このような状態でMSCPリリーフが開始されると、待機系MSCP5が稼働系MSCP4から最後に受信したロックデータに含まれる通番(受信完了通番)は、「111」である。そのため、MSCPリリーフ制御部118、218は、ロックデータテーブル122、222中に受信完了通番「111」以降の通番を含むロックデータが1つも存在しないので、ステップS140、S143における待機系MSCP5への不足ロックデータの送信は実質的に行われない。そのため、ステップS147における待機系MSCP5に対する排他情報再生要求の送信は、速やかに実施されることになる。
【0076】
待機系MSCP5の排他制御テーブル再生部516は、ロックデータテーブル523に保存された図7Cに示す合計11個のロックデータを、通番の順に処理することによって、故障時点の排他制御テーブル422を排他制御テーブル522に再生する。例えば、排他制御テーブル再生部516は、通番101のロックデータに基づいて、共用資源a2がAP111によってロックされている状態を管理する情報を排他制御テーブル522に作成する。即ち、排他制御テーブル再生部516は、AP111から共用資源a2に対するロックコマンドが発行され且つロック成功したときに稼働系MSCP4の排他制御部411が排他制御テーブル422に対して行う処理と同様の処理を、排他制御テーブル522に対して行う。また排他制御テーブル再生部516は、通番103のロックデータの場合、AP211が共用資源a2をロック待ちしている状態を管理する情報を排他制御テーブル522に作成する。また排他制御テーブル再生部516は、通番105のロックデータの場合、共用資源a2がAP111によってロックされている状態を管理する情報を排他制御テーブル522から削除する。また排他制御テーブル再生部516は、通番106のアテンション通知に係るロックデータの場合、AP211が共用資源a2をロック待ちしている状態を管理する情報を排他制御テーブル522から削除し、代わりに、共用資源a2がAP211によってロックされている状態を管理する情報を排他制御テーブル522に作成する。
【0077】
上記説明では、待機系MSCP5の排他制御テーブル再生部516は、ロックデータテーブル523に保存されたロックデータを通番の順に処理することによって、故障時点の排他制御テーブル422を排他制御テーブル522に再生した。しかし、排他制御テーブルの再生方法は上記に限定されない。故障時点の排他制御テーブル422を再生できるのであれば、他の方法を使用してもよい。例えば、次のような方法であってもよい。
【0078】
待機系MSCP5の排他制御テーブル再生部516は、ロックデータテーブル523に対して、先ず、以下の処理1、2をその順に行う。
処理1:アテンション通知の前提となるロック待ちのロックデータにおけるロック待ちをロック成功に変更し、当該アテンション通知のロックデータを削除する。
処理2:アンロック成功のロックデータとその前提となるロック成功のロックデータとをロックデータテーブル523から削除する。
【0079】
次に排他制御テーブル再生部516は、ロックデータテーブル523からロック成功のロックデータを全て抽出し、それぞれのコマンドイメージに従って、ロックコマンドに応じた排他制御を行って排他制御テーブル522を更新する。次に排他制御テーブル再生部516は、ロックデータテーブル523からロック待ちのロックデータを全て抽出し、それぞれのコマンドイメージに従って、ロックコマンドに応じた排他制御を行って排他制御テーブル522を更新する。以上の処理により、故障時点の排他制御テーブル422を排他制御テーブル522に再生することができる。
【0080】
図7Cに示すように、稼働系MSCP4に故障が発生した時点のホスト1、2のロックデータテーブル122、222に保存されたロックデータの全てが、待機系MSCP5のロックデータテーブル523に保存されている状況では、ホスト1、2側から待機系MSCP5へロックデータを1つも送信することなく、稼働系MSCP4故障時の排他制御テーブル422を待機系MSCP5の排他制御テーブル522に再生することができる。
【0081】
図7Dは、稼働系MSCP4に故障が発生した時点の待機系MSCP5のロックデータテーブル523の他の例を表す図である。この例では、ロックデータテーブル523には、図6Aに示される5つの要求((1)ロック要求、(2)ロック要求、(3)ロック要求、(4)アンロック要求、(5)アンロック要求)に1対1に対応する5つのロックデータが保存されている。このような状態でMSCPリリーフが開始されると、待機系MSCP5が稼働系MSCP4から最後に受信したロックデータに含まれる通番(受信完了通番)は、「105」になる。そのため、MSCPリリーフ制御部118は、通番「105」以降の通番を含むロックデータ(通番108、110のロックデータ)を不足ロックデータとしてロックデータテーブル122から取得し、待機系MSCP5へ送信する。またMSCPリリーフ制御部218は、通番「105」以降の通番を含むロックデータ(通番106、107、109、111)を不足ロックデータとしてロックデータテーブル122から取得し、待機系MSCP5へ送信する。そして、MSCPリリーフ制御部118から待機系MSCP5に対して排他情報再生要求が送信される。待機系MSCP5の排他制御テーブル再生部516は、ロックデータテーブル523に保存された図7Dに示す合計5個のロックデータと、上述のようにしてホスト1、2から送信された不足ロックデータとを、通番の順に処理することによって、故障時点の排他制御テーブル422を排他制御テーブル522に再生する。このように、稼働系MSCP4に故障が発生した時点でホスト1、2のロックデータテーブル122、222に保存されているロックデータの全てが待機系MSCP5のロックデータテーブル523に保存されていない場合、不足しているロックデータだけをホスト1、2側から待機系MSCP5へ送信する。これにより、稼働系MSCP4故障時の排他制御テーブル422を待機系MSCP5の排他制御テーブル522に速やかに再生することができる。
【0082】
このように本実施形態によれば、ホスト1、2が稼働系MSCP4に送信したロックコマンド、アンロックコマンドをロックデータテーブル122、222に大量に保持している状況で稼働系MSCP4が故障した場合であっても、故障した稼働系MSCP4が排他制御テーブル422に保持していた排他制御情報を待機系MSCP5の排他制御テーブル522に速やかに再生することができる。
【0083】
[第2の実施形態]
次に、本発明の第2の実施形態に係る疎結合システム200について、第1の実施形態との相違点を中心に説明する。
【0084】
図8は稼働系MSCP4が正常に動作している状態でホスト1上のAP111から共用資源3の排他要求が出されたときの疎結合システム200の動作を示すフローチャートである。また図9はMSCPリリーフ動作の一例を示すフローチャートである。また図10はホスト1,2において定期的に行われる処理の一例を示すフローチャートである。
【0085】
第1の実施形態では、待機系MSCP5の排他制御テーブル再生部516は、MSCPリリーフの開始後にホストから受信した排他情報再生要求を契機に排他制御テーブル522の再生処理を開始した(図5のステップS148、S149)。これに対して本実施形態では、排他制御テーブル再生部516は、稼働系MSCP4が正常に動作している最中に、稼働系MSCP4から受信したロックデータに基づいて、排他制御テーブル522の再生処理を行う。具体的には、稼働系MSCP4が正常に動作している最中に、ロックデータ受信部515が稼働系MSCP4のロックデータ送信部413から新たなロックデータを受信し保存する毎に(図8のステップS112、S113)、排他制御テーブル再生部516は、その新たに受信して保存されたロックデータに基づいて排他制御テーブル522の再生処理を行う(ステップS201)。こうすることによって、待機系MSCP5が稼働系MSCP4と全く同じ動作をほぼ並行して行うことになるため、稼働系MSCP4故障によるMSCPリリーフ時に待機系MSCP5で再生すべきコマンド量が低減され、故障した稼働系MSCP4が排他制御テーブル422に保持していた排他情報を待機系MSCP5の排他制御テーブル522により速やかに再生することができる。
【0086】
また本実施形態では、排他制御テーブル再生部516は、排他制御テーブル522の再生処理に使ったロックデータに含まれる稼働系MSCP4の識別情報と通番とを受信状況応答部517に通知し、受信状況応答部517は、通知された稼働系MSCP4の識別情報に対応して、通知された通番を受信完了通番として保持する(ステップS202)。さらに本実施形態では、図10のフローチャートに示されるように、ホスト1、2の受信状況問合せ部116、216は、稼働系MSCP4が正常に動作している最中に、例えばタイマによって定期的に起動され、起動される毎に、待機系MSCP5に対して稼働系MSCP4からのロックデータの受信状況を問合せ(ステップS231)、その応答である受信完了通番を受信状況テーブル123に保存する(ステップS232)。さらに、ロックデータ保持部114、214は、受信状況テーブル123に保存された最新の受信完了通番に基づいて、ロックデータテーブル122、222を更新する(ステップS233)。
【0087】
ステップS233におけるロックデータテーブル122、222の更新では、ロックデータ保持部114、214は、以下の処理a、bをその順に行う。
処理a:最新の受信完了通番以前の通番を有するアテンション通知のロックデータの通番で、その前提となるロック待ちのロックデータの通番を上書きし、且つ、ロック待ちをロック成功に変更する。また当該アテンション通知のロックデータを削除する。
処理b:最新の受信完了通番以前の通番を有するアンロック成功のロックデータとその前提となるロック成功のロックデータとをロックデータテーブル122、222から削除する。
【0088】
例えば、ロックデータテーブル122が図7Aに示す状態にあるときに最新の受信完了通番が「107」として得られた場合、ロックデータ保持部114は、通番「104」のアンロック成功のロックデータおよびその前提となる通番「102」のロック成功のロックデータと、通番「105」のアンロック成功のロックデータおよびその前提となる通番「101」のロック成功のロックデータとをロックデータテーブル122から削除する。また、ロックデータテーブル222が図7Bに示す状態にあるときに最新の受信完了通番が「107」として得られた場合、ロックデータ保持部214は、アテンション通知のロックデータの通番「106」で、その前提となるロック待ちのロックデータの通番「103」を上書きし、且つ、そのロック待ちをロック成功に変更する。なお、通番「111」のアンロック成功のロックデータおよびその前提となる通番「107」のロック成功のロックデータは、双方の通番が共に受信完了通番「107」以降でないため、削除されない。その理由は、もし削除してしまうと、待機系MSCP5が受信完了通番「107」の時点で稼働系MSCP4に故障が発生した場合、待機系MSCP5が排他制御テーブル522上で管理している、AP211が共用資源a3をロックしている状態を、アンロックするためのコマンドをホスト2から待機系MSCP5へ不足ロックデータとして送信できないためである。
【0089】
上記のようにロックデータテーブル122、222を更新することにより、ロックデータテーブル122、222に保存されるロックデータ量を削減でき、ロックデータテーブル122、222に必要な記憶容量を削減することができる。
【0090】
また第1の実施形態では、ホスト1、2のMSCPリリーフ制御部118、218は、不足ロックデータ全体を待機系MSCP5へ送信し、排他制御テーブル再生部516は、受信したロックデータに基づいて排他制御テーブル522の再生を行った。これに対して本実施形態では、ホスト1、2のMSCPリリーフ制御部118、218は、不足ロックデータに含まれるロック成功したロックコマンド、ロック待ちしたロックコマンドを待機系MSCP5に対して発行し、排他制御テーブル再生部516は、発行されたロックコマンドに基づく排他制御処理を行うことによって、排他制御テーブル522の再生を行う。以下、この点について詳細に説明する。
【0091】
図9に示すように、ホスト1のMSCPリリーフ制御部118は、他の全ホストから新規排他要求抑止完了通知を受信すると(ステップS138)、ホスト間通信部115によるホスト間通信を使用して、他の全ホストのMSCPリリーフ制御部に対して、ロック成功に係る不足ロックデータに基づく復元要求を送信する(ステップS211)。その後、MSCPリリーフ制御部118は、ロックデータテーブル122に保存されているロック成功に係るロックデータのうち待機系MSCP5のロックデータテーブル523に保存されていないロックデータに基づいて、待機系MSCP5の排他制御テーブル再生部516との間で、不足ロックデータに基づく復元処理を行う(ステップS212、S213)。そして、MSCPリリーフ制御部118は、他の全ホストからのロック成功に係る不足ロックデータに基づく復元完了通知の受信を待ち合わせる(ステップS214)。なお、MSCPリリーフ制御部118は、ロック成功に係る不足ロックデータが存在しない場合、待機系MSCP5との間のロック成功に係る不足ロックデータに基づく復元処理は行わず、ステップS214の処理へと進む。
【0092】
一方、ホスト2のMSCPリリーフ制御部218は、ロック成功に係る不足ロックデータに基づく復元要求を受信すると(ステップS215)、ロックデータテーブル222に保存されているロック成功に係るロックデータのうち待機系MSCP5のロックデータテーブル523に保存されていないロックデータ(不足ロックデータ)に基づいて、待機系MSCP5の排他制御テーブル再生部516との間で、不足ロックデータに基づく復元処理を行う(ステップS216、S217)。そして、MSCPリリーフ制御部218は、ロック成功に係る不足ロックデータに基づく復元処理を完了すると、ホスト間通信部215によるホスト間通信を使用して、ロック成功に係る不足ロックデータに基づく復元完了通知をホスト1のMSCPリリーフ制御部118へ送信する(ステップS218)。
【0093】
ホスト1のMSCPリリーフ制御部118は、他の全ホストからロック成功に係る不足ロックデータに基づく復元完了通知を受信すると(ステップS219)、ホスト間通信部115によるホスト間通信を使用して、他の全ホストのMSCPリリーフ制御部に対して、ロック待ちに係る不足ロックデータに基づく復元要求を送信する(ステップS221)。その後、MSCPリリーフ制御部118は、ロックデータテーブル122に保存されているロック待ちに係るロックデータのうち待機系MSCP5のロックデータテーブル523に保存されていないロックデータに基づいて、待機系MSCP5の排他制御テーブル再生部516との間で、不足ロックデータに基づく復元処理を行う(ステップS222、S223)。そして、MSCPリリーフ制御部118は、他の全ホストからのロック待ちに係る不足ロックデータに基づく復元完了通知の受信を待ち合わせる(ステップS224)。なお、MSCPリリーフ制御部118は、ロック待ちに係る不足ロックデータが存在しない場合、待機系MSCP5との間のロック待ちに係る不足ロックデータに基づく復元処理は行わず、ステップS224の処理へと進む。
【0094】
一方、ホスト2のMSCPリリーフ制御部218は、ロック待ちに係る不足ロックデータに基づく復元要求を受信すると(ステップS225)、ロックデータテーブル222に保存されているロック待ちに係るロックデータのうち待機系MSCP5のロックデータテーブル523に保存されていないロックデータ(不足ロックデータ)に基づいて、待機系MSCP5の排他制御テーブル再生部516との間で、不足ロックデータに基づく復元処理を行う(ステップS226、S227)。そして、MSCPリリーフ制御部218は、ロック待ちに係る不足ロックデータに基づく復元処理を完了すると、ホスト間通信部215によるホスト間通信を使用して、ロック待ちに係る不足ロックデータに基づく復元完了通知をホスト1のMSCPリリーフ制御部118へ送信する(ステップS228)。ロック成功およびロック待ちに係る不足ロックデータに基づく復元が完了した待機系MSCP5は、以後、新稼働系として動作する。
【0095】
ホスト1のMSCPリリーフ制御部118は、他の全ホストからロック待ちに係る不足ロックデータに基づく復元完了通知を受信すると(ステップS229)、ホスト間通信部115のホスト間通信を使用して、他の全ホストのMSCPリリーフ制御部に対して運用再開要求を送信し(ステップS230)、以後、MSCP5を新稼働系MSCPとしてシステムの運用を再開する。またホスト2のMSCPリリーフ制御部218は、運用再開要求を受信すると(ステップS231)、以後、MSCP5を新稼働系MSCPとしてシステムの運用を再開する。
【0096】
図11は、ホスト1のMSCPリリーフ制御部118で行われるロック成功に係る不足ロックデータに基づく復元処理(ステップS212)の一例を示すフローチャートである。図11を参照すると、MSCPリリーフ制御部118は、先ず、ロックデータテーブル122からロック成功に係るロックデータを1つ取り出す(ステップS241)。ここで、ロック成功に係るロックデータとは、コマンド実行結果が「ロック成功」となっているロックデータであって、それに関連するアンロック成功のロックデータがロックデータテーブル122に存在しないものである。また、コマンド実行結果が「ロック待ち」になっているロックデータであって、それに関連するアテンション通知がロックデータテーブル122に保存されており、且つ、それに関連するアンロック成功のロックデータがロックデータテーブル122に存在しないものも、ロック成功に係るロックデータとして扱う(このときの通番はアテンション通知の通番を使用する)。
【0097】
次にMSCPリリーフ制御部118は、コマンド発行先のMSCPとして待機系MSCP5を決定する(ステップS242)。次にMSCPリリーフ制御部118は、受信状況テーブル123から最新の受信完了通番を参照する(ステップS243)。次にMSCPリリーフ制御部118は、ステップS241で取り出したロックデータに含まれる通番が最新の受信完了通番より大きいか否か(より最新か否か)を判定する(ステップS244)。次にMSCPリリーフ制御部118は、その判定結果がYESならば、ステップS241で取り出したロックデータに含まれるコマンドイメージで特定されるロックコマンドを送信バッファ(図示せず)に蓄積し(ステップS245)、ステップS246へ進む。また上記判定結果がNOならば、MSCPリリーフ制御部118は、ステップS245をスキップして、ステップS246へ進む。ステップS246では、MSCPリリーフ制御部118は、ロック成功に係るロックデータをロックデータテーブル122から全て取り出したか否かを判定し、その判定結果がNOならば、ステップS241に戻って、上述した処理と同様の処理を繰り返す。。上記判定結果がYESならば、MSCPリリーフ制御部118は、送信バッファに蓄積された全てのロックコマンドをI/O制御部113を通じて、待機系MSCP5へ発行する(ステップS247)。待機系MSCP5の排他制御テーブル再生部516は、MSCPリリーフ制御部118から発行されたロックコマンドに応じた排他制御処理を行って、排他制御テーブル522を更新する。
【0098】
ホスト2のMSCPリリーフ制御部218で行われるロック成功に係る不足ロックデータに基づく復元処理(ステップS216)も、図11を参照して説明した処理と同様に行われる。またホスト1、2のMSCPリリーフ制御部118、218で行われるロック待ちに係る不足ロックデータに基づく復元処理(ステップS222、226)は、ロック成功に係るロックデータの代わりにロック待ちに係るロックデータに基づいて行われる以外、図11を参照して説明した処理と同様に行われる。ここで、ロック待ちに係るロックデータとは、コマンド実行結果が「ロック待ち」となっているロックデータであって、それに関連するアテンション通知がロックデータテーブル122に存在しないものである。
【0099】
[第3の実施形態]
次に、本発明の第3の実施形態に係る疎結合システム300について、第1の実施形態との相違点を中心に説明する。
【0100】
第1の実施形態では、稼働系MSCPおよび待機系MSCPがそれぞれ1台の構成であったが、本実施形態ではそれ以外の構成に対して本発明を適用する例を説明する。以下、疎結合システムに存在するMSCPの集合をMSCPサブシステムと記す。
【0101】
図12Aは、MSCPサブシステムの一例を示す。この例では、MSCPは、MSCP0、MSCP1、MSCP2の合計3台存在する。そのうち、MSCP0は、第1の実施形態における稼働系MSCP4と同様な動作を行い、MSCP2は、第1の実施形態における待機系MSCP5と同様な動作を行い、MSCP1は、第1の実施形態における稼働系MSCP4および待機系MSCP5の両方の動作を行っている。具体的には、MSCP0は、ホスト1、2から発行されたロックコマンド、アンロックコマンドに従って排他制御を実施して排他制御テーブルAを更新し、またロックデータをMSCP0の待機系であるMSCP1に対して送信している。またMSCP1は、ホスト1、2から発行されたロックコマンド、アンロックコマンドに従って排他制御を実施して排他制御テーブルBを更新し、またロックデータをMSCP1の待機系であるMSCP1に対して送信している。さらにMSCP1は、MSCP0から受信したロックデータをロックデータテーブルAに保存している。またMSCP2は、MSCP1から受信したロックデータをロックデータテーブルBに保存している。なお、MSCP0およびMSCP1のロックデータ送信部413には、ロックデータの送り先となるMSCPの情報が事前に設定されている。
【0102】
図12Bは、複数のホスト1、2の排他制御部がロックコマンドを何れのMSCPに対して発行するかを決定するための制御情報の一例を示す。この制御情報は各ホスト1,2に事前に記憶されている。この例では、共用資源の識別情報(例えばファイルIDとブロックIDとを連列したもの)を数値として、その数値を4で割った余りをハッシュ値として求め、そのハッシュ値に対応して予め定められたMSCPをコマンド発行先MSCPとしている。具体的には、MSCP0とMSCP1が正常な場合、排他制御部は、ハッシュ値が0または1の共用資源についてはMSCP0に対してコマンドを発行し、ハッシュ値が2または3の共用資源についてはMSCP1に対してコマンドを発行する。また、MSCP0が故障してMSCP1とMSCP2とが動作している場合、排他制御部は、ハッシュ値が0または1の共用資源についてはMSCP2に対してコマンドを発行し、ハッシュ値が2または3の共用資源についてはMSCP1に対してコマンドを発行する。また、MSCP1が故障してMSCP0とMSCP2とが動作している場合、排他制御部は、ハッシュ値が0または1の共用資源についてはMSCP0に対してコマンドを発行し、ハッシュ値が2または3の共用資源についてはMSCP2に対してコマンドを発行する。
【0103】
図12Cは、MSCP0故障時のMSCPサブシステムの復元状態を示す。MSCP0が故障した場合、MSCP1のロックデータテーブルAに保存されたロックデータに基づいて、故障したMSCP0の排他制御テーブルAをMSCP1上に復元し、またMSCP2のロックデータテーブルBに保存されたロックデータに基づいて、MSCP1の排他制御テーブルBをMSCP2上に復元する。そして、故障したMSCP0をシステムから切り離し、MSCP1、2の2台を使ってシステムの運用を継続する。
【0104】
図12Dは、MSCP1故障時のMSCPサブシステムの復元状態を示す。MSCP1が故障した場合、MSCP2のロックデータテーブルBに保存されたロックデータに基づいて、MSCP2上にMSCP1の排他制御テーブルBを復元する。そして、故障したMSCP1をシステムから切り離し、MSCP0、2の2台を使ってシステムの運用を継続する。
【0105】
図13Aは、MSCPサブシステムの他の例を示す。この例では、MSCPは、MSCP0、MSCP1、MSCP2の合計3台存在し、それぞれのMSCPは第1の実施形態における稼働系MSCP4および待機系MSCP5の両方の動作を行っている。
【0106】
具体的には、MSCP0は、ホスト1、2から発行されたロックコマンド、アンロックコマンドに従って排他制御を実施して排他制御テーブルAを更新し、またロックデータをMSCP0の待機系であるMSCP1、MSCP2に対して送信している。またMSCP1は、ホスト1、2から発行されたロックコマンド、アンロックコマンドに従って排他制御を実施して排他制御テーブルBを更新し、またロックデータをMSCP1の待機系であるMSCP0、MSCP2に対して送信している。またMSCP2は、ホスト1、2から発行されたロックコマンド、アンロックコマンドに従って排他制御を実施して排他制御テーブルCを更新し、またロックデータをMSCP2の待機系であるMSCP0、1に対して送信している。さらにMSCP0は、MSCP1およびMSCP2から受信したロックデータをロックデータテーブルB、Cに保存している。またMSCP1は、MSCP0およびMSCP2から受信したロックデータをロックデータテーブルA、Bに保存している。またMSCP2は、MSCP0およびMSCP1から受信したロックデータをロックデータテーブルA、Bに保存している。なお、MSCP0、MSCP1、MSCP2のロックデータ送信部413には、ロックデータの送り先となるMSCPの情報が事前に設定されている。
【0107】
図13Bは、複数のホスト1、2の排他制御部がロックコマンドを何れのMSCPに対して発行するかを決定するための制御情報の一例を示す。この制御情報は各ホスト1,2に事前に記憶されている。この例では、共用資源の識別情報を数値として、その数値を6で割った余りをハッシュ値として求め、そのハッシュ値に対応して予め定められたMSCPをコマンド発行先MSCPとしている。具体的には、MSCP0、MSCP1、MSCP2の全てが正常な場合、排他制御部は、ハッシュ値が0または1の共用資源についてはMSCP0に対してコマンドを発行し、ハッシュ値が2または3の共用資源についてはMSCP1に対してコマンドを発行し、ハッシュ値が4または5の共用資源についてはMSCP2に対してコマンドを発行する。また、MSCP0が故障してMSCP1とMSCP2とが動作している場合、排他制御部は、ハッシュ値が0、2、または3の共用資源についてはMSCP1に対してコマンドを発行し、ハッシュ値が1、4、または5の共用資源についてはMSCP2に対してコマンドを発行する。また、MSCP1が故障してMSCP0とMSCP2とが動作している場合、排他制御部は、ハッシュ値が0、1、または2の共用資源についてはMSCP0に対してコマンドを発行し、ハッシュ値が3、4、または5の共用資源についてはMSCP2に対してコマンドを発行する。また、MSCP2が故障してMSCP0とMSCP1とが動作している場合、排他制御部は、ハッシュ値が0、1、または4の共用資源についてはMSCP0に対してコマンドを発行し、ハッシュ値が2、3、または5の共用資源についてはMSCP1に対してコマンドを発行する。
【0108】
図13Cは、MSCP0故障時のMSCPサブシステムの復元状態を示す。MSCP0が故障した場合、ホスト1のMSCPリリーフ制御部118は、図13Bに示した制御情報を参照して、故障したMSCP0の代わりに使用するMSCP1、MSCP2が受け持つ共用資源を決定する。図13Bを参照すると、MSCP0故障時、ハッシュ値0の共用資源をMSCP1が受け持ち、ハッシュ値1の共用資源をMSCP2が受け持つように定められている。ホスト1のMSCPリリーフ制御部118は、図5のステップS139においてホスト2のMSCPリリーフ制御部218に対して不足ロックデータ送信要求を送信する際、故障したMSCP0の代わりに使用するMSCP1、MSCP2が受け持つ共用資源に係る上記決定情報を添付する。そして、MSCPリリーフ制御部118は、ロックデータテーブル122中の不足ロックデータのうち、ハッシュ値0の共用資源に係るロックデータをMSCP0の排他制御テーブル復元用の不足ロックデータとしてMSCP1へ送信し、ハッシュ値1の共用資源に係るロックデータをMSCP1の排他制御テーブル復元用の不足ロックデータとしてMSCP2へ送信する。またホスト1のMSCPリリーフ制御部118は、図5のステップS143では、ロックデータテーブル222中の不足ロックデータのうち、ハッシュ値0の共用資源に係るロックデータをMSCP0の排他制御テーブル復元用の不足ロックデータとしてMSCP1へ送信し、ハッシュ値1の共用資源に係るロックデータをMSCP1の排他制御テーブル復元用の不足ロックデータとしてMSCP2へ送信する。
【0109】
またホスト1のMSCPリリーフ制御部118は、図5のステップS147では、ハッシュ値0の共用資源に限定する指示を添えたMSCP0排他情報再生要求をMSCP1へ送信し、またハッシュ値1の共用資源に限定する指示を添えたMSCP0排他情報再生要求をMSCP2へ送信する。MSCP1の排他制御テーブル再生部516は、MSCP1のロックデータテーブルAに保存されたロックデータ中のハッシュ値0の共用資源に係るロックデータに基づいて、故障したMSCP0の排他制御テーブルAの一部である排他制御テーブルA1をMSCP1上に復元する。またMSCP2の排他制御テーブル再生部516は、MSCP2のロックデータテーブルAに保存されたロックデータ中のハッシュ値1の共用資源に係るロックデータに基づいて、故障したMSCP0の排他制御テーブルAの残りの部分である排他制御テーブルA2を復元する。その後、故障したMSCP0がシステムから切り離され、MSCP1、2の2台を使ってシステムの運用が継続される。このとき、MSCP1では、排他制御テーブルA1、Bを使用し、MSCP2では、排他制御テーブルA2、Cを使用する。
【0110】
図13Dは、MSCP1故障時のMSCPサブシステムの復元状態を示す。MSCP1が故障した場合、MSCP0故障時と同様のMSCPリリーフ動作が行われることにより、MSCP0のロックデータテーブルBに保存されたロックデータに基づいて、故障したMSCP1の排他制御テーブルBの一部である排他制御テーブルB1がMSCP0上に復元され、またMSCP2のロックデータテーブルBに保存されたロックデータに基づいて、故障したMSCP1の排他制御テーブルBの残りの部分である排他制御テーブルB2が復元される。そして、故障したMSCP1がシステムから切り離され、MSCP0、2の2台を使ってシステムの運用が継続される。
【0111】
図13Eは、MSCP2故障時のMSCPサブシステムの復元状態を示す。MSCP2が故障した場合、MSCP0故障時と同様のMSCPリリーフ動作が行われることにより、MSCP0のロックデータテーブルCに保存されたロックデータに基づいて、故障したMSCP2の排他制御テーブルCの一部である排他制御テーブルC1がMSCP0上に復元され、またMSCP1のロックデータテーブルCに保存されたロックデータに基づいて、故障したMSCP2の排他制御テーブルCの残りの部分である排他制御テーブルC2が復元される。そして、故障したMSCP2がシステムから切り離し、MSCP0、1の2台を使ってシステムの運用が継続される。
【0112】
排他制御テーブルA1、A2、B1、B2、C1、C2を復元する方法について、排他制御テーブルA1を例にしてより詳細に説明する。
【0113】
ホスト1のMSCPリリーフ制御部118は、図5のステップS140において、先ず、ロックデータテーブル122に保存されているロックデータのうち、MSCP1がMSCP0から最後に受信したロックデータに含まれる通番(受信完了通番)以降の通番を含むロックデータを全て取得する。この取得したロックデータに係る共用資源は、その識別情報のハッシュ値が0または1の何れかである。次にMSCPリリーフ制御部118は、上記取得したロックデータのうち、共用資源の識別情報のハッシュ値が0となるロックデータのみを不足ロックデータとして取得し、MSCP0排他制御テーブル復元用の不足ロックデータとしてMSCP1へ送信する。またホスト2のMSCPリリーフ制御部218は、図5のステップS143において、先ず、ロックデータテーブル222に保存されているロックデータのうち、MSCP1がMSCP0から最後に受信したロックデータに含まれる通番(受信完了通番)以降の通番を含むロックデータを全て取得する。この取得したロックデータに係る共用資源は、その識別情報のハッシュ値が0または1の何れかである。次にMSCPリリーフ制御部218は、上記取得したロックデータのうち、共用資源の識別情報のハッシュ値が0となるロックデータのみをMSCP0排他制御テーブル復元用の不足ロックデータとして取得し、MSCP1へ送信する。
【0114】
MSCP1のロックデータ受信部515は、図5のステップS145において、ホスト1、2から送信された上記不足ロックデータを受信してロックデータテーブルAに保存する。またMSCP1の排他制御テーブル再生部516は、図5のステップS149において、ロックデータテーブルAに保存されたロックデータに基づいて、故障したMSCP0の排他制御テーブルAのうち、ハッシュ値が0となる識別情報の共用資源に係る排他制御テーブルA1を再生する。具体的には、ロックデータテーブルAに保存されているロックデータのうち、ハッシュ値が0となる識別情報の共用資源に係るロックデータに基づいて排他制御テーブルを再生する。
【0115】
排他制御テーブルA2は、ハッシュ値が1となる識別情報の共用資源に係るロックデータに基づいて再生されるテーブルである。排他制御テーブルB1は、ハッシュ値が2となる識別情報の共用資源に係るロックデータに基づいて再生されるテーブルである。排他制御テーブルB2は、ハッシュ値が3となる識別情報の共用資源に係るロックデータに基づいて再生されるテーブルである。排他制御テーブルC1は、ハッシュ値が4となる識別情報の共用資源に係るロックデータに基づいて再生されるテーブルである。排他制御テーブルC2は、ハッシュ値が5となる識別情報の共用資源に係るロックデータに基づいて再生されるテーブルである。これらの排他制御テーブルA2、B1、B2、C1、C2の再生方法は、排他制御テーブルA1の再生方法と同様であるため、その詳細な説明は省略する。
【0116】
図13A図13Eを参照して説明したように、稼働系MSCP(例えばMSCP0)に対して複数の待機系MSCP(例えばMSCP1、MSCP2)を備えた疎結合システムにおいて、稼働系MSCP0は、ロックデータをそれぞれの待機系MSCP1、2に送信し、稼働系MSCP0が故障した場合、それぞれのホスト1、2は、故障した稼働系MSCP0の代わりに使用する複数の待機系MSCP1,2それぞれが受け持つ共用資源を決定し、待機系MSCP1、2毎に、ホスト側のロックデータのうち待機系MSCP1、2が稼働系MSCPから受信したロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系MSCP1、2が受け持つ共用資源に係るロックデータを待機系MSCP1,2へ送信し、それぞれの待機系MSCP1、2は、稼働系MSCP0から受信したロックデータとそれぞれのホスト1、2から受信したロックデータとに基づいて、故障した稼働系MSCP0の排他制御テーブルAのうち当該待機系MSCP1,2が受け持つ共用資源に係る排他制御テーブルA1、A2を再生する。このようにすることによって、稼働系MSCP0故障時に、その排他制御テーブルA全体を1つの待機系MSCP(例えばMSCP1)に再生する場合に比べて、排他制御テーブル再生処理の負荷が特定のMSCPに集中するのを防止でき、また運用再開後にロックもしくはアンロックに係る排他制御処理の負荷が特定のMSCPに集中するのを防止することができる。
【0117】
[第4の実施形態]
次に本発明の第4の実施形態に係る疎結合システム400について説明する。図14を参照すると、疎結合システム400は、複数のホスト401と、複数のホスト401で共用する共用資源402と、稼働系MSCP403と、待機系MSCP404と、を備えている。
【0118】
稼働系MSCP403は、それぞれのホスト401から送信された共用資源402をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元のホスト401に送信するように構成されている。また稼働系MSCP403は、上記コマンドと上記コマンド実行結果とを含む装置側ロックデータを待機系MSCP404に送信するように構成されている。
【0119】
待機系MSCP404は、稼働系MSCP403から装置側ロックデータを受信するように構成されている。また待機系MSCP404は、稼働系MSCP403が故障した場合、稼働系MSCP403から受信した装置側ロックデータに基づいて、故障した稼働系MSCP403の排他制御情報を再生するように構成されている。
【0120】
このように構成された疎結合システム400は、以下のように機能する。即ち、稼働系MSCP403は、それぞれのホスト401から送信された共用資源402をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元のホスト401に送信し、また上記コマンドと上記コマンド実行結果とを含む装置側ロックデータを待機系MSCP404に送信する。待機系MSCP404は、稼働系MSCP403から装置側ロックデータを受信し、稼働系MSCP403が故障した場合、稼働系MSCP403から受信した装置側ロックデータに基づいて、故障した稼働系MSCP403の排他制御情報を再生する。
【0121】
このように本実施形態によれば、複数のホストと複数のMSCPとの接続形態による制約を受けずに、故障した稼働系MSCPが保持していた排他制御情報を待機系MSCPに速やかに再生することができる。その理由は、稼働系MSCP403は、それぞれのホスト401から送信された共用資源402をロックもしくはアンロックするコマンドに従って排他処理を行い、上記コマンドと上記コマンド実行結果とを含む装置側ロックデータを待機系MSCP404に送信し、待機系MSCP404は、稼働系MSCP403から装置側ロックデータを受信し、稼働系MSCP403が故障した場合、稼働系MSCP403から受信した装置側ロックデータに基づいて、故障した稼働系MSCP403の排他制御情報を再生するためである。
【0122】
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【産業上の利用可能性】
【0123】
本発明は、複数のホスト間で共用される共用資源を、MSCPを用いて排他制御しながら複数の処理を行う疎結合システムに利用できる。
【0124】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、
前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
前記待機系排他制御装置は、前記稼働系排他制御装置から前記装置側ロックデータを受信し、
前記稼働系排他制御装置が故障した場合、前記待機系排他制御装置は、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
疎結合システム。
[付記2]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、
前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、
前記待機系排他制御装置は、前記稼働系排他制御装置から前記装置側ロックデータを受信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、前記待機系排他制御装置は、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
疎結合システム。
[付記3]
前記待機系排他制御装置を複数備え、
前記稼働系排他制御装置は、前記装置側ロックデータをそれぞれの前記待機系排他制御装置に送信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、それぞれの前記待機系排他制御装置は、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報のうち当該待機系排他制御装置が受け持つ前記共用資源に係る排他制御情報を再生する、
付記2に記載の疎結合システム。
[付記4]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備えた疎結合システムが実行するリカバリ方法であって、
前記稼働系排他制御装置が、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
前記待機系排他制御装置が、前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
リカバリ方法。
[付記5]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備えた疎結合システムが実行するリカバリ方法であって、
前記稼働系排他制御装置が、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、
それぞれの前記ホストが、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、
前記待機系排他制御装置が、前記稼働系排他制御装置から前記装置側ロックデータを受信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストが、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、前記待機系排他制御装置が、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する、
リカバリ方法。
[付記6]
前記疎結合システムは、前記待機系排他制御装置を複数備え、
前記稼働系排他制御装置が、前記装置側ロックデータをそれぞれの前記待機系排他制御装置に送信し、
前記稼働系排他制御装置が故障した場合、それぞれの前記ホストが、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信し、それぞれの前記待機系排他制御装置が、前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報のうち当該待機系排他制御装置が受け持つ前記共用資源に係る排他制御情報を再生する、
付記5に記載のリカバリ方法。
[付記7]
複数のホストと前記複数のホストで共用する共用資源と稼働系排他制御装置と待機系排他制御装置とを備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信する、疎結合システムにおける前記待機系排他制御装置であって、
前記稼働系排他制御装置から前記装置側ロックデータを受信する手段と、
前記稼働系排他制御装置が故障した場合、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する手段と、
を備える待機系排他制御装置。
[付記8]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置であって、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する手段と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する手段と、
を備える待機系排他制御装置。
[付記9]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、複数の待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを複数の前記待機系排他制御装置のそれぞれに送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置であって、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する手段と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する手段と、
を備える待機系排他制御装置。
[付記10]
複数のホストと前記複数のホストで共用する共用資源と稼働系排他制御装置と待機系排他制御装置とを備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果を送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果とを含む装置側ロックデータを前記待機系排他制御装置に送信する、疎結合システムにおける前記待機系排他制御装置を構成するコンピュータに、
前記稼働系排他制御装置から前記装置側ロックデータを受信する処理と、
前記稼働系排他制御装置が故障した場合、前記稼働系排他制御装置から受信した前記装置側ロックデータに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する処理と、
を行わせるためのプログラム。
[付記11]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを前記待機系排他制御装置に送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番の前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置を構成するコンピュータに、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する処理と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する処理と、
を行わせるためのプログラム。
[付記12]
複数のホストと、前記複数のホストで共用する共用資源と、稼働系排他制御装置と、複数の待機系排他制御装置と、を備え、前記稼働系排他制御装置は、それぞれの前記ホストから送信された前記共用資源をロックもしくはアンロックするコマンドに従って排他処理を行い、コマンド実行結果と該コマンド実行結果に付与した通番とを送信元の前記ホストに送信し、且つ、前記コマンドと前記コマンド実行結果と前記通番とを含む装置側ロックデータを複数の前記待機系排他制御装置のそれぞれに送信し、それぞれの前記ホストは、前記稼働系排他制御装置に送信した前記コマンドと前記稼働系排他制御装置から受信した前記コマンド実行結果と前記通番とを含むホスト側ロックデータを保持し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストは、故障した前記稼働系排他制御装置の代わりに使用する前記複数の待機系排他制御装置それぞれが受け持つ前記共用資源を決定し、前記待機系排他制御装置毎に、前記ホスト側ロックデータのうち前記待機系排他制御装置が前記稼働系排他制御装置から受信した前記装置側ロックデータに含まれる通番の最新のもの以降の通番であって且つ当該待機系排他制御装置が受け持つ前記共用資源に係る前記ホスト側ロックデータを前記待機系排他制御装置へ送信する、疎結合システムにおける前記待機系排他制御装置を構成するコンピュータに、
前記稼働系排他制御装置から前記装置側ロックデータを受信し、前記稼働系排他制御装置が故障した場合、それぞれの前記ホストから前記ホスト側ロックデータを受信する処理と、
前記稼働系排他制御装置から受信した前記装置側ロックデータとそれぞれの前記ホストから受信した前記ホスト側ロックデータとに基づいて、前記故障した稼働系排他制御装置の排他制御情報を再生する処理と、
を行わせるためのプログラム。
【符号の説明】
【0125】
1…ホスト
2…ホスト
3…共用資源
4…稼働系MSCP
5…待機系MSCP
図1
図2
図3
図4
図5
図6A
図6B
図7A
図7B
図7C
図7D
図8
図9
図10
図11
図12A
図12B
図12C
図12D
図13A
図13B
図13C
図13D
図13E
図14