JP5067075B2 - 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体 - Google Patents

疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体 Download PDF

Info

Publication number
JP5067075B2
JP5067075B2 JP2007223110A JP2007223110A JP5067075B2 JP 5067075 B2 JP5067075 B2 JP 5067075B2 JP 2007223110 A JP2007223110 A JP 2007223110A JP 2007223110 A JP2007223110 A JP 2007223110A JP 5067075 B2 JP5067075 B2 JP 5067075B2
Authority
JP
Japan
Prior art keywords
exclusive control
lock
active
control device
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007223110A
Other languages
English (en)
Other versions
JP2009058998A (ja
Inventor
聖子 松村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007223110A priority Critical patent/JP5067075B2/ja
Publication of JP2009058998A publication Critical patent/JP2009058998A/ja
Application granted granted Critical
Publication of JP5067075B2 publication Critical patent/JP5067075B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、複数のホストおよび排他制御装置を含む疎結合システムに関し、特に排他制御装置に障害が発生した場合に該疎結合システムをリカバリする方法に関する。
コンピュータシステムにおいて、疎結合(Loose Coupling)とは、該システムを構成する各々のコンポーネント同士の結びつきが比較的緩やかで、独立性が強い状態をいう。疎結合システム(Loosely-Coupled System)は、多くのコンポーネントが連携して大規模な処理を行うことができ、かつ各々のコンポーネントの交換、改良、追加などを柔軟に行うことが可能である。
より具体的には、それぞれがプロセッサおよびローカルメモリを有して独立して動作する複数のホストと、データベースやディスクドライブなどのような共有資源がネットワークによって相互に接続された疎結合システムを考える。その場合、同一の共有資源に対して複数のホストから同時にアクセスがあると、動作に不都合が生じやすい。そのため、共有資源へのアクセスはMSCP(Multi-System Control Processor、排他制御装置)によって制御される。
一つのホストが共有資源に対してアクセスしている間は、MSCPは他のホストが同一の共有資源にアクセスすることを禁止する。これをロックという。逆に、アクセス禁止を解除することをアンロックという。共有資源が一つのホストにロックされている間、他のホストは該共有資源がアンロックされることを待ち、アンロックされたらすぐに該共有資源をロックするようにすることができる。これをロック待ちという。
なお、ネットワークの共有資源を二重化する技術として、たとえば以下のような技術が開示されている。特許文献1は、ネットワークにおいて共有されている複数のシステム結合装置の内のいずれか1台が故障した場合に、該システム結合装置をリカバリする技術に関するものである(詳細は後述)。特許文献2は、異なるコンピュータシステムのデータベース間のデータ連携をスムーズに行う二重化データベースのデータ連携装置であり、稼働系データベースの制御情報を待機系のそれに変換する技術に関するものである。特許文献3は、ネットワークに対してブロードキャストで送信されるデータを監視する技術に関するものである。
特開平11−338843号公報 特開2001−142762号公報 特開2007−72830号公報
図25は、特許文献1の疎結合システム501において、障害が発生していない場合の動作を示す概念図である。疎結合システム501において、MSCPに障害が発生することがある。同文献の発明では、そのような場合に備えて、複数あるMSCPのうちの1つを待機系MSCP512として、障害が発生したMSCPの代理として動作することが可能である。なお、待機系MSCP512以外の全てのMSCPを、運用系MSCP511という。ホスト503、運用系MSCP511、待機系MSCP512は全て、同一のネットワーク502に接続される。また運用系MSCP511によってアクセスを管理される共有資源については図示しない。
各々のホスト503は排他制御情報記録手段504を有し、運用系MSCP511にロックコマンド521を送信すると、同時に自らが送信したロックコマンド521の内容について排他制御情報記録手段504に記録する。
図26は、疎結合システム501において、障害が発生した場合の動作を示す概念図である。運用系MSCPの一つ511xに障害が発生すると、各々のホスト503は排他制御情報記録手段504を参照して、同期を取ってから自らが送信したロックコマンド521を待機系MSCP512に送信する。これによって待機系MSCP512は、障害が発生した運用系MSCP511xが持っていた排他制御情報を再生し、以後運用系MSCP511xの代理である運用系MSCP512xとして動作する。このことによって、運用系MSCP511xの復旧を待つことなく、疎結合システム501は動作を継続することができる。
しかし、特許文献1の技術においては、障害が発生した運用系MSCP511xの動作を待機系MSCP512に切り替えるにあたって、障害発生前と全く同じ排他制御情報を再生するために、ホスト503間で同期を取ってから、待機系MSCP512へ情報を送る必要があった。また、全てのホスト503から待機系MSCP512に情報を転送する必要もあった。これらの処理はホスト503およびネットワーク502に負荷がかかるので、その間ホスト503の運用を一時停止もしくは制限する必要があった。
また、運用系MSCP511が実際に行う処理には、ホスト503からの要求に基づいて行う処理と、タイマイベントのように該運用系MSCP511内部で発生する処理とがある。そのため、ホスト503間で同期を取っても、ホスト503から送られるコマンドの順番と実際に運用系MSCP511で実行される処理が、必ずしも同一であるとは限らない。従って、待機系MSCP512が運用系MSCP511と全く同じ動作ができるとは限らないので、疎結合システム501を正常にリカバリできるとは限らない。
さらに、各々のホスト503にロック要求を蓄積するのではなく、運用系MSCP511にホスト503からコマンドが送られるたびに、待機系MSCP512が運用系MSCP511と全く同じ動作を行うようにするという方法も考えられる。しかし、その場合の待機系MSCP512は、複数台の運用系MSCP511と全く同じ動作をまかなう必要があるので、1台で運用系MSCP511の台数分の性能を持つか、または運用系MSCP511と同じ台数の待機系MSCP512を用意する必要がある。コストなどの面から、この方法は現実的ではない。
本発明の目的は、1台の待機系MSCPで、該運用系MSCPに障害が発生しても運用を停止もしくは制限することなくリカバリが可能な疎結合システムと、そこに使用されるMSCP、および疎結合システムのリカバリ方法とコンピュータプログラムと記憶媒体を提供することにある。
本発明の疎結合システムは、複数のホストと、複数のホストに共用される共有資源と、複数のホストからのコマンドを受けて共有資源をロックもしくはアンロックする複数台の運用系MSCPと、単数もしくは複数の待機系MSCPとが全て単一のネットワークで接続されてなる。この待機系MSCPは、ネットワーク上の全ての通信を監視し、運用系MSCPがすべて正常に運用されている間はホストから運用系MSCPに発せられたコマンドを蓄積し、ホストから前記運用系MSCPへ共有資源をロックもしくはアンロックするコマンドが発せられてから一定時間経過しても運用系MSCPがホストに対して応答しないことを検出したときに運用系MSCPに障害が発生したと判断してこの障害が発生した運用系MSCPとして動作する。これによって、運用系MSCPに障害が発生しても、ホストの動作を停止することなく疎結合システムを運用し続けることが可能となる。
また、障害が発生したときに、待機系MSCPが障害が発生した運用系MSCPの代わりにホストに対して再試行要求を返信すれば、その間に自身が障害が発生した運用系MSCPとして動作するための準備を行うことができるので好都合である。
待機系MSCPが障害が発生した運用系MSCPとして動作するための準備は、正常に運用されている間に蓄積したコマンドの中から、障害が発生した運用系MSCPに対するコマンドを抽出して、該運用系MSCPの排他制御情報を再生することによって可能となる。
また、ホストと運用系MSCPが、ホストと運用系MSCPとの間の通信をネットワーク上にブロードキャスト送信するようにすれば、待機系MSCPがそれらの通信内容を監視できるようにネットワークを構成することが容易となるであるので好都合である。
本発明の待機系MSCPは、複数のホストと、複数のホストに共用される共有資源と、複数のホストからのコマンドを受けて共有資源をロックもしくはアンロックする複数台の運用系MSCPとが全て単一のネットワークで接続された疎結合システムにおいて使用される待機系MSCPである。この待機系MSCPは、ネットワーク上の全ての通信を監視し、運用系排他制御装置がすべて正常に運用されている間はホストから運用系MSCPへのコマンドを蓄積するロックデータ蓄積手段と、ホストから運用系MSCPへ共有資源をロックもしくはアンロックするコマンドが発せられてからの経過時間を計測するタイマと、タイマが計測した経過時間が一定時間に到達しても運用系MSCPがホストに対して応答しないことを検出したときに運用系MSCPに障害が発生したと判断する応答監視手段と、運用系MSCPのいずれかに障害が発生したときに障害が発生した待機系MSCPを運用系MSCPとして動作させる待機系運用系切り替え手段とを有する。
この待機系MSCPは、障害が発生したときには、障害が発生した運用系MSCPの代わりに応答監視手段がホストに対して再試行要求を返信するようにもできる。
さらに、障害が発生したときに、待機系運用系切り替え手段がロックデータ蓄積手段に蓄積されたコマンドに含まれる障害が発生した運用系MSCPに対するコマンドを抽出して、該運用系MSCPの排他制御情報を再生することによって、該運用系MSCPとして動作することが可能となる。
本発明のリカバリ方法は、複数のホストと、複数のホストに共用される共有資源と、複数のホストに共用される共有資源をロックもしくはアンロックする複数台の運用系MSCPと、待機系MSCPとが全て単一のネットワークで接続された疎結合システムにおいて、運用系MSCPに障害が発生したときに疎結合システムをリカバリする方法である。まずホストが運用系MSCPに対して共有資源をロックもしくはアンロックするコマンドを送信すると、待機系MSCPはネットワーク上の全ての通信を監視してロックもしくはアンロックするコマンドを蓄積して、共有資源をロックもしくはアンロックするコマンドが発せられてからの経過時間が一定時間に到達しても運用系MSCPが前記ホストに対して応答しないことを検出したときに運用系MSCPのいずれかに障害が発生した判断する。障害が発生した場合には、待機系MSCPが該障害が発生した運用系MSCPとして動作する。
また本発明は、待機系MSCPが備えているコンピュータに上記の方法を実行させるコンピュータプログラムと、このコンピュータプログラムをコンピュータが読み取り可能なように記憶した記憶媒体を提供することもできる。
本発明により、1台の待機系MSCPで、該運用系MSCPに障害が発生しても運用を停止もしくは制限することなくリカバリが可能な疎結合システムと、そこに使用されるMSCP、および疎結合システムのリカバリ方法とコンピュータプログラムと記憶媒体を提供することができた。
図1は、本発明の実施の形態に係る疎結合システム1の構成を示すブロック図である。m台のホストコンピュータ3(以後単にホスト3という)と、n台のMSCP10とが、同一のネットワーク2に接続されている。mとnは、いずれも2以上の整数である。n台のMSCP10のうち、n−1台が運用系MSCP11として、残る1台が待機系MSCP12としてそれぞれ動作する。運用系MSCP11と待機系MSCP12とを総称してMSCP10という。各々の動作の詳細は後述する。
なお、MSCP10による排他制御の対象となる共有資源の存在は自明なことであり、またネットワーク2におけるホスト3およびMSCP10との物理的な接続関係などは限定されないので、図1には図示していない。以後の説明において、共有資源のことを単に資源ということがある。
図2は、疎結合システム1上で通信されるデータの基本フォーマットを示すブロック図である。データ201は、該データの発信元のコンピュータのアドレスを表す送信元アドレス(FROM:)202と、該データが送信先のコンピュータのアドレスを表す送信先アドレス(TO:)203と、通信内容を表す個別データ204からなる。
図3は、ホスト3とMSCP10との間での排他制御関連の通信における個別データ204の内容を示すブロック図である。図3の(A)に示すロック・アンロック要求データ211は、ホスト3からMSCP10に対してロック要求もしくはアンロック要求が送られるときの個別データ204であり、メッセージID212、要求種別213、資源ID214、タスクID215、遅延タイマ値216からなる。
メッセージID212は、「ロック・アンロック要求データ」「ロック・アンロック要求応答データ」などのようなメッセージの種別を表すIDである。要求種別213は、ロック要求およびアンロック要求のうちのいずれかである。資源ID214は、ロック要求もしくはアンロック要求の対象となる共有資源を表す。タスクID215は、ロック要求もしくはアンロック要求をしたホスト3上のタスクに対して付与されるIDである。遅延タイマ値216は後述する排他制御タイマ部115にセットされる遅延タイマの時刻である。
図3の(B)に示すロック・アンロック要求応答データ221は、ロック・アンロック要求データ211に対する返信としてMSCP10からホスト3に送られる個別データ204であり、メッセージID212、資源ID214、タスクID215、処理結果222からなる。メッセージID212、資源ID214、タスクID215については、図3の(A)と同一の定義で表されるので、参照番号も同一として説明を省略する。処理結果222はロック要求もしくはアンロック要求に基づいてロックもしくはアンロックの処理を行った結果であり、ロック可、ロック待ち、アンロック完了、再試行応答のうちいずれか1つである。
図3の(C)に示すアテンション通知データ231は、MSCP10からホスト3上のタスクへの通知に使用される個別データ204であり、メッセージID212、資源ID214、タスクID215、状態232からなる。メッセージID212、資源ID214、タスクID215については、図3の(A)と同一の定義で表されるので、参照番号も同一として説明を省略する。
ホスト3上の特定のタスクが特定の共有資源に対してロックを保持していた場合、同一の共有資源にアクセスしようとした別のホスト3上のタスクはロック待ち状態となる。ここで、該共有資源に対してロックを保持していたタスクが該ロックをアンロックし、ロック待ち状態にあったタスクが該共有資源をロック可となる場合に、アテンション通知データ231が使用される。または、ロック待ち状態にあったタスクが、その状態が一定時間継続してもロック可とならない場合にも、アテンション通知データ231が使用される。状態232は、ロック可およびロック不可のいずれかである。
図4は、MSCP10とMSCP10との相互間での排他制御関連の通信における個別データ204の内容を示すブロック図である。図4の(A)に示す待機系MSCP12から運用系MSCP11へのモード移行要求241は、メッセージID212、自MSCP番号242、および要求モード243からなる。メッセージID212については、図3の(A)と同一の定義で表されるので、参照番号も同一として説明を省略する。自MSCP番号242は、MSCP10相互間で定義される通し番号である。要求モード243は、通常モードおよびリカバリモードのいずれかである。なお、通常モードおよびリカバリモードの各々の詳細については後述する。
図4の(B)に示す運用系MSCP11から待機系MSCP12へのモード移行完了応答251は、モード移行要求241への応答として送信されるものであり、メッセージID212および自MSCP番号242からなる。これらのデータ内容はモード移行要求241と同一の定義で表されるので、参照番号も同一として説明を省略する。
図5は、本実施の形態に係るMSCP10の構成を示すブロック図である。運用系MSCP11と待機系MSCP12とでは内部の構成は同一であるので、図5ではこれらの両者を総称してMSCP10として説明する。MSCP10は、送受信処理部102、MSCPモード管理部103、ロック処理監視部104、応答監視タイマ処理部105、待機系運用系切り替え処理部106、排他制御処理部107、タイマ部108、及び、初期記憶部101、運用モード記憶部111、リカバリフラグ記憶部112、応答カウンタ記憶部113、排他制御タイマ部115、ロックデータ蓄積部120、排他制御テーブル130、応答監視タイマテーブル140から構成される。
運用系MSCP11の基本的な動作は、排他制御処理部107、排他制御タイマ部115、および排他制御テーブル130で実現される。排他制御処理部107は、ホスト3からロック・アンロック要求データ211に含まれる要求種別213によってロック要求を受け取ると、排他制御テーブル130に記録されたロック状態から、ロック要求された共有資源をロックすることが可能であるか否かについて判定する。以後、それが可能である状態をロック可、そうでない状態をロック不可という。なお、排他制御テーブル130については後述する。
ロック可であれば、ロック情報を排他制御テーブル130中の資源情報のロックリストに登録し、ロック要求を行ったホスト上のタスクに対して処理結果222をロック可として、ロック・アンロック要求応答データ221を送信する。ロック不可であれば、ロック情報を排他制御テーブル130中の資源情報のロック待ちリストに登録し、排他制御タイマ部115に遅延タイマをセットし、ロック要求を行ったホスト上のタスクに対して処理結果222をロック待ちとして、ロック・アンロック要求応答データ221を送信する。
なお、後述するタイマ部108は待機系MSCP12において利用されるものであり、運用系MSCP11において利用される排他制御タイマ部115とは異なる。排他制御タイマ部115の仕組みは本発明の要点ではなく、また当業者に公知であるので、詳細な説明は省略する。ただし、タイマ部108と排他制御タイマ部115とを、同一のモジュールもしくはルーチンなどによって機能させることを妨げるものではない。
排他制御処理部107が、ホスト3からロック・アンロック要求データ211に含まれる要求種別213によってアンロック要求を受け取ると、アンロック要求に該当するタスクのロック情報を、排他制御テーブル130の資源情報のロックリストから削除し、処理結果222をアンロック完了として、ロック・アンロック要求応答データ221を送信してアンロック完了を報告する。
更に、アンロックされた該共有資源に対してロック待ち状態であるタスクがあれば、排他制御テーブル130中の資源情報のロック待ちリスト上のロック情報をロックリストに移動し、状態232をロック可としたアテンション通知データ231によって当該タスクにロック可を通知する。排他制御タイマ部115にセットされた遅延タイマがタイムアウトした時は、状態232をロック不可としたアテンション通知データ231によって、タイムアウトしたロック待ち状態のロック要求の要求元であるホスト上のタスクにロック不可を通知する。
図6は、排他制御テーブル130で資源情報301のデータ構成を示すブロック図である。図7は、排他制御テーブル130でタスク情報311のデータ構成を示すブロック図である。図8は、排他制御テーブル130で資源情報301とタスク情報311との間のデータの関係を示すブロック図である。排他制御テーブル130は、ホスト3からのロック要求に基づいた共有資源の排他制御状態を管理するテーブル群で、通常は排他制御処理部107によって生成・更新される。但し、待機系MSCP12においては、障害発生時に待機系運用系切り替え処理部106によりロックデータ蓄積部120のデータを元に生成される。
図6に示す資源情報301は、資源ID214、ロックリスト303、ロック待ちリスト304からなる。資源ID214は、図3の(A)と同一の定義で表される。ロックリスト303は、資源ID214に該当する共有資源をロックしているタスクリストへのアドレスを表す。ロック待ちリスト304は、資源ID214に該当する共有資源でロック待ちの状態であるタスクリストへのアドレスを表す。
図7に示すタスク情報311は、タスクID215、ロック種別313、遅延タイマ値314、継続タスクリスト315からなる。タスクID215は、図3の(A)と同一の定義で表される。ロック種別313は、各々のタスクが共有資源に対して取得するロックの種類であり、独占的にロックを取得するXロックと、共有的にロックを取得するSロックのいずれかである。遅延タイマ値314は、該タスクがロック待ちになった場合に、待ち状態の持続する最大時間を表す。継続タスクリスト315は、ロックやロック待ち列に繋がるタスク情報のアドレスを表す。
図8は排他制御テーブル130で資源情報301とタスク情報311との間のデータの関係を示す。資源情報301の資源ID214は資源Pを表す。ロックリスト303は、資源Pを現在ロックしているタスクAの先頭アドレスを示す。ロック待ちリスト304は、資源Pに対してロック待ち状態となっているタスクCの先頭アドレスを示す。
タスク情報311で、タスクID215aで示されるタスクAは、ロック種別313がSロックで、遅延タイマ値314は空欄、そして継続タスクリスト315はタスクBに続く。タスクID215bで示されるタスクBは、ロック種別313がSロックで、遅延タイマ値314および継続タスクリスト315は空欄(NULL)である。
一方、タスクID215cで示されるロック待ち状態のタスクCは、ロック種別313がXロックで、遅延タイマ値314は「5秒」、継続タスクリスト315は空欄(NULL)である。以上の各データは、次のことを表す。タスクAとタスクBが、資源PをSロックしている。タスクCは資源PをXロックするため、タスクAとタスクBが資源Pをアンロックするのを最大5秒まで待つ。
図5に戻って、送受信処理部102はネットワーク2上に流れる全ての通信データを取り込み、MSCPモード管理部103にデータを渡し、また、各処理部からの送信要求をネットワークに送信する処理部である。初期記憶部101は、自身の運用モード(運用系または待機系)の初期値を記憶している記憶媒体である。運用モード記憶部111は、現在の自身の役割が運用系か待機系かを記憶する記憶部である。リカバリフラグ記憶部112は、リカバリ中か否かを記憶するリカバリフラグを保存する記憶部である。
MSCPモード管理部103は、送受信処理部102から渡された通信データを処理する処理部である。またMSCPモード管理部103は、MSCP10を起動する時に初期記憶部101からMSCP10自身の運用モード(運用系または待機系)の初期値を取り出し、運用モード記憶部111に格納する。
ロック処理監視部104、ロックデータ蓄積部120、応答監視タイマ処理部105、待機系運用系切り替え処理部106、タイマ部108、応答カウンタ記憶部113、応答監視タイマテーブル140は待機系MSCP12のみで機能する処理部である。ロック処理監視部104は、自身が待機系MSCP12であるとき、MSCPモード管理部103から他のホスト3またはMSCP10宛の通信データを受け取り、受け取ったデータの種類に応じて後述の処理を行う。
図9は、ロックデータ蓄積部120および応答監視タイマテーブル140に記録されるデータエントリの形式を示すブロック図である。図9の(A)に示すロックデータ蓄積部120は、ロック処理監視部104によって登録されるエントリ401の集合である。エントリ401は、エントリアドレス402、資源ID214、タスクID215、状態403、管理MSCP404と遅延タイマ値216からなる。状態403は、資源ID214で表される共有資源の状態であり、ロック可、ロック待ち、ロック要求中、アンロック要求中のいずれかの状態を表す。管理MSCP404は、該資源ID214を管理するMSCP10のIDである。タスクID215および遅延タイマ値216は、該資源に対するロック・アンロック要求データ211に含まれるものが設定される。
図9の(B)に示す応答監視タイマテーブル140は、ロックデータ蓄積部120のエントリアドレス402と、タイマID412との間の対応を管理するエントリ411である。タイマがセットされると、エントリアドレス402とタイマID412とがエントリ411に登録され、タイマリセットされた場合およびタイムアウトした場合に消去される。
ロック・アンロック要求データ211を受けたら、ロック処理監視部104はロックデータ蓄積部120にエントリ401を蓄積し、タイマ部108にタイマをセットさせる。ここでタイマ部108にセットされる待ち時間は、ロック処理監視部104において任意に設定することができる。ロック・アンロック要求応答データ221を受けたら、ロック処理監視部104は、タイマ部108にタイマのリセットを依頼し、ロックデータ蓄積部120を検索し対応するデータに処理結果を反映する。アテンション通知データ231を受けたら、ロック処理監視部104はロックデータ蓄積部120を検索し対応するデータに処理結果を反映する。その他のデータを受けた場合は、ロック処理監視部104は特に何もしない。
タイマ部108は、ロック処理監視部104からのタイマセット指示時は、受け取ったロックデータ蓄積部120内のエントリアドレス402をキーにしてタイマをセットし、セットしたタイマID412とエントリアドレス402を応答監視タイマテーブル140に登録する。ロック処理監視部104からのタイマリセット指示時は、タイマ部108は受け取ったエントリアドレス402をキーに応答監視タイマテーブル140からタイマID412を検索して該当するタイマをリセットし、応答監視タイマテーブル140から該当するデータを削除する。
セットされたタイマがタイムアップとなったら、タイマ部108はタイムアップしたタイマID412をキーに応答監視タイマテーブル140からエントリアドレス402を検索し、応答監視タイマ処理部105に通知する。応答監視タイマ処理部105は、タイマ部108からエントリアドレス402を受け取ると、リカバリフラグ記憶部112にリカバリフラグをセットし、また、エントリ401に登録されたタスクIDから要求元ホスト3のタスクに障害の発生した運用系MSCP11xに代わってリカバリ中のため再試行を促す応答を送信する。
また応答監視タイマ処理部105は、ロックデータ蓄積部120のエントリ401の管理MSCP404に登録された情報から障害の発生した運用系MSCP11xを特定し、これ以外の運用系MSCP11へリカバリモードへの移行を要求する。その際、リカバリモードへの移行要求を送信した運用系MSCP11の台数を応答カウンタ記憶部113に設定する。
待機系運用系切り替え処理部106は、ロックデータ蓄積部120から運用系MSCP11xが管理していたロック可またはロック待ちのデータのみを排他制御テーブル130に再生し、再生し終えたら運用系MSCP11xを除く運用系MSCP11に通常モードへのモード移行要求を送受信処理部102経由で送信し、自身の運用モード記憶部111を「運用系」に変更し、リカバリフラグ記憶部112のリカバリフラグを解除する。応答カウンタ記憶部113は、待機系MSCP12から運用系MSCP11への要求の応答を計数するカウンタである。
次に実施例の動作について説明する。図10は、MSCP10が起動されるとMSCPモード管理部103が実行する動作を表すフローチャートである。MSCP10が起動されると(S10)、MSCPモード管理部103は初期記憶部101より自身の運用モード(運用系もしくは待機系)を読み出して運用モード記憶部111に設定し(S11)、以後は送受信処理部102からの通信データを待ち合わせる(S12)。
S12で送受信処理部102が通信データを受信したら、MSCPモード管理部103は該通信データが自身宛のものであるか否かを判断する(S13)。自身宛であれば後述の図11に示す処理を実行して(S14)、S12に戻る。自身宛でなければ(他宛)、該通信データがホスト3−MSCP10間の排他制御関連の通信であるか否かを判断する(S15)。ホスト3−MSCP10間の排他制御関連の通信であり、かつ自身の運用モードが待機系であれば(S16)、後述の図16に示す処理を実行して(S17)、S12に戻る。それ以外は全て、そのままS12に戻る。
MSCP10の運用モードが運用系MSCP11であり、ネットワーク2のどこにも障害が発生していない状態で運用されている状態(以後通常運用中という)での動作をまず説明する。この場合の動作においては、運用系MSCP11は送受信処理部102でホスト3からのロック・アンロック要求データ211を受付け、MSCPモード管理部103を介して排他制御処理部107で排他制御の処理を行い、その処理結果を排他制御テーブル130に格納し、ホスト3に処理結果を含むロック・アンロック要求応答データ221を送信する。また排他制御タイマ部115にセットされていた遅延タイマがタイムアウトした場合には、ホスト3に対して状態を含むアテンション通知データ231を通知する。
図11は、MSCP10が自身宛の通信データを受信した場合にMSCPモード管理部103が実行する動作を表すフローチャートである。まず、送受信処理部102で受信した自身宛の要求が、ホスト3−MSCP10間の通信かMSCP10−MSCP10間の通信かチェックする(S20)。S20でホスト3−MSCP10間の通信であれば、リカバリフラグ記憶部112にリカバリフラグがセットされているか否かを判断する(S21)。S20でMSCP10−MSCP10間の通信である場合の処理については後述する。
S21でリカバリフラグがセットされていず、かつ自身の運用モードが運用系であれば(S23)、後述の図12に示す排他制御処理部107を実行して(S24)、図10に戻る。それ以外は全て、そのまま図10に戻る。ここでは運用モードは運用系であり、通常運用中である(リカバリフラグがセットされていない)状態を考えているので、S24の排他制御処理部107が実行される。また、この処理の対象となる自身宛の受信データは、ロック・アンロック要求データ211である。
図12は、MSCP10において排他制御処理部107が実行する動作を表すフローチャートである。ロック・アンロック要求データ211を受信して起動された排他制御処理部107は(S100)、受信した要求の種類を判断する(S101)。ロック要求の場合は後述の図13に示すロック要求処理を実行し(S102)、アンロック要求の場合は後述の図14に示すアンロック要求処理を実行し(S103)、ホスト3にロック・アンロック要求応答データ221を送信して(S105)呼び出し元に戻る。
図13は、排他制御処理部107が実行するロック要求処理(S102)の動作を表すフローチャートである。まず排他制御処理部107は、排他制御テーブル130から図4のロック・アンロック要求データ211の資源ID214と一致する資源情報を検索し(S121)、要求された資源をロックしているタスクが存在するか否かを判断する(S122)。存在しなければ、新規に資源情報301を作成し(S123)、次に要求データからタスク情報311を作成し(S124)、作成した資源情報301のロックリスト303にタスク情報311を図8に示した形でリンクする(S125)。S105に戻って、ホスト3に処理結果222「ロック成功」を含むロック・アンロック要求応答データ221を通知する。
S122で要求された資源を既にロックしているタスクが存在する場合は、既に該資源をロックしているタスクのロック種別313をチェックし、該タスクと同時にロックが可能(ロック種別313が「S」)であるか否かを判断する(S126)。同時にロックが可能であれば、S124に進んでタスク情報311を作成し、既存のタスクの継続タスクリスト315にタスク情報311をリンクする(S125)。S105に戻って、ホスト3に処理結果222「ロック成功」を含むロック・アンロック要求応答データ221を通知する。
S126で既存のタスクのロック種別313が「X」であり、同時にロックが不可能である場合は、S127に進んでタスク情報311を作成し、資源情報301のロック待ちリスト304にタスク情報311をリンクする(S125)。また、ロック・アンロック要求データ211に遅延タイマ値216が指定されている場合は、指定された値で排他制御タイマ部115に遅延タイマをセットする(S129)。S105に戻って、ホスト3に処理結果222「ロック待ち」を含むロック・アンロック要求応答データ221を通知する。
図14は、排他制御処理部107が実行するアンロック要求処理(S103)の動作を表すフローチャートである。まず排他制御処理部107は、排他制御テーブル130からロック・アンロック要求データ211の資源ID214と一致する資源情報を検索し(S147)、要求された資源をロックしているタスク情報311を(S122)資源情報301から外す(S140)。次に、該資源の資源情報301のロック待ちリスト304に登録されているタスクが存在するか否かを判断する(S141)。
S141で、ロック待ちリスト304にタスクが存在しない場合は、さらに該資源の資源情報301のロックリスト303に登録されているタスクが存在するか否かを判断する(S142)。S142でロックリスト303にタスクが存在すれば、そのままS105に戻って、ホスト3には処理結果「アンロック完了」が通知される。S142でロックリスト303にタスクが存在しなければ、該資源情報301を削除して(S143)からS105に戻って、ホスト3に処理結果222「アンロック完了」を含むロック・アンロック要求応答データ221を通知する。
S141で、ロック待ちリスト304にタスクが存在する場合は、さらに該資源の資源情報301のロックリスト303に登録されているタスクが存在するか否かを判断する(S144)。S144でロックリスト303にタスクが存在すれば、そのままS105に戻って、ホスト3に処理結果222「アンロック完了」を含むロック・アンロック要求応答データ221を通知する。
S144でロックリスト303にタスクが存在しなければ、ロック待ちのタスクに遅延タイマが設定されていれば排他制御タイマ部115から該当する遅延タイマを解除して(S145)、ロック待ちリスト304に登録されていたタスクをロックリスト303に移動して、ホスト3に処理結果222「ロック成功」を含むロック・アンロック要求応答データ221が通知される(S146)。そしてS105に戻って、ホスト3に処理結果222「アンロック完了」を含むロック・アンロック要求応答データ221を通知する。
図15は、排他制御タイマ部115にセットされていた遅延タイマがタイムアウトした場合に排他制御処理部107が実行するタイムアウト処理の動作を表すフローチャートである。排他制御処理部107は、該資源の資源情報301のロック待ちリスト304から、該遅延タイマをセットしたタスク情報311を外す(S150)。そしてタスク情報311のタスクID215の属するホスト3に対して状態232「ロック不可」を含むアテンション通知データ231を通知する。
次に、MSCP10の運用モードが待機系MSCP12であり、ネットワーク2が通常運用中である場合の動作について説明する。この場合の動作においては、待機系MSCP12は送受信処理部102でネットワーク上の通信データを取り込み、図10のS15〜17として既に示したように、取り込んだ通信データが「自身宛でなく、ホスト3−MSCP10間の通信で排他制御に関わるもの」である場合に、MSCPモード管理部103が該通信データをロック処理監視部104に処理させる。
図16は、MSCP10が自身宛でない通信データを受信した場合にロック処理監視部104が実行する動作を表すフローチャートである。図17は、MSCP10が受信した自身宛でない通信データがホスト3からMSCP10への要求通信である場合に、ロック処理監視部104が実行する動作を表すフローチャートである。まずロック処理監視部104は、送受信処理部102で受信した自身宛でない要求が、ホスト3からMSCP10へのロック・アンロック要求データ211であるか否かを判断する(S40)。ロック・アンロック要求データ211であれば、図17に示すホストコマンド要求処理を実行する(S41)。
図17のホストコマンド要求処理において、まずロック処理監視部104は該要求がロック要求かアンロック要求であるかを判断する(S50)。ロック要求であれば、ロック処理監視部104はロックデータ蓄積部120に新規のエントリ401を作成し(S51)、これにロック・アンロック要求データ211に含まれる資源ID214、タスクID215および遅延タイマ値216をセットする(S52)。さらに該エントリ401の管理MSCP404に通信ヘッダ201の宛先アドレス203をセットし(S53)、状態403に「ロック要求中」をセットする(S54)。最後に、タイマ部108に作成したエントリアドレス402と共にタイマをセットさせる(S57)。
S50で、該要求がアンロック要求であれば、ロック処理監視部104はロックデータ蓄積部120からロック・アンロック要求データ211に含まれる資源ID214、タスクID215と一致するエントリ401を検索し(S55)、該エントリ401の状態403に「ロック要求中」をセットする(S56)。最後に、ロック要求の場合と同様にS57に進み、タイマ部108に作成したエントリアドレス402と共にタイマをセットさせる。なお、S57でタイマ部108にセットされる待ち時間は、ロック処理監視部104内部において任意に設定することができる。
S40で、通信データがホスト3からMSCP10への要求通信でない場合は、該通信データはMSCP10からホスト3へのロック・アンロック要求応答データ221か、もしくはアテンション通知データ231のいずれかである。ロック処理監視部104は、該通信データがそのいずれであるかを判断する(S42)。
ロック・アンロック要求応答データ221であれば、ロック処理監視部104はロックデータ蓄積部120から該ロック・アンロック応答データ221に含まれる資源ID214、タスクID215と一致するエントリ401を検索し(S43)、タイマ部108にエントリ401に対応するタイマをリセットさせる(S44)。ここでロック・アンロック要求応答データ221がロック要求に対する応答であるかアンロック要求に対する応答であるかを判定する(S45)。
ロック・アンロック応答データ221の処理結果222が「ロック可」もしくは「ロック待ち」であれば、該ロック・アンロック応答データ221はロック要求に対する応答である。この場合は、処理結果222の「ロック可」もしくは「ロック待ち」と同一の状態を状態403にセットして(S46a)参照元に戻る。S45で、ロック・アンロック応答データ221の処理結果222が「ロック可」でも「ロック待ち」でもなければ、該ロック・アンロック応答データ221はアンロック要求に対する応答である。この場合は、該エントリを削除して(S46b)参照元に戻る。
S42で、通信データがアテンション通知データ231であれば、ロック処理監視部104はロックデータ蓄積部120から該アテンション通知データ231に含まれる資源ID214、タスクID215と一致するエントリ401を検索する(S47)。ここでアテンション通知データ231の状態232の内容を判断し(S48)、状態232が「ロック成功」であれば、検索されたエントリの状態403を「ロック可」にセットして(S49a)参照元に戻る。「ロック不可」であれば、該エントリ401を削除して(S49b)参照元に戻る。
運用系MSCP11がロック・アンロック要求データ211を受けるとS57でタイマ108がセットされ、それに対してロック・アンロック要求応答データ221を返すとS44でタイマ108がリセットされる。運用系MSCP11が正常に動作していれば、ロック・アンロック要求データ211を受けてからロック・アンロック要求応答データ221を返すまでの処理が所定の時間内で行われるので、タイマ108がタイムアップすることはない。
さて、ここで運用系MSCP11の中の一つである運用系MSCP11xに障害が発生した。その場合、運用系MSCP11xが受けたロック・アンロック要求データ211に対するロック・アンロック要求応答データ221は無い。従って、ロック・アンロック要求データ211に対応してセットされたタイマ108は、リセットされずにタイムアップする。これによって、待機系MSCP12は、運用系MSCP11xに障害が発生したことを検出する。タイマ部108は、タイムアップが発生すると、該タイムアップしたエントリに対応するロックデータ蓄積部120のエントリアドレス402を応答監視タイマ処理部105に通知する。
図18は、タイマ部108からの通知を受けた応答監視タイマ処理部105が実行する動作を表すフローチャートである。応答監視タイマ処理部105は、リカバリフラグ記憶部112のリカバリフラグをセットし(S60)、障害が発生した運用系MSCP11x以外の運用系MSCP11へ要求モード243が「リカバリモード」であるモード移行要求241を送信し(S61)、モード移行要求241を送信した運用系MSCP11の数を応答カウンタ記憶部113に設定する(S62)。また、タイムアップの対象となったロック・アンロック要求データ211を送信したホスト3に対して、処理結果222が「再試行応答」であるロック・アンロック要求応答データ221を送信して(S63)参照元に戻る。
リカバリモードへのモード移行要求241を受け取った運用系MSCP11のMSCPモード管理部103は、モード移行要求241を図10のS13において自身宛の通信であると判断し、S14で図11の処理に進む。該通信はMSCP10−MSCP10間の通信であるので、S20においてホスト3−MSCP10間の通信ではないと判断してS25に進む。ここで自らの動作モードを運用系であると判断して、リカバリフラグ記憶部112のリカバリフラグをセットし(S26)、モード移行要求241を発信した待機系MSCP12に対してモード変更応答242を返信する(S27)。
モード変更応答242を受け取った待機系MSCP12のMSCPモード管理部103は、該モード変更応答242を図10のS13において自身宛の通信であると判断し、S14で図11の処理に進む。該通信はMSCP10−MSCP10間の通信であるので、S20においてホスト3−MSCP10間の通信ではないと判断してS25に進む。ここで自らの動作モードを待機系であると判断して、図18のS62でセットされた応答カウンタ記憶部113をディクリメントし(S28)、続いて応答カウンタ記憶部113の設定値が0になったか否かを判断する(S29)。
応答カウンタ記憶部113はモード移行要求241を送信した運用系MSCP11の数が初期設定されているので、その設定値が0になったということは、モード移行要求241を送信した全ての運用系MSCP11からモード変更応答242を受けたことを意味する。そこで、応答カウンタ記憶部113の設定値が0となれば、図19に示す待機系運用系切り替え処理部106の処理を実行する。
ちなみに、ここでいうリカバリモードとは、運用系MSCP11のリカバリフラグ記憶部112にリカバリフラグがセットされている状態である。リカバリモードでの動作となった運用系MSCP11は、ホストからロック・アンロック要求データ211を受けると、該通信を図10のS13において自身宛の通信であると判断してS14で図11の処理に進み、さらにS20においてホスト3−MSCP10間の通信であると判断してS21に進む。しかし、ここでリカバリフラグがセットされているので、排他制御処理を行わずに処理結果222が「再試行応答」であるロック・アンロック要求応答データ221を送信する(S22)。
図19は、待機系MSCP12において、待機系運用系切り替え処理部106が実行する動作を表すフローチャートである。待機系運用系切り替え処理部106は、ロックデータ蓄積部120からエントリ401を1データずつ取り出し(S71〜72)、エントリ401の管理MSCP404が障害の発生した運用系MSCP11xに該当し、かつ状態403が「ロック可」もしくは「ロック待ち」であるものについて、図20に示す排他制御テーブル130の再生の処理を行う(S73〜74)。
図20は待機系運用系切り替え処理部106が実行する排他制御テーブル130の再生の処理の動作を表すフローチャートである。待機系運用系切り替え処理部106は、エントリ401の資源ID214に一致する資源情報301が、排他制御テーブル130に存在するか否かを検索して判定する(S80〜81)。該資源が存在しなければ、資源情報301を作成する(S82)。
続いてエントリ401からタスク情報311を作成し(S83)、エントリ401の状態403を判断し(S84)、状態403が「ロック状態」であればタスク情報311を該当する資源情報301のロックリスト303にリンクして(S85)参照元に戻る。状態403が「ロック待ち状態」であれば、排他制御タイマ部115に遅延タイマをセットし(S87)、タスク情報311を該当する資源情報301のロック待ちリスト304にリンクして(S88)参照元に戻る。
これらの動作は、運用系MSCP11xが排他制御テーブル130に対して実行していた動作と同一であるので、排他制御タイマ部115による動作が含まれたとしても、排他制御テーブル130を正確に再現することが可能である。
以上、ロックデータ蓄積部120から全てのエントリ401を読み取って排他制御テーブル130の再生を完了したら、待機系運用系切り替え処理部106は図19のS72で「データ無し」と判断してS75に進む。S75で、全ての運用系MSCP11に要求モード243が「通常モード」であるモード移行要求241を送信する。運用系MSCP11の側においては、前述のリカバリモードへの移行要求と同様の動作(図11S26)で、リカバリフラグ記憶部112のリカバリフラグを削除する。この場合はS27のモード変更応答242は返信しない。
そして待機系運用系切り替え処理部106は、自身の運用モード記憶部111を「運用系」に変更し(S76)、リカバリフラグ記憶部112のリカバリフラグを解除する(S77)。以上の処理を経て、待機系MSCP12は、障害の発生した運用系MSCP11xの後継として動作する運用系MSCP12xとなる。
以上、フローチャートによって説明してきた動作をまとめると、次のようになる。図21は、本実施の形態に係るMSCP10が通信データを受信した際の動作をまとめた表である。
自らの動作モードが運用系MSCP11である場合、自身宛の通信で、「リカバリフラグ記憶部112にリカバリフラグがセットされていて、かつロック・アンロック要求データ211を受信した場合」には、処理結果222が「再試行応答」であるロック・アンロック要求応答データ221を返信する(図11S21〜22)。「リカバリフラグ記憶部112にリカバリフラグがセットされていて、かつ要求モード243が『通常モード』であるモード移行要求241を受信した場合」には、リカバリフラグ記憶部112のリカバリフラグを削除する(図11S25〜26)。
「リカバリフラグ記憶部112にリカバリフラグがセットされていなくて、かつ要求モード243が『リカバリモード』であるモード移行要求241を受信した場合」には、リカバリフラグ記憶部112のリカバリフラグをセットして、モード変更応答242を返信する(図11S25〜27)。「リカバリフラグ記憶部112にリカバリフラグがセットされていなくて、かつロック・アンロック要求データ211を受信した場合」には、排他制御処理部107が要求に基づいて排他制御処理を実行し、処理結果に対応したロック・アンロック要求応答データ221を返信する(図11S24)。それらの場合以外は何もしない。また、他宛の通信に対しても何もしない。
自らの動作モードが待機系MSCP12である場合、自身宛の通信で「モード変更応答242を受信した場合」には、応答カウンタ記憶部113をディクリメントし、続いて応答カウンタ記憶部113の設定値が0になったか否かを判断する(図11S28〜30)。また、他宛の通信で「ロック・アンロック要求データ211またはロック・アンロック要求応答データ221を受信した場合」には、ロック処理監視部104による動作を行う(図10S17)。それらの場合以外は何もしない。このとき、自身宛の通信でロック・アンロック要求データ211を受信することは通常あり得ないが、万一そのようなことがあったとしても何もしない。
図22は、本発明の実施の形態に係る疎結合システム1において、全ての運用系MSCP11が正常に動作している状態での各ホスト3およびMSCP10を表す概念図である。
ホスト3が、運用系MSCP11にロック・アンロック要求データ211を送ると、運用系MSCP11はそれに対してロック・アンロック要求応答データ221を返す。同時に、ネットワーク2上での全ての通信データを監視することのできる待機系MSCP12は、それらのロック・アンロック要求データ211をロックデータ蓄積部120に蓄積し、同時にロック・アンロック要求データ211に対するロック・アンロック要求応答データ221が所定の時間内に返されたか否かを監視する。所定の時間内に返されたロック・アンロック要求応答データ221は、ロックデータ蓄積部120に反映される。
図23は、本発明の実施の形態に係る疎結合システム1において運用系MSCP11xに障害が発生した状態での各ホスト3およびMSCP10を表す概念図である。待機系MSCP12は、ロック・アンロック要求データ211に対するロック・アンロック要求応答データ221が所定の時間内に返されなかったことを検出して、運用系MSCP11xに障害が発生したことを検出する。その際待機系MSCP12は、ロック・アンロック要求データ211を発したホスト3に対して、運用系MSCP11xのかわりにロック・アンロック要求応答データ221を返して再試行応答を行い、引き続いてリカバリの処理に入る。
図24は、本発明の実施の形態に係る疎結合システム1においてリカバリの処理を行った後の各ホスト3およびMSCP10を表す概念図である。待機系MSCP12は、ロックデータ蓄積部120に蓄積されたデータの中から運用系MSCP11xに関連するものを抽出し、運用系MSCP11xの排他制御テーブル130を再生する。そして自身の動作モードを切り替えて運用系MSCP12xとなり、障害が発生した運用系MSCP11xの後継として動作する。
このリカバリの処理の間、他の運用系MSCP11は、一時的にロック・アンロック要求データ211を受け付けないリカバリモードとなる。しかし排他制御テーブル130を再生する作業は待機系MSCP12内部に蓄積されたデータによって行われるので、人手による操作を必要とせず、またホスト3や他の運用系MSCP11とのデータの同期なども必要とせず、短時間で完了する。運用系MSCP11のリカバリモードは、ごく短時間で終了して通常の動作に戻る。従って、ホスト3の動作を一時停止もしくは制限する必要はない。
障害が発生した運用系MSCP11xが復帰しても、運用系MSCP12xを元の待機系MSCP12に戻す必要はなく、そのまま運用系MSCP11としての動作を継続させることができる。そのかわり、リカバリの処理が行われた後の疎結合システム1には待機系MSCP12が存在しないので、復帰したMSCPは待機系MSCP12としてネットワーク2に接続して疎結合システム1に参加させるとよい。
つまり、本実施の形態によって、ホスト3の動作を停止することなく、運用系MSCP11のリカバリを行うことができる。この動作には、運用系MSCP11と同一の性能を持つMSCP10を疎結合システム1に1台追加して待機系MSCP12とするだけでよい。ホスト3および運用系MSCP11に障害を検出する機能を追加する必要はなく、またホスト3にMSCP10と連携するモジュールを追加する必要もない。従って、本実施の形態を疎結合システム1に適用するために必要なコストは小さい。
なお、本実施の形態は、待機系MSCP12がネットワーク2上で、ホスト3と運用系MSCP11との間の通信データを監視できることが前提となる。ネットワーク2がイーサネット(登録商標)であれば、基本的には接続された全てのホスト3およびMSCP10がネットワーク2上の全ての通信データを受信することが可能である。
ただし、たとえばネットワーク2における接続にスイッチングハブを使用している場合などで、自身宛ではない通信データを受信できない場合がある。その場合は、全てのホスト3および運用系MSCP11が、ホスト3と運用系MSCP11との間の通信をブロードキャストで送信するようにすれば、本実施の形態を適用することができる。その際にホスト3および運用系MSCP11に対して必要な設定変更は僅かで済む。
1台の待機系MSCP12が複数台の運用系MSCP11の後継となることはできない。しかし、1つの疎結合システム1に対して待機系MSCP12は1台だけに制限されることはないので、同時に複数台の運用系MSCP11に障害が発生することが予想される場合は、想定される障害の規模に応じて、疎結合システム1が2台以上の待機系MSCP12を持つようにすればよい。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
疎結合システムを構成するコンピュータにおいて利用可能である。
本発明の実施の形態に係る疎結合システムの構成を示すブロック図である。 本発明の実施の形態に係る疎結合システム上で通信されるデータの基本フォーマットを示すブロック図である。 ホストとMSCPとの間での排他制御関連の通信における個別データの内容を示すブロック図である MSCP相互間での排他制御関連の通信における個別データの内容を示すブロック図である。 本発明の実施の形態に係るMSCPの構成を示すブロック図である。 本発明の実施の形態に係る排他制御テーブルで資源情報のデータ構成を示すブロック図である。 本発明の実施の形態に係る排他制御テーブルでタスク情報のデータ構成を示すブロック図である。 本発明の実施の形態に係る排他制御テーブルで資源情報とタスク情報との間のデータの関係を示すブロック図である。 ロックデータ蓄積部および応答監視タイマテーブルに記録されるデータエントリの形式を示すブロック図である。 MSCPが起動されるとMSCPモード管理部が実行する動作を表すフローチャートである。 MSCPが自身宛の通信データを受信した場合にMSCPモード管理部が実行する動作を表すフローチャートである。 MSCPにおいて排他制御処理部が実行する動作を表すフローチャートである。 排他制御処理部が実行するロック要求処理の動作を表すフローチャートである。 排他制御処理部が実行するアンロック要求処理の動作を表すフローチャートである。 排他制御タイマ部にセットされていた遅延タイマがタイムアウトした場合に排他制御処理部が実行するタイムアウト処理の動作を表すフローチャートである。 MSCPが自身宛でない通信データを受信した場合にロック処理監視部が実行する動作を表すフローチャートである。 MSCPが受信した自身宛でない通信データがホストからMSCPへの要求通信である場合に、ロック処理監視部が実行する動作を表すフローチャートである。 タイマ部からの通知を受けた応答監視タイマ処理部が実行する動作を表すフローチャートである。 待機系MSCPにおいて、待機系運用系切り替え処理部が実行する動作を表すフローチャートである。 待機系運用系切り替え処理部が実行する排他制御テーブルの再生の処理の動作を表すフローチャートである。 本発明の実施の形態に係るMSCPが通信データを受信した際の動作をまとめた表である。 本発明の実施の形態に係る疎結合システムにおいて、全ての運用系MSCPが正常に動作している状態での各ホストおよびMSCPを表す概念図である。 本発明の実施の形態に係る疎結合システムにおいて運用系MSCPに障害が発生した状態での各ホストおよびMSCPを表す概念図である。 本発明の実施の形態に係る疎結合システムにおいてリカバリの処理を行った後の各ホストおよびMSCPを表す概念図である。 従来の疎結合システムにおいて、障害が発生していない場合の動作を示す概念図である。 従来の疎結合システムにおいて、障害が発生した場合の動作を示す概念図である。
符号の説明
1 疎結合システム
2 ネットワーク
3 ホスト
10 MSCP
11 運用系MSCP
11x 運用系MSCP(故障)
12 待機系MSCP
12x 運用系MSCP(後継)
101 初期記憶部
102 送受信処理部
103 MSCPモード管理部
104 ロック処理監視部
105 応答監視タイマ処理部
106 待機系運用系切り替え処理部
107 排他制御処理部
108 タイマ部
111 運用モード記憶部
112 リカバリフラグ記憶部
113 応答カウンタ記憶部
115 排他制御タイマ部
120 ロックデータ蓄積部
130 排他制御テーブル
140 応答監視タイマテーブル
201 データ
202 送信元アドレス(FROM:)
203 送信先アドレス(TO:)
204 個別データ
211 ロック・アンロック要求データ
212 メッセージID
213 要求種別
214 資源ID
215、215a、215b、215c タスクID
216 遅延タイマ値
221 ロック・アンロック要求応答データ
222 処理結果
231 アテンション通知データ
232 状態
241 モード移行要求
242 自MSCP番号
243 要求モード
251 モード移行完了応答
301 資源情報
303 ロックリスト
304 ロック待ちリスト
311 タスク情報
313、313a、313b、313c ロック種別
314、314a、314b、314c 遅延タイマ値
315、315a、315b、315c 継続タスクリスト
401 エントリ
402 エントリアドレス
403 状態
404 管理MSCP
411 エントリ
412 タイマID

Claims (10)

  1. 複数のホストと、前記ホストに共用される共有資源と、前記ホストからのコマンドを受けて前記共有資源をロックもしくはアンロックする複数台の運用系排他制御装置とが全て単一のネットワークで接続され
    前記ネットワーク上の全ての通信を監視し、前記運用系排他制御装置がすべて正常に運用されている間は前記ホストから前記運用系排他制御装置へ発せられたコマンドを蓄積し、前記ホストから前記運用系排他制御装置へ前記共有資源をロックもしくはアンロックするコマンドが発せられてから一定時間経過しても前記運用系排他制御装置が前記ホストに対して応答しないことを検出したときに前記運用系排他制御装置に障害が発生したと判断してこの障害が発生した運用系排他制御装置として動作する単数もしくは複数の待機系排他制御装置を前記ネットワーク上に装備した
    ことを特徴とする疎結合システム。
  2. 前記待機系排他制御装置は、前記運用系排他制御装置に障害が発生したときに、前記ホストに対して再試行要求を返信することを特徴とする、請求項記載の疎結合システム。
  3. 前記待機系排他制御装置は、前記運用系排他制御装置に障害が発生したときに、前記蓄積したコマンドに含まれる前記障害が発生した運用系排他制御装置に対するコマンドおよび該コマンドに対する応答を抽出し、前記障害が発生した運用系排他制御装置の排他制御情報を再生することを特徴とする、請求項記載の疎結合システム。
  4. 前記ホストと前記運用系排他制御装置は、前記ホストと前記運用系排他制御装置との間の通信を前記ネットワーク上にブロードキャスト送信することを特徴とする、請求項記載の疎結合システム。
  5. 複数のホストと、前記ホストに共用される共有資源と、前記ホストからのコマンドを受けて前記共有資源をロックもしくはアンロックする複数台の運用系排他制御装置とが全て単一のネットワークで接続された疎結合システムにおいて使用される待機系排他制御装置であって、
    前記ネットワーク上の全ての通信を監視し、前記運用系排他制御装置がすべて正常に運用されている間は前記ホストから前記運用系排他制御装置へ発せられたコマンドを蓄積するロックデータ蓄積手段と、
    前記ホストから前記運用系排他制御装置へ前記共有資源をロックもしくはアンロックするコマンドが発せられてからの経過時間を計測するタイマと、
    前記タイマが計測した経過時間が一定時間に到達しても前記運用系排他制御装置が前記ホストに対して応答しないことを検出したときに前記運用系排他制御装置に障害が発生したと判断する応答監視手段と、
    前記運用系排他制御装置のいずれかに障害が発生したときに前記待機系排他制御装置を前記障害が発生した運用系排他制御装置として動作させる待機系運用系切り替え手段と
    を有することを特徴とする待機系排他制御装置。
  6. 前記応答監視手段は、前記運用系排他制御装置に障害が発生したときに前記ホストに対して再試行要求を返信することを特徴とする、請求項記載の待機系排他制御装置。
  7. 前記待機系運用系切り替え手段は、前記運用系排他制御装置に障害が発生したときに、前記ロックデータ蓄積手段に蓄積されたコマンドに含まれる前記障害が発生した運用系排他制御装置に対するコマンドを抽出し、前記障害が発生した運用系排他制御装置の排他制御情報を再生することを特徴とする、請求項記載の待機系排他制御装置。
  8. 複数のホストと、前記ホストに共用される共有資源と、前記ホストに共用される共有資源をロックもしくはアンロックする複数台の運用系排他制御装置と、待機系排他制御装置とが全て単一のネットワークで接続された疎結合システムにあって前記運用系排他制御装置に障害が発生したときに前記疎結合システムをリカバリする方法であって、
    前記ホストが前記運用系排他制御装置に対して、前記共有資源をロックもしくはアンロックするコマンドを送信し、
    続いて前記待機系排他制御装置が前記ネットワーク上の全ての通信を監視して前記ロックもしくはアンロックするコマンドを蓄積し、
    続いて前記待機系排他制御装置が前記共有資源をロックもしくはアンロックするコマンドが発せられてからの経過時間が一定時間に到達しても前記運用系排他制御装置が前記ホストに対して応答しないことを検出したときに前記運用系排他制御装置のいずれかに障害が発生した判断し、
    前記障害が発生した場合に前記待機系排他制御装置が前記障害が発生した運用系排他制御装置として動作する
    することを特徴とするリカバリ方法。
  9. 複数のホストと、前記ホストに共用される共有資源と、前記ホストに共用される共有資源をロックもしくはアンロックする複数台の運用系排他制御装置と、待機系排他制御装置とが全て単一のネットワークで接続された疎結合システムにおいて使用される待機系排他制御装置が備えているコンピュータに、
    前記ネットワーク上の全ての通信を監視して前記ロックもしくはアンロックするコマンドを蓄積する機能と、
    前記共有資源をロックもしくはアンロックするコマンドが発せられてからの経過時間が一定時間に到達しても前記運用系排他制御装置が前記ホストに対して応答しないことを検出したときに前記運用系排他制御装置のいずれかに障害が発生した判断する機能と、
    前記障害が発生した場合に前記コンピュータを前記障害が発生した運用系排他制御装置として動作させる機能と
    を実行させることを特徴とするコンピュータプログラム。
  10. 請求項記載のコンピュータプログラムをコンピュータが読み取り可能なように記憶した記憶媒体。
JP2007223110A 2007-08-29 2007-08-29 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体 Expired - Fee Related JP5067075B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007223110A JP5067075B2 (ja) 2007-08-29 2007-08-29 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007223110A JP5067075B2 (ja) 2007-08-29 2007-08-29 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体

Publications (2)

Publication Number Publication Date
JP2009058998A JP2009058998A (ja) 2009-03-19
JP5067075B2 true JP5067075B2 (ja) 2012-11-07

Family

ID=40554717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007223110A Expired - Fee Related JP5067075B2 (ja) 2007-08-29 2007-08-29 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体

Country Status (1)

Country Link
JP (1) JP5067075B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6119302B2 (ja) * 2013-02-27 2017-04-26 日本電気株式会社 排他制御装置、排他制御方法、排他制御システムおよびプログラム
WO2014147773A1 (ja) * 2013-03-20 2014-09-25 富士通株式会社 ハードウェア装置およびハードウェア装置の制御方法
JP7315214B2 (ja) * 2019-11-29 2023-07-26 Necソリューションイノベータ株式会社 疎結合システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324381A (ja) * 1992-05-14 1993-12-07 Mitsubishi Electric Corp 2重化入出力制御部を有する通信装置
JPH06332876A (ja) * 1993-05-18 1994-12-02 Mitsubishi Electric Corp 系間排他制御方式
JP4266507B2 (ja) * 2000-09-22 2009-05-20 富士通株式会社 オブジェクト連携モニタシステム
JP2007133542A (ja) * 2005-11-09 2007-05-31 Nippon Telegr & Teleph Corp <Ntt> 情報引継ぎシステム、情報引継ぎ方法、現用系ノード及び待機系ノード

Also Published As

Publication number Publication date
JP2009058998A (ja) 2009-03-19

Similar Documents

Publication Publication Date Title
JP5018133B2 (ja) ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
JP5901682B2 (ja) 高可用性データベース管理システム、およびこれを用いたデータベース管理方法
JP2005018510A (ja) データセンタシステム及びその制御方法
JP5699852B2 (ja) 情報処理装置、ストレージ制御方法およびプログラム
JP2002526821A (ja) 複数のファイルサーバ間における永続状況情報の調整
JPWO2008126325A1 (ja) クラスタシステム、ソフトウェア更新方法、サービス提供ノード、およびサービス提供用プログラム
JP2005025683A (ja) 記憶システム及び記憶装置システム
JP2009025965A (ja) フェールオーバにおける引き継ぎ先を自律的に変更する計算機システム及び方法
US20100138625A1 (en) Recording medium storing update processing program for storage system, update processing method, and storage system
WO2013189289A1 (zh) 数据处理的方法、网卡和系统
JP2018041146A (ja) 管理装置、制御方法、プログラム
JP2004302632A (ja) コンピュータ処理方法及びその実施システム並びにその処理プログラム
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP5067075B2 (ja) 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体
KR101605455B1 (ko) 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
JP4408692B2 (ja) 通信装置管理プログラム
JP2008090798A (ja) データ処理システムのバックアップ制御装置及びシステム
JP4869028B2 (ja) 映像蓄積配信システム及び映像蓄積配信方法
JP6665892B2 (ja) 情報処理システム,情報処理装置および制御プログラム
JP4202158B2 (ja) プラントデータ収集装置
US7359833B2 (en) Information processing system and method
JP5480046B2 (ja) 分散トランザクション処理システム、装置、方法およびプログラム
JP2006344090A (ja) Sanディザスタリカバリシステム
JP2007148520A (ja) 情報通知方法及び計算機システム
JP7315214B2 (ja) 疎結合システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120717

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120730

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees