(57)【要約】【課題】二重化されたデータ処理システムで、２つの装置のいずれかに障害が発生したときに一方の装置がこの検出を失敗してもシステムの系の変更が可能な二重化装置および障害時系切替方法を得ること。【解決手段】二重化されたデータ処理システムで自装置あるいは他装置の障害を示す割り込みが成功した場合（ステップＳ４０１：Ｙ）、自系に障害が検出されれば自系状態変更処理で、また他系に障害が検出されれば他系停止系推移処理でそれぞれが停止系に推移する（ステップＳ４０３、Ｓ４０５）。停止系推移完了通知を他の装置から受信すれば自系状態変更処理で自装置を信用系に推移させる（ステップＳ４０８）。【選択図】図３
2008310411.tif 000002
【特許請求の範囲】
【請求項１】
二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達手段と、
この障害発生伝達手段によって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別手段と、
この障害発生源判別手段により判別された障害が発生した側の装置を前記データ処理システムの運用系あるいは待機系のいずれかから前記データ処理システムから切り離される停止系に無条件に変更する停止系推移処理を実行する停止系推移手段
とを具備することを特徴とする二重化装置。
【請求項２】
二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達手段と、
この障害発生伝達手段によって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別手段と、
この障害発生源判別手段により判別された障害が発生した側が自装置であるとき自装置を前記データ処理システムの運用系あるいは待機系のいずれかから前記データ処理システムから切り離される停止系に無条件に変更する自系状態変更処理を実行する自系状態変更手段
とを具備することを特徴とする二重化装置。
【請求項３】
二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達手段と、
この障害発生伝達手段によって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別手段と、
この障害発生源判別手段により判別された障害が発生した側が他装置であるときこの他装置を前記データ処理システムの運用系あるいは待機系のいずれかから前記データ処理システムから切り離される停止系に無条件に変更する他系停止系推移処理を実行する他系停止系推移処理手段
とを具備することを特徴とする二重化装置。
【請求項４】
前記障害発生伝達手段は、前記自装置と前記他装置のそれぞれに設けられた障害監視用の障害監視部同士を接続する障害監視リンクを通じて、それぞれの装置のＣＰＵ（Central Processing Unit）に対して割り込み処理を行う手段であることを特徴とする請求項２または請求項３記載の二重化装置。
【請求項５】
前記自系状態変更手段によって自装置が停止系に推移したときであって前記他装置に障害がないときにこの他装置の運用系への移行を促す停止系推移完了通知を出力する停止系推移完了通知出力手段を具備することを特徴とする請求項２記載の二重化装置。
【請求項６】
前記停止系推移完了通知を受信したとき自装置を運用系に推移させる自系状態変更処理を実行することを特徴とする請求項５記載の二重化装置。
【請求項７】
二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達ステップと、
この通知受信ステップによって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別ステップと、
この障害発生源判別ステップにより障害が発生した側が自装置であると判別したとき自装置を前記データ処理システムの運用系あるいは待機系のいずれかから前記データ処理システムから切り離される停止系に無条件に変更する自系状態変更処理を実行する自系状態変更ステップと、
前記障害発生源判別ステップにより障害が発生した側が他装置であると判別されたときこの他装置を前記データ処理システムの運用系あるいは待機系のいずれかから前記データ処理システムから切り離される停止系に無条件に変更する他系停止系推移処理を実行する他系停止系推移処理ステップ
とを具備することを特徴とする障害時系切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理を二重化した二重化装置およびその障害時系切替方法に係わり、特に障害が発生したときに系の切り替えを行う二重化装置および障害時系切替方法に関する。
【背景技術】
【０００２】
各種のデータ処理装置や通信装置では、それらの処理内容の信頼性を高めるために２つの系を配置し、一方を運用系（現用系）とし他方を待機系（予備系）とした二重化されたデータ処理システムを構成することが多い。このような二重化されたデータ処理システムでは、それぞれの系の現在の状態をシステム全体で共有できるようにしている。このために、それぞれの系は自系がどのような状態にあるかを示す記憶領域を備えている。そして、他系の状態はこの記憶領域を参照して把握することが可能なようになっており、自系の状態は記憶領域の参照だけでなく、状態変化に応じてその内容を更新できるようになっている。たとえば、運用系の装置に障害が発生したとき、他系としての待機系の装置はこの障害発生を認識して自系を運用系に変更する。障害の発生した運用系の装置の方は、自系を停止系に変更してデータ処理システムから切り離す。
【０００３】
このように二重化されたデータ処理システムでは、一方の系の装置で障害が発生した場合、他方の系の装置でもこれを確実に認識し、たとえば自系の装置を待機系から運用系に切り替えるといった処理が行われることを前提としている。ところが、このような前提が成り立たない場合がある。
【０００４】
たとえばそれぞれ個別にコンピュータを備えた二重化されたデータ処理システムで、２つの装置が割り込み線を用いて障害発生時の通知のために割り込み処理を行う場合を考えてみる。一方の系の装置の内部で障害が発生すると、割り込み線を通じてその系と他方の系の双方の装置に対して障害発生の通知のための割り込みが試みられる。ところが、可能性としては、このうちの一方の系の装置のみが割り込みに失敗する場合がある。このような場合には、障害の発生を割り込みによって検知した装置は、これに対応させて、たとえば自装置を待機系から運用系へ切り替える。これに対して、割り込みに失敗した装置（この例では運用系の装置）では、障害の発生を割り込み処理で検出できないので、相変わらず前の系の状態としての運用系を保持することになる。この結果、この例では２つの装置が共に運用系となってしまうという不具合を発生させる。
【０００５】
そこで、運用系コンピュータの監視ができなくなるような障害が発生した場合に、この障害となった運用系のコンピュータをリセットすることが提案されている（たとえば特許文献１参照）。この提案では、運用系のコンピュータのリセットが成功すると、この旨の通知を残りのコンピュータに行って、所定の優先順位に沿って他のコンピュータがリセットされたコンピュータに代わって運用系となるようにしている。
【特許文献１】特開２００６−０１１９９２号公報（第００２２段落、第００３１段落、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、このように運用系の装置が監視できない状態になったときこれをリセットするようにすると、運用系の装置の障害が断続的に発生するよう場合、リセットした時点で障害が存在しなければこの装置が再度運用系に選択されることになる。したがって、運用系の装置のリセットが頻繁に発生するような事態が生じてシステムが安定しないという問題があった。
【０００７】
そこで本発明の目的は、二重化されたデータ処理システムで、２つの装置のいずれかに障害が発生したときに一方の装置がこの検出を失敗してもシステムの系の変更が可能な二重化装置および障害時系切替方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明では、（イ）二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達手段と、（ロ）この障害発生伝達手段によって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別手段と、（ハ）この障害発生源判別手段により判別された障害が発生した側の装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する停止系推移処理を実行する停止系推移手段とを二重化装置に具備させる。
【０００９】
すなわち本発明では、障害発生伝達手段から自装置が障害発生の通知を受けとることに成功した二重化装置は、障害発生源判別手段で障害が発生したと判断された側の装置を運用系あるいは待機系のいずれかから停止系に無条件に、すなわち追加的な判断を行うプロセスを経ることなく、変更する停止系推移処理を実行するようにしている。すなわち、場合によっては運用系以外の装置からでも系状態の強制的な変更処理を許すと共に、障害系をシステムから切り離すようにしている。
【００１０】
また、本発明では、（イ）二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達手段と、（ロ）この障害発生伝達手段によって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別手段と、（ハ）この障害発生源判別手段により判別された障害が発生した側が自装置であるとき自装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する自系状態変更処理を実行する自系状態変更手段とを二重化装置に具備させる。
【００１１】
すなわち本発明では、障害発生伝達手段から自装置が障害発生の通知を受けとることに成功した二重化装置は、障害が発生した側が自装置であるとき、自装置をデータ処理システムの運用系あるいは待機系のいずれかから停止系に無条件に、すなわち追加的な判断を行うプロセスを経ることなく、変更する自系状態変更処理を実行するようにしている。すなわち、場合によっては運用系以外の装置からでも系状態の強制的な変更処理を許すと共に、障害系をシステムから切り離すようにしている。
【００１２】
更に、本発明では、（イ）二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達手段と、（ロ）この障害発生伝達手段によって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別手段と、（ハ）この障害発生源判別手段により判別された障害が発生した側が他装置であるときこの他装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する他系停止系推移処理を実行する他系停止系推移処理手段とを二重化装置に具備させる。
【００１３】
すなわち本発明では、障害発生伝達手段から自装置が障害発生の通知を受けとることに成功した二重化装置は、障害が発生した側が他装置であるときこの他装置をデータ処理システムの運用系あるいは待機系のいずれかから停止系に無条件に、すなわち追加的な判断を行うプロセスを経ることなく、変更する他系停止系推移処理を実行するようにしている。すなわち、場合によっては運用系以外の装置からでも系状態の強制的な変更処理を許すと共に、障害系をシステムから切り離すようにしている。
【００１４】
更にまた、本発明では、（イ）二重化されたデータ処理システムを構成する１組の装置としての自装置と他装置のいずれの側に障害が発生してもその発生箇所から所定の伝達経路を経て障害発生の通知を伝達する障害発生伝達ステップと、（ロ）この通知受信ステップによって自装置が障害発生の通知を受けとることに成功したとき、その通知内容から自装置と他装置のいずれの側に障害が発生したかを判別する障害発生源判別ステップと、（ハ）この障害発生源判別ステップにより障害が発生した側が自装置であると判別したとき自装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する自系状態変更処理を実行する自系状態変更ステップと、（ニ）障害発生源判別ステップにより障害が発生した側が他装置であると判別されたときこの他装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する他系停止系推移処理を実行する他系停止系推移処理ステップとを障害時系切替方法に具備させる。
【００１５】
すなわち本発明では、障害が発生したときにその発生箇所から所定の伝達経路を経て障害発生の通知を自装置と他装置のいずれの側にも伝達させ、障害発生の通知を受けとることに成功した側の装置（自装置）は、知内容から自装置と他装置のいずれの側に障害が発生したかを判別するようにしている。そして、障害が発生した側が自装置であると判別したとき自装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する自系状態変更処理を実行し、障害が発生した側が他装置であると判別されたときこの他装置をデータ処理システムの運用系あるいは待機系のいずれかからデータ処理システムから切り離される停止系に無条件に変更する他系停止系推移処理を実行するようにしている。このように運用系以外の装置からでも系状態の強制的な変更処理を許すと共に、障害系をシステムから切り離すようにすることで、比較的安全な方の装置を運用系として残すようにしている。
【発明の効果】
【００１６】
このように本発明によれば、障害の発生の通知の受信に成功した側の装置が障害が自装置と他装置のいずれの側で発生したかを判断し、発生した側の装置を停止系に推移させるので、両方の装置が共に障害の通知の受信に成功した場合に限定して所定の装置を停止系に推移させるよりも障害系をシステムから迅速かつ確実に切り離すことができる。また、比較的安全な方の装置を運用系として残すことが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００１８】
図１は、本発明の一実施例における二重化システムの構成を表わしたものである。この二重化システム１００は、第１の装置１０１と第２の装置１０２の２つの装置を用いて通信システムを二重化したデュプレックスシステムを構成している。ここで第１の装置１０１は運用系となっており、通信路１０３または通信路１０４に接続された第１の切替スイッチ１０５および第２の切替スイッチ１０６が共に第１の装置１０１側に接続されている。第２の装置１０２は、待機系となっている。
【００１９】
第１の装置１０１は第１の切替スイッチ１０５側に第１の入出力部１１１11を配置しており、第２の切替スイッチ１０６側に第１の入出力部１１１12を配置している。第２の装置１０２は第１の切替スイッチ１０５側に第２の入出力部１１１21を配置しており、第２の切替スイッチ１０６側に第２の入出力部１１１22を配置している。
【００２０】
第１の装置１０１は、系の状態を制御する第１の系状態制御部１１２1を備えており、この内部にはＣＰＵ（Central Processing Unit）１１３1と、このＣＰＵ１１３1が実行する制御プログラムを格納したメモリ１１４1が配置されている。また、第１の装置１０１は、第１の系間通信対応部１１６1と、自系の障害監視を行う第１の障害監視部１１７1を備えている。
【００２１】
第２の装置１０２も同様の構成となっている。すなわち、第２の装置１０２は、系の状態を制御する第２の系状態制御部１１２2を備えており、この内部にはＣＰＵ１１３2と、このＣＰＵ１１３2が実行する制御プログラムが格納されたメモリ１１４2が配置されている。また、第２の装置１０２は、第２の系間通信対応部１１６2と、自系の障害監視を行う第２の障害監視部１１７2を備えている。
【００２２】
第１の系間通信対応部１１６1と第２の系間通信対応部１１６2は、系間リンク１２１によって接続されている。系間リンク１２１は、第１の系間通信対応部１１６1と第２の系間通信対応部１１６2の間で同期シーケンス用の通信を行うために使用される。また、第１の障害監視部１１７1と第２の障害監視部１１７2は、障害監視リンク１２２によって接続されている。障害監視リンク１２２は、第１の装置１０１と第２の装置１０２のいずれかに障害が発生したときこれを両系の第１の障害監視部１１７1と第２の障害監視部１１７2にハードウェア割り込みによって通知するために使用される。
【００２３】
第１の装置１０１と第２の装置１０２は、系の切り替えに関するデータの共通した記憶領域として装置状態情報格納部１２３を備えている。装置状態情報格納部１２３は、第１の装置領域１２４1と第２の装置領域１２４2を備えている。第１の装置１０１は第１の装置領域１２４1を参照したり、第１の装置領域１２４1に書き込みができるが、第２の装置領域１２４2からはデータの参照のみが可能である。同様に、第２の装置１０２は第２の装置領域１２４2を参照したり、第２の装置領域１２４2に書き込みができるが、第１の装置領域１２４1からはデータの参照のみが可能である。装置状態情報格納部１２３に格納されているデータに更新があると、第１の装置領域１２４1と第２の装置領域１２４2のいずれに対しても、状態の更新の通知が行われるようになっている。装置状態情報格納部１２３には、たとえば第１の装置１０１と第２の装置１０２がそれぞれ現時点で運用系であるか、待機系であるか、あるいは停止系であるかといった情報が格納されるようになっている。
【００２４】
このような本実施例の二重化システム１００で障害が発生して系の切り替えを行う場合を説明する。本実施例の説明を行う前に、本発明に関連する技術として一般に行われている系の切り替えのためのシーケンスを説明する。
【００２５】
図２は一般に行われている２つの系の切替シーケンスを表わしたものである。この図２に示したように、図１に示した第１の装置１０１に対応する運用系２０１と、第２の装置１０２に対応する待機系２０２が存在するものとする。この図２では、図の上から下方向に時間が経過しているものとする。
【００２６】
ある時刻ｔ1に運用系２０１に障害２０３が発生したものとする。すると、その後の時刻ｔ2に、ハードウェアからの運用系障害通知の割り込みが運用系２０１と待機系２０２に対して行われる（ステップＳ３０１）。運用系２０１と待機系２０２がこの障害割り込みを正しく受信したとする。
【００２７】
すると、互いの状態情報を認識して、正常系としての待機系２０２は障害系としての運用系２０１に対して同期動作が可能であるかどうかの問い合わせ（チェック）を行う（ステップＳ３０２）。これに対して運用系２０１から同期動作がＯＫ（肯定）であるという返答が待機系２０２に届いたものとする（ステップＳ３０３）。これを基にして待機系２０２は運用系２０１に対して、停止系に推移するための状態の推移を要求する（ステップＳ３０４）。この要求を運用系２０１が受信すると、自系の状態を変更処理して（ステップＳ３０５）、停止系２０１′に推移し、停止系推移完了通知を待機系２０２に送出することになる（ステップＳ３０６）。
【００２８】
待機系２０２はこの停止系推移完了通知を受信すると、自系の状態を変更処理して（ステップＳ３０７）、待機系２０２から運用系２０２′に推移する。そして、運用系推移完了通知を停止系２０１′に送出することになる（ステップＳ３０８）。以上の処理が終了すると、停止系２０１′がシステムから切り離される。
【００２９】
ところで、図２に示したこのような処理の手順が採られた場合には、ステップＳ３０１で示したようにハードウェアからの運用系障害通知の割り込みが運用系２０１と待機系２０２の双方で成功する必要がある。このような割り込みが運用系２０１と待機系２０２の双方で成功すれば、その後に、待機系２０２側が同期動作チェックを行うことで（ステップＳ３０２）、運用系２０１へ停止系２０１′への推移を要求することができる。
【００３０】
ところが、ハードウェアからの運用系障害通知の割り込みが運用系２０１と待機系２０２のうちの片方のみしか成功しない場合があり得る。この場合には、図２に示した状況とは異なってくる。すなわち、図２に示した本発明に関連する技術で、ある時刻ｔ1に運用系２０１に障害２０３が発生したにもかかわらず、その後の時刻ｔ2に、ハードウェアからの運用系障害通知の割り込み２０４を運用系２０１が正しく受信できなかったとする。この場合にはステップＳ３０４で待機系２０２から運用系２０１に対して、停止系に推移するための状態の推移の要求があったとしても、これが正しい要求であるかの判断ができない。待機系２０２に障害（図示せず）が発生してこのような停止系への推移の要求があったとすれば、運用系がステップＳ３０５で自系状態変更処理を行って停止系２０１′に変更してしまうと、運用系がどこにも存在しなくなってしまう恐れがある。
【００３１】
一方、ある時刻ｔ1に運用系２０１に障害２０３が発生したとき、その後の時刻ｔ2に、ハードウェアからの運用系障害通知の割り込み２０５を待機系２０２が正しく受信できなかったとする。この場合、待機系２０２はステップＳ３０２の同期動作チェックを開始することができないので、ステップＳ３０７の自系状態変更処理を行うことができず、運用系２０２′に変更することができない。
【００３２】
本実施例では、図２を基にして説明したこのような本発明に関連する技術に存在する問題点を解消している。すなわち、図１に示した本実施例の二重化システム１００は、図２で示したステップＳ３０２〜ステップＳ３０４のプロセスを行わず、障害の通知についての割り込み２０４、２０５を受けた装置（第１の装置１０１あるいは第２の装置１０２）が自系の状態を制御するようにしている。
【００３３】
図３は、本実施例で障害が発生したときの第１の装置と第２の装置のそれぞれの処理の様子を表わしたものである。このような処理は、図１に示した第１または第２の装置１０１、１０２内のＣＰＵ１１３1、１１３2が自装置のメモリ１１４1、メモリ１１４2に格納された制御プログラムをそれぞれ実行することによって実現する。図１および図２を用いて説明を行う。ただし、図２の運用系２０１は初期的に第１の装置１０１であり、待機系２０２は初期的に第２の装置１０２である。
【００３４】
時刻ｔ1に運用系の第１の装置１０１あるいは待機系の第２の装置１０２で障害が発生したものとする。第１の装置１０１にとりあえず着目する。図２で説明したように第１の装置１０１は、時刻ｔ1の障害２０３の発生に基づいて、時刻ｔ2にハードウェアからの障害通知の割り込み２０４の処理を受ける。第１の装置１０１がこの割り込み２０４を正しく受信できたものとする（ステップＳ４０１：Ｙ）。すると、第１の装置１０１は自系に障害が検出されたかを判別する（ステップＳ４０２）。
【００３５】
この結果、図２に示したように自系である運用系２０１に障害が検出されたものとする（ステップＳ４０２：Ｙ）。この場合、第１の装置１０１は図２のステップＳ３０２〜ステップＳ３０４の処理を行うことなく、直ちに自系状態変更処理（ステップＳ３０５）を行って、運用系から停止系に推移する（ステップＳ４０３）。そして、停止系推移完了通知（ステップＳ３０６）を他系としての第２の装置１０２に送出する（ステップＳ４０４）。ここで停止系推移完了通知とは、たとえばハードウェアのスイッチがオン・オフの状態を現在（たとえばオン）の状態から他方の状態（この例の場合にはオフ）に切り替えるものであってもよい。この例の場合には、スイッチの状態が切り替わったことを第２の装置１０２が検出することで、停止系推移完了通知を受信したことになる。
【００３６】
図４は、運用系の障害を運用系自身が検出したこのような場合の処理を表わしている。時刻ｔ1に運用系２０１である第１の装置１０１に障害２０３が発生して、時刻ｔ2にハードウェアからの障害通知の割り込み２０４の処理を受ける。この結果、第１の装置１０１は自系状態変更処理（ステップＳ４０３）を行って、運用系２０１から停止系２０１′に推移する（ステップＳ４０３）。そして、停止系推移完了通知（ステップＳ３０６）を待機系２０２の第２の装置１０２に送出する。図４でこれ以外の部分については後に説明する。
【００３７】
図３に戻って、第１の装置１０１がハードウェアからの障害通知の割り込み２０４処理を受けたものの、自系の障害が検出されなかった場合の処理（ステップＳ４０２：Ｎ）について説明する。この場合には他系に障害が発生している。そこで、この他系を停止系に推移させるための他系停止系推移処理を実行する（ステップＳ４０５）。そして、第１の装置１０１は自系が運用系となっているかを判別する（ステップＳ４０６）。第１の装置１０１は運用系となっている（Ｙ）。また、障害は待機系の方で発生している。したがって、第１の装置１０１は運用系の状態を保持して処理を終了する（エンド）。
【００３８】
図５は、待機系の障害を運用系が検出したこのような場合の処理を表わしている。時刻ｔ1に待機系である第２の装置１０２に障害２１１が発生する。これを基にして、時刻ｔ2にハードウェアからの障害通知の割り込み２０４が第１の装置１０１で受信される（ステップＳ４０１：Ｙ）。第１の装置１０１はその後の時刻ｔ3に第２の装置１０２に対して他系停止系推移処理を実行することになる（ステップＳ４０５）。図５でこれ以外の部分については後に説明する。
【００３９】
図３に戻って、障害が発生したことを受信したものの自系には障害が検出されず、かつ自系は運用系でなかった場合の処理（ステップＳ４０６：Ｎ）について説明する。この場合、運用系に障害が発生している。そこで、停止系推移完了通知の受信を待って（ステップＳ４０７）、受信したら（Ｙ）、自系状態変更処理を行って自系を運用系に推移させる（ステップＳ４０８）。そして、自系が運用系になったことを運用系推移完了通知として他系に送出する（ステップＳ４０９）。このようにして、たとえば運用系であった第１の装置１０１に障害が発生したときには、待機系であった第２の装置１０２が運用系に推移することになる。
【００４０】
図６は、運用系の障害を基に、待機系が運用系に推移する上記のような場合の処理を表わしている。時刻ｔ1に運用系２０１である第１の装置１０１に障害２０３が発生し、時刻ｔ2に待機系２０２である第２の装置１０２が障害通知の割り込み２０５を受信し（ステップＳ４０１：Ｙ）、自系に障害がないことを判別する（ステップＳ４０２：Ｎ）。この場合、第２の装置１０２は時刻ｔ3に第１の装置１０１に対して他系停止系推移処理を実行する（ステップＳ４０５）。そして、第１の装置１０１が運用系２０１から停止系２０１′に推移して、時刻ｔ4に停止系推移完了通知（ステップＳ３０６）を送ってくる。第２の装置１０２は停止系推移完了通知（ステップＳ３０６）を受信して（ステップＳ４０７：Ｙ）、自系状態変更処理（ステップＳ３０７）を行って運用系２０２′に推移する（ステップＳ４０８）。そして、時刻ｔ5に運用系推移完了通知（ステップＳ３０８）を他系としての第１の装置１０１に送出することになる（ステップＳ４０９）。
【００４１】
以上、図３で障害通知割り込みを受けた側の装置の動作について説明した。次に、障害が発生したにも係らず、これを運用系と待機系の片方のみが受信するような場合に着目してその説明を行う。ハードウェアからの障害通知割り込みが発生したときで、運用系と待機系の一方がこの割り込みを認識し、他方が認識しないとされる場合は、次の４通りが考えられる。
（ａ）運用系の障害を待機系が認識できない場合（運用系の障害を運用系のみが検出）（図４）
（ｂ）待機系の障害を運用系が認識できない場合（待機系の障害を待機系のみが検出）（図７）
（ｃ）運用系の障害を運用系が認識できない場合（運用系の障害を待機系のみが検出）（図６）
（ｄ）待機系の障害を待機系が認識できない場合（待機系の障害を運用系のみが検出）（図５）
【００４２】
本実施例では、図２で説明した例と異なり、一方の系のみが障害通知の割り込みを正しく受信した場合であっても、系を適正に推移させることができる。なお、待機系の障害を運用系が認識できない場合の例としての図７は、後に説明する。
【００４３】
図３では、このように障害通知の割り込みを受信できなかった装置が適切な系に推移できるように、障害通知割り込みが行われなかった場合の処理についても定めている。まず第１として、図４に示したように自系（この例では待機系１０２）が障害通知割り込みに失敗した場合で（ステップＳ４０１：Ｎ）、時刻ｔ4に停止系推移完了通知を他系が送ってきた場合（ステップＳ４１０：Ｙ）を説明する。この場合、その他系がその系の障害２０３によって運用系から停止系に推移しているので（ステップＳ４０３、ステップＳ４０４参照）、待機系１０２は自系状態変更処理（ステップＳ３０７）を行って、自系を運用系２０２′に推移させる処理を行う。
【００４４】
すなわち、図４の第２の装置１０２が時刻ｔ2のハードウェアからの運用系の障害通知を受け取れなかった例では、停止系推移完了通知を第１の装置１０１から時刻ｔ4に受信することで、第２の装置１０２は自系状態変更処理（ステップＳ３０７）を行って、運用系２０２′に推移することができる（ステップＳ４０８）。そして、時刻ｔ5に、運用系推移完了通知（ステップＳ３０８）を停止系となった第１の装置１０１に送出して（ステップＳ４０９）、系の変更に伴う処理を終了させることになる（エンド）。
【００４５】
次に、障害通知割り込みを処理できない状態で（ステップＳ４０１：Ｎ）、他系停止推移処理の実行が求められた場合には（ステップＳ４１０：Ｎ、ステップＳ４１１：Ｙ）、他系による停止系推移処理が実行されて自系が停止系に推移する処理（ステップＳ４１２）と、停止系推移完了通知（ステップＳ４１３）が実行される。
【００４６】
これを、図５に示した例で説明する。この例では、待機系２０２としての第２の装置１０２が障害２１１の発生に対する時刻ｔ2の割り込み処理に失敗する（ステップＳ４０１：Ｎ）。しかしながら、この例では運用系２０１としての第１の装置１０１が時刻ｔ2に割り込み２０４を行う（ステップＳ４０１：Ｙ）。第１の装置１０１は自系に障害が検出されないので（ステップＳ４０２：Ｎ）、時刻ｔ3に第２の装置１０２に対して他系停止系推移処理を実行することになる（ステップＳ４０５）。
【００４７】
したがって、第２の装置１０２ではこの時刻ｔ3に他系停止推移処理が実行されることになり（ステップＳ４１１：Ｙ）、自系の障害発生を結果的に判別することになる。そこで、第２の装置１０２は他系停止系推移処理によって停止系２０２′′に推移する（ステップＳ４０５）。そして、その後の時刻ｔ4に停止系推移完了通知（ステップＳ３０６）を第１の装置１０１に送出して（ステップＳ４１３）、系の変更に伴う処理を終了させる（エンド）。
【００４８】
最後に、図７に示した待機系の障害を運用系が認識できない場合の動作を図３と共に説明する。この例では、時刻ｔ1に待機系２０２である第２の装置１０２に障害２１１が発生して、時刻ｔ2にハードウェアからの障害通知の割り込み２０５の処理を第２の装置１０２のみが受けとっている。
【００４９】
まず、待機系２０２としての第２の装置１０２側に着目した処理を説明する。第２の装置１０２は時刻ｔ2にハードウェアからの障害通知の割り込み２０５の処理を受信する（ステップＳ４０１：Ｙ）。この例で、第２の装置１０２は自系に障害を検出する（ステップＳ４０２：Ｙ）。そこで、第２の装置１０２は図２のステップＳ３０２〜ステップＳ３０４の処理を行うことなく、直ちに自系状態変更処理を行って（ステップＳ４０３）、待機２０２系から停止系２０２′′に推移する。そして、時刻ｔ4に停止系推移完了通知（ステップＳ３０６）を他系としての第２の装置１０２に送出することになる（ステップＳ４０４）。
【００５０】
次に、この図７で運用系２０１としての第１の装置１０１側に着目した処理を説明する。第１の装置１０１は時刻ｔ2にハードウェアからの障害通知の割り込み処理を受信することができない（ステップＳ４０１：Ｎ）。したがって、当面の間は第２の装置１０２側の障害発生の事実を知らない。しかしながら、第２の装置１０２が自装置の処理で待機系２０２から停止系２０２′′に推移して、時刻ｔ4に停止系推移完了通知が第１の装置１０１に送られてくる。したがって、この時点で運用系２０１としての第１の装置１０１は第２の装置１０２が停止系２０２′′に推移したことを知ることができる。
【００５１】
以上説明したように本実施例によれば、障害箇所によりシーケンス同期が取れないような場合でも、正常な系を運用系としてサービスの続行ができるという効果がある。また、障害箇所により両系の認識する装置状態に不一致が発生した場合でも、正常な系を運用系としてサービスの続行ができるという効果がある。更に、障害箇所のために障害系が自身の障害を認識できない場合でも、これを危険な系として正しくシステムから切り離すことができるという効果がある。更にまた、強制的な系切替に伴う状態変更通知により、両系が正しく状態を認識できる機会が増えるという効果もある。
【００５２】
なお、以上説明した実施例では、装置状態情報格納部１２３を第１の装置１０１と第２の装置１０２の双方に接続された装置のように示したが、第１の装置領域１２４1および第２の装置領域１２４2がそれぞれの装置１０１、１０２の運用系、待機系等の現状を反映させ、かつそれぞれの書き込みや読み出しが制限の範囲で可能であれば、どのような回路構成をとってもよいことは当然である。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施例における二重化装置の構成を表わしたブロック図である。
【図２】一般に行われている２つの系の切替シーケンスを示した説明図である。
【図３】本実施例で各装置の切替制御の処理内容を示した流れ図である。
【図４】本実施例で運用系の障害を待機系が認識できない場合の切替シーケンスを示した説明図である。
【図５】本実施例で待機系の障害を待機系が認識できない場合の切替シーケンスを示した説明図である。
【図６】本実施例で運用系の障害を運用系が認識できない場合の切替シーケンスを示した説明図である。
【図７】本実施例で待機系の障害を待機系が認識できない場合の切替シーケンスを示した説明図である。
【符号の説明】
【００５４】
１０１  第１の装置
１０２  第２の装置
１０５  第１の切替スイッチ
１０６  第２の切替スイッチ
１１２1  第１の系状態制御部
１１２2  第２の系状態制御部
１１３1、１１３2  ＣＰＵ
１１７1  第１の障害監視部
１１７2  第２の障害監視部
１２２  障害監視リンク
１２３  装置状態情報格納部
１２４1  第１の装置領域
１２４2  第２の装置領域
【図１】
2008310411.tif 000003
【図２】
2008310411.tif 000004
【図３】
2008310411.tif 000005
【図４】
2008310411.tif 000006
【図５】
2008310411.tif 000007
【図６】
2008310411.tif 000008
【図７】
2008310411.tif 000009