(57)【特許請求の範囲】
【請求項１】
稼動系／待機系からなる処理装置を有する二重化システムにおいて、
上記各処理装置は、
他システムより発生するイベントを受信するイベント受信部、
上記イベントとこのイベントに対応して順次実行される複数のスケジュール行を記載したスケジュールファイルとを記述したイベント・スケジュールファイル対応テーブルを格納した記憶装置、
上記イベント・スケジュールファイル対応テーブルを参照して上記イベント受信部が受信したイベントに対応するスケジュールファイルについて、稼動系であれば、順次上記スケジュール行を実行するとともに、待機系であれば上記稼動系の処理装置の実行した上記スケジュール行を実行せず、上記稼動系の処理装置に同期するように次のスケジュール行に進むスケジュール実行部、
このスケジュール実行部によるスケジュール行の実行結果によりデバイスを制御するデバイス制御部、
及び他系処理装置との間で稼動系／待機系を確立して上記稼動系／待機系の系切替えを行う稼動／待機切替え部を備え、
上記スケジュールファイルの上記スケジュール行には、このスケジュール行の実行中に系切替えが発生した場合のスケジュール引継ぎ可否情報が含まれ、
上記系切替えが発生した際、新しく稼動系となった上記処理装置のスケジュール実行部は、上記スケジュールファイルの上記スケジュール引継ぎ可否情報に基づきスケジュールファイルの実行を再開させることを特徴とする二重化システム。
【請求項２】
上記系切替えが発生した際、新しく稼動系となった上記処理装置のスケジュール実行部は、実行中のスケジュールファイル上で次に実行すべきスケジュール行のスケジュール引継ぎ可否情報が引継ぎ可であれば、上記次に実行すべきスケジュール行よりスケジュールファイルの実行を再開させるとともに、上記次に実行すべきスケジュール行のスケジュール引継ぎ可否情報が引継ぎ否であれば上記次に実行すべきスケジュール行より前のスケジュール行で、スケジュール引継ぎ可否情報が引継ぎ可のスケジュール行よりスケジュールファイルの実行を再開させることを特徴とする請求項１記載の二重化システム。
【請求項３】
上記系切替えが発生した際、新しく稼動系となった上記処理装置のスケジュール実行部は、実行中のスケジュールファイル上で次に実行すべきスケジュール行のスケジュール引継ぎ可否情報が引継ぎ可であれば、上記次に実行すべきスケジュール行よりスケジュールファイルの実行を再開させるとともに、上記次に実行すべきスケジュール行のスケジュール引継ぎ可否情報が引継ぎ否であれば上記次に実行すべきスケジュール行より後のスケジュール行で、スケジュール引継ぎ可否情報が引継ぎ可のスケジュール行よりスケジュールファイルの実行を再開させることを特徴とする請求項１記載の二重化システム。
【請求項４】
上記系切替えが発生した際、新しく稼動系となった上記処理装置のスケジュール実行部は、上記スケジュールファイルの実行の再開の前に、予め決められたリカバリー処理を実行することを特徴とする請求項１〜請求項３のいずれかに記載の二重化システム。
【請求項５】
上記スケジュールファイルの引継ぎ可のスケジュール行には、上記スケジュールファイルの実行の再開の前に実行されるリカバリー処理内容が記述され、上記系切替えが発生した際、新しく稼動系となった上記処理装置のスケジュール実行部は、上記スケジュール実行の再開の前に、再開時に実行されるスケジュール行に記述されたリカバリー処理を実行することを特徴とする請求項１〜請求項３のいずれかに記載の二重化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、稼動系／待機系からなり、系切替え時にスケジュール引継ぎを行う二重化システムに関するものである。
【背景技術】
【０００２】
特許文献１に記載された従来の二重化システムのスケジュール引継ぎ方法においては、ＭＸＣ（メモリクロスコントローラ）等の特殊専用Ｈ／Ｗ（ハードウエア）を必要としている。また、実行を引継ぐ際には、必ずＯＳシステムコールを契機とした実行ポイントへ遡っての引継ぎしかできなかった。また、引継ぎに際し、別途リカバリー処理を実行することも不可能である。
特許文献１に記載された従来の二重化システムのスケジュール引継ぎ方法においては、主系ＣＰＵと独立に動作するＭＸＣ（メモリクロスコントローラ）等の特殊専用Ｈ／Ｗによる記憶制御部を設け、主系ＣＰＵが主系記憶部へ書き込む内容を記憶制御部が逐次抜き取りつつ内部のバッファへ格納し、主系ＣＰＵ上で動作しているプログラム処理によるＯＳシステムコールを契機とした通知により、主系ＣＰＵのプログラムカウンタ、レジスタなどのコンテキストをバッファに格納し、その契機と同時に予備系の記憶部に対し、先に格納した主系書き込み内容とコンテキストをコピーする。
その後、主系ＣＰＵ障害検知により予備系を新主系として切替を行うとともに、新主系の記憶部からコンテキストを回復して新主系ＣＰＵに設定し、そのコンテキストがセーブされた時点での内容を持つ新主系の記憶部を利用することにより、そのプログラム処理の区切りに遡って再開を行っている。
【０００３】
【特許文献１】特開平７−２１９８０２号公報（第４〜５頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に示される従来の二重化システムのスケジュール引継ぎ方法では、下記の課題があった。
すなわち、主系ＣＰＵが主系記憶部へ書き込む内容を逐次抜き取り、内部に格納する専用のＨ／Ｗが必要となる。
また、ＯＳシステムコールを契機としたその時点までの記憶部への書き込み内容とコンテキストにより、系切替後の新主系は処理を再開させるが、その時点では、すでに主系の記憶部は破壊されている可能性が高く、新主系も処理を正常に再開できないケースが発生してしまう。
また、主系ＣＰＵ障害検知により系切替えを行うが、例えば障害の内容によっては、何らかのリカバリー処理が必要となるケースがあるが、先行事例によるとＯＳシステムコールを契機とした時点から処理を引き継ぐだけであるため、リカバリー処理を実施することができない。
また、ＯＳシステムコールを契機とした時点に遡って再開するため、遡った時間分は続く処理が遅れることとなる。
このように、従来は、専用のＨ／Ｗが必要となる他、ＯＳシステムコールを契機とした時点でしか、スケジュール引継ぎが行えないという問題があった。
【０００５】
この発明は、上述のような課題を解決するためになされたものであり、系切替えのスケジュール引継発生時に、専用のハードウエアを必要とすることなく、予め設定されたスケジュール行でスケジュールを引継ぐようにした二重化システムを得ることを目的にしている。
【課題を解決するための手段】
【０００６】
この発明に係わる二重化システムにおいては、稼動系／待機系からなる処理装置を有する二重化システムにおいて、各処理装置は、他システムより発生するイベントを受信するイベント受信部、イベントとこのイベントに対応して順次実行される複数のスケジュール行を記載したスケジュールファイルとを記述したイベント・スケジュールファイル対応テーブルを格納した記憶装置、イベント・スケジュールファイル対応テーブルを参照してイベント受信部が受信したイベントに対応するスケジュールファイルについて、稼動系であれば、順次スケジュール行を実行するとともに、待機系であれば稼動系の処理装置の実行したスケジュール行を実行せず、稼動系の処理装置に同期するように次のスケジュール行に進むスケジュール実行部、このスケジュール実行部によるスケジュール行の実行結果によりデバイスを制御するデバイス制御部、及び他系処理装置との間で稼動系／待機系を確立して稼動系／待機系の系切替えを行う稼動／待機切替え部を備え、スケジュールファイルのスケジュール行には、このスケジュール行の実行中に系切替えが発生した場合のスケジュール引継ぎ可否情報が含まれ、系切替えが発生した際、新しく稼動系となった処理装置のスケジュール実行部は、スケジュールファイルのスケジュール引継ぎ可否情報に基づきスケジュールファイルの実行を再開させるものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、稼動系／待機系からなる処理装置を有する二重化システムにおいて、各処理装置は、他システムより発生するイベントを受信するイベント受信部、イベントとこのイベントに対応して順次実行される複数のスケジュール行を記載したスケジュールファイルとを記述したイベント・スケジュールファイル対応テーブルを格納した記憶装置、イベント・スケジュールファイル対応テーブルを参照してイベント受信部が受信したイベントに対応するスケジュールファイルについて、稼動系であれば、順次スケジュール行を実行するとともに、待機系であれば稼動系の処理装置の実行したスケジュール行を実行せず、稼動系の処理装置に同期するように次のスケジュール行に進むスケジュール実行部、このスケジュール実行部によるスケジュール行の実行結果によりデバイスを制御するデバイス制御部、及び他系処理装置との間で稼動系／待機系を確立して稼動系／待機系の系切替えを行う稼動／待機切替え部を備え、スケジュールファイルのスケジュール行には、このスケジュール行の実行中に系切替えが発生した場合のスケジュール引継ぎ可否情報が含まれ、系切替えが発生した際、新しく稼動系となった処理装置のスケジュール実行部は、スケジュールファイルのスケジュール引継ぎ可否情報に基づきスケジュールファイルの実行を再開させるので、専用のハードウエアを必要とすることなく、予め設定されたスケジュール引継ぎ可否情報に基づき、適切な引継ぎポイントからスケジュール引継ぎを行うことができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１による二重化システムを示すシステム構成図である。
図１において、処理装置１、２は、二重化システムを構成し、片方が稼動系、他方が待機系となり、系切替えにあたってスケジュール自動引継ぎを実行する。他システム３は、運転中に各種イベントを処理装置１、２に通知する。この各種イベントの例としては、オペレータ操作結果や様々なセンサからの入力等がある。各種のデバイス４〜６は、システム内に存在し、処理装置１、２により制御される制御対象である。これら１〜６は、ＬＡＮ等のネットワークにより接続されている。
なお、この発明でのスケジュールとは、イベントに応じて実行する処理内容を記述したものである。
【０００９】
図２は、この発明の実施の形態１による二重化システムの処理装置の構成を示すブロック構成図である。
図２において、処理装置１は、他システム３からのイベントを受信するイベント受信部１１と、このイベント受信部１１が受信したイベントに対応するスケジュールを実行するスケジュール実行部１２と、スケジュール実行結果により実際にデバイス４〜６を制御するデバイス制御部１３と、他系処理装置２との間で稼動／待機系を確立して系切替えを行う稼動／待機切替え部１４と、イベントとこれに応じて実行されるスケジュール内容を記載したスケジュールファイルとの対応を記述したイベント・スケジュールファイル対応テーブルを格納した記憶装置１５とを有する。
【００１０】
図３は、この発明の実施の形態１による二重化システムのイベント・スケジュールファイル対応テーブルを示す図である。
図３において、記憶装置１５に格納されたイベント・スケジュールファイル対応テーブルは、スケジュールファイルとこれを実行するイベントの対応を記述したものである。イベント・スケジュールファイル対応テーブルには、各イベントに対して、このイベント発生時にスケジュール実行部１２が参照し、実行すべきスケジュールファイル名が書かれている。
【００１１】
図４は、この発明の実施の形態１による二重化システムのスケジュールファイルを示す図である。
図４において、スケジュールファイルは、１行につき１つの制御内容が記載され、各行は行番号と、各スケジュール行を実行する時間と、制御対象デバイスと、制御内容と、該スケジュール行の実行途中に系切替えが発生した場合のスケジュール引継ぎ可否情報とを記載している。
なお、このスケジュール引継ぎ可否情報は、ユーザが適切なポイントでスケジュール引継ぎが行えるように設定するものであり、スケジュール引継ぎ可のスケジュール行から次のスケジュール引継ぎ可のスケジュールまでの間は、例えば、一連の実行順序、間隔で実行されたときのみ有効となるスケジュール処理が記載される。
【００１２】
次に、動作について説明する。
図５は、この発明の実施の形態１による二重化システムの処理装置の処理手順を示すフローチャートである。
ステップＳ１０１では、他システム３からのイベントをイベント受信部１１で待つ。イベントを受信すると次に進む。ステップＳ１０２では、イベント受信部１１が受信したイベントに対応するスケジュールファイルを、記憶装置１５に格納されているイベント・スケジュールファイル対応テーブルより検索し、見つける。ステップＳ１０３では、スケジュール実行部１２は、ステップＳ１０２で見つけたスケジュールファイルを記憶装置１５より読み込む。ステップＳ１０４では、ステップＳ１０３で読み込んだスケジュールファイルの内容を処理する。
【００１３】
図６は、この発明の実施の形態１による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
図６は、図５のステップＳ１０４のスケジュールファイル処理の詳細手順を示している。
次に、スケジュールファイル処理の詳細について、図６に基づき説明する。
図６において、ステップＳ１０５からステップＳ１１２までの処理を、スケジュールファイルの先頭行から最終行まで繰り返し実行する。
ステップＳ１０５では、現状では当処理装置が待機系であり、かつ、稼動／待機切替え部１４から稼動系への切替え要求があったかどうかをチェックする。このステップＳ１０５の条件に対して結果が“ＮＯ”であった場合、ステップＳ１０６へ進む。ステップＳ１０６では、次に実行すべきスケジュール行に設定された時間と、スケジュール開始からの経過時間を比較する。経過時間が設定時間に到達していない場合、ステップＳ１０５に戻る。経過時間が設定時間に到達した場合は、ステップＳ１０７に進む。
【００１４】
ステップＳ１０７では、現在、当処理装置が稼動系であるかどうかチェックする。稼動系であった場合、ステップＳ１０８に進み、現在のスケジュール行に設定された制御対象デバイスに対して制御内容を実行後、ステップＳ１０９に進む。ステップＳ１０７において、現在、待機系であった場合は、そのままステップＳ１０９に進む。
ステップＳ１０９では、スケジュール実行行を１つ進め、スケジュールファイルの最終行を実行し終えた場合には、当スケジュールファイル処理を終了する。そうでない場合は、ステップＳ１０５より繰り返す。
【００１５】
ステップＳ１０５の条件に対する結果が“ＹＥＳ”であった場合、つまり、現在待機系であり、系切替え要求があった場合、ステップＳ１１０へ進む。ステップＳ１１０では、次に実行すべきスケジュール行に設定されたスケジュール引継ぎ可否情報を参照し、“可”であるかどうかをチェックする。“可”であった場合、ステップＳ１１１にて、次に実行すべきスケジュール行に設定された時間に、スケジュール開始から現在までの経過時間が達するまで待つ。達するとステップＳ１０８に移る。
【００１６】
ステップＳ１１０のチェック結果が“否”であった場合、ステップＳ１１２に移る。ステップＳ１１２では、次に実行すべきスケジュール行より前のスケジュール行で、かつ、そのスケジュール行に設定されたスケジュール引継ぎ可否情報が“可”の行を検索し、見つけたスケジュール行を実行するためにステップＳ１０８に移る。
このようにして、系切替えによるスケジュールの引継ぎが発生した際、スケジュールファイルの引継ぎ可能なスケジュール行まで遡って引継ぐようにする。
【００１７】
実施の形態１によれば、このようにして、系切替えによるスケジュールの引継ぎが発生した際、次のスケジュール行の引継ぎ可否情報により、引継ぎ可能なスケジュール行まで遡って引継ぐようにしたので、系切替えの原因となった旧稼動系処理装置が異常であった期間、及び系切替え期間中に実行すべきであったスケジュールを遡り、遡ったところから系切替え後の新稼動系側にて実行することができる。
また、特殊な専用Ｈ／Ｗが不要である。
また、引継ぎの際、新稼動系は、現在の時刻と自身が持つスケジュール情報からのみ引き継ぐポイントを決定し、破壊されている可能性が高い旧稼動系からの情報を不要とするため、より確実に引き継ぎを行うことができる。
【００１８】
実施の形態２．
実施の形態２の構成は、実施の形態１と同じである。
図７は、この発明の実施の形態２による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
図７は、図５のステップＳ１０４のスケジュールファイル処理の詳細手順を示している。
【００１９】
図７では、図６のステップＳ１１２がステップＳ２１２に代わり、その他は図６と同じ処理である。
図７のステップＳ２１２では、次に実行すべきスケジュール行以降のスケジュール行で、かつ、そのスケジュール行に設定されたスケジュール引継ぎ可否情報が“可”の行を検索し、その行まで飛び越えて、ステップＳ１１１に移る。
このように、系切替えによるスケジュールの引継ぎが発生した際、引継ぎ可能なスケジュール行まで飛び越えて引継ぐようにする。これにより、一連の実行順序、間隔で実行されたときのみ有効となるスケジュールのまとまり単位で飛び越えることができ、これらのスケジュール処理の途中から実行されることを防ぐようにする。
実施の形態２は、実施の形態１のようにスケジュール行を遡った場合に、遡ったスケジュールが再度処理されることになるため、これを嫌うシステムの場合に有効である。
【００２０】
実施の形態２によれば、このようにして、系切替えによるスケジュールの引継ぎが発生した際、次のスケジュール行の引継ぎ可否情報により、引継ぎ可能なスケジュール行まで飛び越えて引継ぐようにしたので、一連の実行順序、間隔で実行されたときのみ有効となるスケジュール処理を飛び越えることができ、これらのスケジュール処理の途中から実行されることを防ぐことができる。
【００２１】
実施の形態３．
実施の形態３の構成は、実施の形態１と同じである。
図８は、この発明の実施の形態３による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
図８は、図５のステップＳ１０４のスケジュールファイル処理の詳細手順を示している。
【００２２】
図８では、図６のステップＳ１１１の処理の次にステップ３１３の処理が追加されている。
図８において、ステップＳ１１１の次に、ステップＳ３１３に移る。ステップＳ３１３では、予め決められたリカバリー処理を実行し、ステップＳ１０８へ移る。
これにより、系切替え時に、スケジュール行を遡って引継ぐ際、予め決められたリカバリー処理を実行後に、スケジュールを引継ぐようにする。
【００２３】
実施の形態３によれば、このようにして、遡ってスケジュールを引継ぐ際、予め決められたリカバリー処理を実行後に、スケジュールを引継ぐようにしたので、系切替え前に実行されていたスケジュールが途中で途切れたことにより各制御対象デバイスが不定な状態のまま系が切り替えられても、リカバリー処理にて状態を一旦クリアでき、その後のスケジュールを再開することができる。
【００２４】
実施の形態４．
実施の形態４の構成は、実施の形態１と同じである。
図９は、この発明の実施の形態４による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
図９は、図５のステップＳ１０４のスケジュールファイル処理の詳細手順を示している。
【００２５】
図９では、実施の形態２の図７のステップＳ１１１の処理の次にステップＳ４１３の処理を追加している。
図９において、ステップＳ１１１の次に、ステップＳ４１３に移り、ステップＳ４１３では、予め決められたリカバリー処理を実行し、ステップＳ１０８へ移る。
これにより、系切替え時に、スケジュール行を飛び越えて引継ぐ際、予め決められたリカバリー処理を実行後に、スケジュールを引継ぐようにする。
【００２６】
実施の形態４によれば、このようにして、飛び越えて引継ぐ際、予め決められたリカバリー処理を実行後に、スケジュールを引継ぐようにしたので、系切替え前に実行されていたスケジュールが途中で途切れたことにより各制御対象デバイスが不定な状態のまま系が切り替えられても、リカバリー処理にて状態を一旦クリアでき、その後のスケジュールを再開することができる。
【００２７】
実施の形態５．
実施の形態５の構成は、スケジュールファイルを除き、実施の形態１と同じである。
図１０は、この発明の実施の形態５による二重化システムのスケジュールファイルを示す図である。
図１０では、図４のスケジュールファイルの各スケジュール行に、当行がスケジュールを引継ぐ際に実施するリカバリー処理を追加している。
【００２８】
図１１は、この発明の実施の形態５による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
図１１は、図５のステップＳ１０４のスケジュールファイル処理の詳細手順を示している。
【００２９】
図１１では、図６のステップＳ１１１の処理の次に、ステップＳ５１３の処理を追加している。
図１１において、ステップＳ１１１の次にステップＳ５１３に移る。ステップＳ５１３では、図１０のスケジュールファイルの記載にしたがって、次に実行すべきスケジュール行に記載されたリカバリー処理を実行し、ステップＳ１０８へ移る。
これにより、系切替え時に、スケジュール行を遡って引継ぐ際、実行途中であったスケジュールに対応したリカバリー処理を実行し、この後にスケジュールを引継ぐようにする。
【００３０】
実施の形態５によれば、このようにして、遡ってスケジュールを引継ぐ際、実行途中であったスケジュールに対応したリカバリー処理を実行後に、スケジュールを引継ぐようにしたので、系切替え前に実行されていたスケジュールが途中で途切れたことにより各制御対象デバイスが不定な状態のまま系が切り替えられても、その時点で最も適したリカバリー処理実行後、スケジュールを再開することができる。
【００３１】
実施の形態６．
実施の形態６の構成は、実施の形態５と同じである。
図１２は、この発明の実施の形態６による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
図１２は、図５のステップＳ１０４のスケジュールファイル処理の詳細手順を示している。
【００３２】
図１２では、実施の形態２の図７のステップＳ１１１の処理の次にステップＳ６１３の処理を追加している。
図１２において、ステップＳ１１１の次にステップＳ６１３に移る。ステップＳ６１３では、図１０のスケジュールファイルの記載にしたがって、次に実行すべきスケジュール行に記載されたリカバリー処理を実行し、ステップＳ１０８へ移る。
これにより、系切替え時に、スケジュール行を飛び越えて引継ぐ際、実行途中であったスケジュールに対応したリカバリー処理を実行後に、スケジュールを引継ぐようにする。
【００３３】
実施の形態６によれば、このようにして、飛び越えて引継ぐ際、実行途中であったスケジュールに対応したリカバリー処理を実行後に、スケジュールを引継ぐようにしたので、系切替え前に実行されていたスケジュールが途中で途切れたことにより各制御対象デバイスが不定な状態のまま系が切り替えられても、その時点で最も適したリカバリー処理実行後、スケジュールを再開することができる。
【図面の簡単な説明】
【００３４】
【図１】この発明の実施の形態１による二重化システムを示すシステム構成図である。
【図２】この発明の実施の形態１による二重化システムの処理装置の構成を示すブロック構成図である。
【図３】この発明の実施の形態１による二重化システムのイベント・スケジュールファイル対応テーブルを示す図である。
【図４】この発明の実施の形態１による二重化システムのスケジュールファイルを示す図である。
【図５】この発明の実施の形態１による二重化システムの処理装置の処理手順を示すフローチャートである。
【図６】この発明の実施の形態１による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
【図７】この発明の実施の形態２による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
【図８】この発明の実施の形態３による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
【図９】この発明の実施の形態４による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
【図１０】この発明の実施の形態５による二重化システムのスケジュールファイルを示す図である。
【図１１】この発明の実施の形態５による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
【図１２】この発明の実施の形態６による二重化システムの処理装置のスケジュールファイル処理の詳細を示すフローチャートである。
【符号の説明】
【００３５】
１  処理装置
２  処理装置
３  他システム
４  デバイスＡ
５  デバイスＢ
６  デバイスＣ
１１  イベント受信部
１２  スケジュール実行部
１３  デバイス制御部
１４  稼動／待機切替え部
１５  記憶装置
【図１】
0004738132.tif 000002
【図２】
0004738132.tif 000003
【図３】
0004738132.tif 000004
【図４】
0004738132.tif 000005
【図５】
0004738132.tif 000006
【図６】
0004738132.tif 000007
【図７】
0004738132.tif 000008
【図８】
0004738132.tif 000009
【図９】
0004738132.tif 000010
【図１０】
0004738132.tif 000011
【図１１】
0004738132.tif 000012
【図１２】
0004738132.tif 000013