(57)【要約】      （修正有）【課題】アプリケーションエラーを発生させることなく、正系システムと副系システムを柔軟に交替可能とする技術の提供。【解決手段】正系システムの正常運転時に、正系ロードバランサ12の転送先を、プライマリに正系WEB/APサーバ14が設定された平常時用から、プライマリに架空のアドレスが設定され、セカンダリに副系ロードバランサ22が設定された副系移行時用に切り替え、プライマリがタイムアウトするまでの間に、正系DBサーバ16→副系DBサーバ26間のレプリケーションを完了させると共に、レプリケーション方向の反転設定を完了させる。タイムアウト後、クライアント端末40からのリクエストは、正系ロードバランサ12→副系ロードバランサ22→副系WEB/APサーバ24に転送され、副系WEB/APサーバ24による処理結果は、副系DBサーバ26→正系DBサーバ16の順に反映される。【選択図】図１
2015108930.tif 000002
【特許請求の範囲】
【請求項１】
受信したリクエストを所定のアドレスに転送する正系リクエスト振分手段、この正系リクエスト振分手段から受け取ったリクエストに応じて必要な処理を実行する正系業務サーバ、処理結果に応じて対応のテーブルを更新する正系データベースサーバからなる正系システムと、受信したリクエストを所定のアドレスに転送する副系リクエスト振分手段、この副系リクエスト振分手段から受け取ったリクエストに応じて必要な処理を実行する副系業務サーバ、処理結果に応じて対応のテーブルを更新する副系データベースサーバからなる副系システムからなり、
平常時には、クライアント端末から送信されたリクエストを上記正系リクエスト振分手段が受信した後、上記正系業務サーバがこのリクエストに応じた処理を実行し、上記正系データベースサーバがこの正系業務サーバによる処理結果に応じて対応のテーブルを更新すると共に、この正系データベースサーバから送信された上記正系業務サーバの処理結果に応じて上記副系データベースサーバが対応のテーブルを更新し、上記正系システムの障害発生時には、クライアント端末から送信されたリクエストを上記副系リクエスト振分手段が受信した後、上記副系業務サーバがこのリクエストに応じた処理を実行し、上記副系データベースサーバがこの副系業務サーバによる処理結果に応じて対応のテーブルを更新すると共に、この副系データベースサーバから送信された上記副系業務サーバの処理結果に応じて上記正系データベースサーバが対応のテーブルを更新する仕組みを備えた冗長構成システムにおいて、
クライアント端末に対するサービスを継続したまま、平常時に処理主体を正系システムから副系システムに切り替える方法であって、
上記正系リクエスト振分手段の転送先を、プライマリとして上記正系業務サーバがセットされた平常時用の設定から、プライマリとして架空のアドレスがセットされると共に、セカンダリとして上記副系リクエスト振分手段のアドレスがセットされた副系移行時用の設定に切り替える第１の工程と、
上記正系リクエスト振分手段が、クライアント端末から送信された新規のリクエストを上記架空のアドレスに転送する第２の工程と、
上記正系データベースサーバが、上記正系業務サーバによって実行された従前のリクエストに対する処理結果を上記副系データベースサーバに送信する第３の工程と、
上記副系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第４の工程と、
予め設定されたタイムアウト時間の経過後に、上記正系リクエスト振分手段が、上記の新規リクエストをセカンダリにセットされた上記副系リクエスト振分手段に転送する第５の工程と、
からなる正副システム間の切替方法。
【請求項２】
上記副系リクエスト振分手段が、当該リクエストを上記副系業務サーバに転送する第６の工程と、
上記副系業務サーバが、当該リクエストに応じた処理を実行し、処理結果を上記副系データベースサーバに送信する第７の工程と、
上記副系データベースサーバが、この処理結果に基づいて対応のテーブルを更新すると共に、当該処理結果を上記正系データベースサーバに送信する第８の工程と、
上記正系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第９の工程と、
を備えたことを特徴とする請求項１に記載の正副システム間の切替方法。
【請求項３】
上記正系リクエスト振分手段の転送先を、上記副系移行時用の設定から、プライマリとして架空のアドレスがセットされると共に、セカンダリとして上記正系業務サーバのアドレスがセットされた正系移行時用の設定に切り替える第１０の工程と、
上記正系リクエスト振分手段が、クライアント端末から送信された新規のリクエストを上記架空のアドレスに転送する第１１の工程と、
上記副系データベースサーバが、上記副業務サーバによって実行された従前のリクエストに対する処理結果を上記正系データベースサーバに送信する第１２の工程と、
上記正系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第１３の工程と、
予め設定されたタイムアウト時間の経過後に、上記正系リクエスト振分手段が、上記の新規リクエストをセカンダリにセットされた上記正系業務サーバに転送する第１４の工程と、
上記正系業務サーバが、当該リクエストに応じた処理を実行し、処理結果を上記正系データベースサーバに送信する第１５の工程と、
上記正系データベースサーバが、この処理結果に基づいて対応のテーブルを更新すると共に、当該処理結果を上記副系データベースサーバに送信する第１６の工程と、
上記副系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第１７の工程と、
上記正系リクエスト振分手段の転送先を、上記正系移行時用の設定から上記平常時用の設定に切り替える第１８の工程と、
を備えたことを特徴とする請求項２に記載の正副システム間の切替方法。
【請求項４】
上記第４の工程と第５の工程との間に、上記正系データベースサーバと副系データベースサーバ間のレプリケーション方向を反転させる工程が設けられることを特徴とする請求項１〜３の何れかに記載の正副システム間の切替方法。
【請求項５】
上記第１３の工程と第１４の工程との間に、上記正系データベースサーバと副系データベースサーバ間のレプリケーション方向を反転させる工程が設けられることを特徴とする請求項３または４に記載の正副システム間の切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、正副システム間の切替方法に係り、特に、平常時において様々な情報処理を実行する正系システムの他に、障害発生時に正系システムを代行するバックアップ用の副系システムを備えた冗長構成のコンピュータシステムにおいて、平常時に処理主体を正系システムから副系システムに試験的に切り替えたり、動作確認後に副系システムから正系システムに切り戻したりする技術に関する。
【背景技術】
【０００２】
平常時において業務処理を担当する正系システムの他に、これと同等の機能を備えた副系システムを遠隔地に準備しておき、正系システムがダウンした際には副系システムをいち早く起動させて業務処理を引き継がせる技術が存在している。
【特許文献１】特開２００６−３３０７８２号公報
【非特許文献１】システムの冗長化・災害対策  インターネットURL：http://www.networld.co.jp/vmware/solution/sol5.htm  検索日：２０１３年１１月２０日
【０００３】
例えば、上記の特許文献１には、平常時における業務処理を担当する正系業務サーバ１と、これとほぼ同様の構成を備えたバックアップ用の副系業務サーバ２を備えた冗長構成のデータ処理システムが開示されている。このデータ処理システムにおいては、データ送信装置５から送信された入力メッセージ７が、正系業務サーバ１と副系業務サーバ２に同時に送信され、それぞれのエントリーキュー１２、２２に格納される。また、正系業務システムにおける処理結果が副系業務システムに転送され、その業務データ記憶部２４に格納されると共に、エントリーキュー２２に格納された入力メッセージ７の中で、正系業務サーバ１において処理が完了したものに対してはエントリーキュー管理部２７によって読出フラグが設定される。このため、正系業務サーバ１に障害が発生した旨の通知を受けた副系業務サーバ２は、読出フラグの設定されていない未処理の入力メッセージ７に対して、直ちに処理を続行することが可能となる。
【０００４】
このようなシステムの冗長構成を採用することにより、正系システムがダウンした場合であっても副系システムによって処理が継続されるため、大規模災害等に対する備えとして極めて有効といえる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、正系システムが正常に動作している平常時であっても、副系システムが故障していないか確認する目的で、あるいは防災訓練の一環として、処理主体を副系業務システムに一時的に切り替えたいというニーズがある。
しかしながら、処理主体を正系システムから副系システムに切り替える際には、正系システムの停止に伴いクライアント端末側にアプリケーションエラーが発生することとなり、サービスの提供に支障を来す結果となる。
このため従来は、サービスを継続した状態で正系システムから副系システムに切り替えることは、事実上困難とされていた。
【０００６】
この発明は、このような正副システム間の切替に纏わる課題を解決するために案出されたものであり、クライアント端末側にアプリケーションエラーを発生させることなく、正系システムと副系システム間で処理主体を柔軟に交替させることを可能とする技術の提供を目的としている。
【課題を解決するための手段】
【０００７】
上記の目的を達成するため、請求項１に記載した正副システム間の切替方法は、受信したリクエストを所定のアドレスに転送する正系リクエスト振分手段、この正系リクエスト振分手段から受け取ったリクエストに応じて必要な処理を実行する正系業務サーバ、処理結果に応じて対応のテーブルを更新する正系データベースサーバからなる正系システムと、受信したリクエストを所定のアドレスに転送する副系リクエスト振分手段、この副系リクエスト振分手段から受け取ったリクエストに応じて必要な処理を実行する副系業務サーバ、処理結果に応じて対応のテーブルを更新する副系データベースサーバからなる副系システムからなり、平常時には、クライアント端末から送信されたリクエストを上記正系リクエスト振分手段が受信した後、上記正系業務サーバがこのリクエストに応じた処理を実行し、上記正系データベースサーバがこの正系業務サーバによる処理結果に応じて対応のテーブルを更新すると共に、この正系データベースサーバから送信された上記正系業務サーバの処理結果に応じて上記副系データベースサーバが対応のテーブルを更新し、上記正系システムの障害発生時には、クライアント端末から送信されたリクエストを上記副系リクエスト振分手段が受信した後、上記副系業務サーバがこのリクエストに応じた処理を実行し、上記副系データベースサーバがこの副系業務サーバによる処理結果に応じて対応のテーブルを更新すると共に、この副系データベースサーバから送信された上記副系業務サーバの処理結果に応じて上記正系データベースサーバが対応のテーブルを更新する仕組みを備えた冗長構成システムにおいて、クライアント端末に対するサービスを継続したまま、平常時に処理主体を正系システムから副系システムに切り替える方法であって、上記正系リクエスト振分手段の転送先を、プライマリとして上記正系業務サーバがセットされた平常時用の設定から、プライマリとして架空のアドレスがセットされると共に、セカンダリとして上記副系リクエスト振分手段のアドレスがセットされた副系移行時用の設定に切り替える第１の工程と、上記正系リクエスト振分手段が、クライアント端末から送信された新規のリクエストを上記架空のアドレスに転送する第２の工程と、上記正系データベースサーバが、上記正系業務サーバによって実行された従前のリクエストに対する処理結果を上記副系データベースサーバに送信する第３の工程と、上記副系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第４の工程と、予め設定されたタイムアウト時間の経過後に、上記正系リクエスト振分手段が、上記の新規リクエストをセカンダリにセットされた上記副系リクエスト振分手段に転送する第５の工程とからなることを特徴としている。
【０００８】
請求項２に記載した正副システム間の切替方法は、請求項１の方法であって、さらに、上記副系リクエスト振分手段が、当該リクエストを上記副系業務サーバに転送する第６の工程と、上記副系業務サーバが、当該リクエストに応じた処理を実行し、処理結果を上記副系データベースサーバに送信する第７の工程と、上記副系データベースサーバが、この処理結果に基づいて対応のテーブルを更新すると共に、当該処理結果を上記正系データベースサーバに送信する第８の工程と、上記正系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第９の工程とを備えたことを特徴としている。
【０００９】
請求項３に記載した正副システム間の切替方法は、請求項２の方法であって、さらに、上記正系リクエスト振分手段の転送先を、上記副系移行時用の設定から、プライマリとして架空のアドレスがセットされると共に、セカンダリとして上記正系業務サーバのアドレスがセットされた正系移行時用の設定に切り替える第１０の工程と、上記正系リクエスト振分手段が、クライアント端末から送信された新規のリクエストを上記架空のアドレスに転送する第１１の工程と、上記副系データベースサーバが、上記副業務サーバによって実行された従前のリクエストに対する処理結果を上記正系データベースサーバに送信する第１２の工程と、上記正系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第１３の工程と、予め設定されたタイムアウト時間の経過後に、上記正系リクエスト振分手段が、上記の新規リクエストをセカンダリにセットされた上記正系業務サーバに転送する第１４の工程と、上記正系業務サーバが、当該リクエストに応じた処理を実行し、処理結果を上記正系データベースサーバに送信する第１５の工程と、上記正系データベースサーバが、この処理結果に基づいて対応のテーブルを更新すると共に、当該処理結果を上記副系データベースサーバに送信する第１６の工程と、上記副系データベースサーバが、この処理結果に基づいて対応のテーブルを更新する第１７の工程と、上記正系リクエスト振分手段の転送先を、上記正系移行時用の設定から上記平常時用の設定に切り替える第１８の工程とを備えたことを特徴としている。
【００１０】
請求項４に記載した正副システム間の切替方法は、請求項１〜３の方法であって、さらに、上記第４の工程と第５の工程との間に、上記正系データベースサーバと副系データベースサーバ間のレプリケーション方向を反転させる工程が設けられることを特徴としている。
【００１１】
請求項５に記載した正副システム間の切替方法は、請求項３または４の方法であって、さらに、上記第１３の工程と第１４の工程との間に、上記正系データベースサーバと副系データベースサーバ間のレプリケーション方向を反転させる工程が設けられることを特徴としている。
【発明の効果】
【００１２】
請求項１に記載した正副システム間の切替方法によれば、まず正系リクエスト振分手段から架空のIPアドレスにリクエストが転送され、プライマリ側がタイムアウトするまでの時間差を利用して正系データベースサーバから副系データベースサーバに処理結果が送信され、副系システム側のテーブルの更新が完了した後に、副系システムにリクエストを振り分ける仕組みを備えているため、クライアント端末側にアプリケーションエラーを生じさせることなく、したがってサービスを継続したまま処理主体を正系システムから副系システムに柔軟に切り替えることが可能となる。
【００１３】
請求項３に記載した正副システム間の切替方法によれば、副系システムから正系システムに処理主体を戻す場合においても、まず正系リクエスト振分手段から架空のIPアドレスにリクエストが送信され、プライマリ側がタイムアウトするまでの時間差を利用して副系データベースサーバから正系データベースサーバに処理結果が送信され、正系システム側のテーブルの更新が完了した後に、正系業務サーバにリクエストを振り分ける仕組みを備えているため、クライアント端末側にアプリケーションエラーを生じさせることなく、スムーズに平常運転に戻すことができる。
【発明を実施するための最良の形態】
【００１４】
図１は、正系システム10と副系システム20からなる冗長構成システム30を示す概念図であり、正系システム10は、正系リクエスト振分手段としての正系ロードバランサ12と、正系業務サーバとしての正系WEB/APサーバ14と、正系データベースサーバとしての正系DBサーバ16を備え、副系システム20は、副系リクエスト振分手段としての副系ロードバランサ22と、副系業務サーバとしての副系WEB/APサーバ24と、副系データベースサーバとしての副系DBサーバ26を備えている。
正系システム10に対して副系システム20は遠隔地に設置されており、両システム間は専用回線で接続されている。
【００１５】
平常時においては、正系ロードバランサ12のデータ転送先が正系WEB/APサーバ14に設定されているため、ネットワーク経由でクライアント端末40からリクエストが送信されると、正系ロードバランサ12から正系WEB/APサーバ14に当該リクエストが転送される。
これを受けた正系WEB/APサーバ14は、リクエストの内容に応じた処理を実行し、処理結果を正系DBサーバ16に送信する。
【００１６】
正系DBサーバ16は、WEB/APサーバ14から受け取った処理結果のデータに基づいて対応のテーブルを更新すると同時に、同データをネットワーク経由で副系DBサーバ26に送信する。
副系DBサーバ26は、受け取った処理結果に基づいて、対応のテーブルを更新する。
【００１７】
ここで、例えば大規模な地震が発生して正系システム10が実際にダウンした場合、サービスの提供に一時的な中断が発生するとしても、DNSサーバ（図示省略）の設定変更によってクライアント端末40の接続先が副系ロードバランサ22に切り替えられるため、比較的短時間の中に副系システム20によるサービスの提供を再開することができる。
【００１８】
つぎに、図２のフローチャートに基づき、正系システム10が正常に稼働している状況下において、データ処理を一時的に副系システム20に切り替える場合の処理手順について説明する。
まず、図３に示すように、管理端末42から正系ロードバランサ12に対して副系動作モードへの設定変更を指令するスイッチオーバー・コマンドが送信されると、これを受けた正系ロードバランサ12は、受信データの転送先を平常時用から副系移行時用に切り替える（Ｓ10）。
【００１９】
この副系移行時用の送信先としては、「プライマリ」に実際には存在しない架空のIPアドレスが設定されており、「セカンダリ」に副系ロードバランサ22のIPアドレスが設定されている。
【００２０】
この状態でクライアント端末40から新たなリクエストが送信されると、正系ロードバランサ12はこれをプライマリに設定された架空のIPアドレスに向けて転送する（Ｓ12）。
【００２１】
この間に、正系DBサーバ16は未送信データを副系DBサーバ26に転送し、正副DBサーバ間のレプリケーションを完了させる（Ｓ14）。
つぎに、図４に示すように、管理端末42からの指令を受けた正系DBサーバ16及び副系DBサーバ26は、相互間のレプリケーション方向を「正系→副系」から「副系→正系」に反転させる設定変更を実行する（Ｓ16）。
【００２２】
一方、予め設定されたタイムアウト時間（例えば90秒）を経過してもプライマリ側から応答がないため（Ｓ18）、図５に示すように、正系ロードバランサ12はセカンダリに設定された副系ロードバランサ22のIPアドレスに向けて上記のリクエストを転送する（Ｓ20）。
【００２３】
そして、副系ロードバランサ22からこのリクエストを受け取った副系WEB/APサーバ24において必要な処理が実行され（Ｓ22）、その処理結果が副系DBサーバ26内の対応テーブルに格納される（Ｓ24）。
また、この処理結果のデータは、ネットワーク経由で副系DBサーバ26から正系DBサーバ16に転送され、正副DBサーバ間のレプリケーションを完了させる（Ｓ26）。
【００２４】
上記のように、この冗長構成システム30においては、まず正系ロードバランサ12から架空のIPアドレスにリクエストが送信され、プライマリ側がタイムアウトするまでの時間差を利用して「正系DBサーバ16→副系DBサーバ26」のレプリケーションや、レプリケーション方向の反転を完了させ、然る後に副系システム20にリクエストを振り分ける方式を採用しているため、クライアント端末側にアプリケーションエラーを生じさせることなく、したがってサービスを継続したまま処理主体を正系システム10から副系システム20に一時的に切り替えることが可能となる。
【００２５】
正系ロードバランサ12において、プライマリからセカンダリに転送先が切り替わるタイムアウト時間は、正系DBサーバ16と副系DBサーバ26間のレプリケーションを完了させるのに十分でありながらも、クライアント端末40側にアプリケーションエラーを発生させないような短い値に設定される。
なお、正系DBサーバ16と副系DBサーバ26が、双方向でのレプリケーションを可能とする機能を搭載している場合には、上記「Ｓ16」のステップを省略することができ、その分、タイムアウト時間の設定を短縮化することができる。
【００２６】
副系システム20についての十分な動作確認が完了した時点で、この冗長構成システム30は再び正系動作モードに転換される。
まず、図６に示したように、管理端末42から正系ロードバランサ12に対して正系動作モードへの復帰を指令するスイッチバック・コマンドが送信されると、これを受けた正系ロードバランサ12は、受信データの転送先を副系移行時用から正系移行時用に切り替える。
【００２７】
この正系移行時用の宛先は、「プライマリ」として実際には存在しない架空のIPアドレスが設定されており、「セカンダリ」として正系WEB/APサーバ14のIPアドレスが設定されている。
【００２８】
この状態でクライアント端末40から新たなリクエストが送信されると、正系ロードバランサ12はこれをプライマリに設定された架空のIPアドレスに向けて転送する。
【００２９】
この間に、副系DBサーバ26は未送信データを正系DBサーバ16に転送し、正副DBサーバ間のレプリケーションを完了させる。
つぎに、管理端末42からの指令を受けた正系DBサーバ16及び副系DBサーバ26は、相互間のレプリケーション方向を「副系→正系」から「正系→副系」に反転させる設定変更を実行する。
【００３０】
一方、予め設定されたタイムアウト時間（例えば90秒）を経過してもプライマリ側から応答がないため、正系ロードバランサ12はセカンダリに設定された正系WEB/APサーバ14のIPアドレスに向けて上記のリクエストを転送する。
【００３１】
この結果、正系WEB/APサーバ14において必要な処理が実行され、その処理結果が正系DBサーバ16内の対応テーブルに格納される。
また、この処理結果のデータは、ネットワーク経由で正系DBサーバ16から副系DBサーバ26に送信され、対応のテーブルに格納される。
【００３２】
この後、正系ロードバランサ12は適当なタイミングでの転送先の設定を正系移行時用から平常時用に切り替える。
この平常時用のアドレス設定では、「プライマリ」に正系WEB/APサーバ14のIPアドレスが設定されているため、以後、クライアント端末40から送信されたリクエストは架空のIPアドレスに転送されることなく、直ちに正系WEB/APサーバ14に転送され、必要な処理が遅滞なく実行されることとなる。
【００３３】
一般的な冗長構成システムにあっては、上記のように、メインで稼働しているDBサーバに対する更新が完了した後に、バックアップ用のDBサーバに対して処理結果が送信される、所謂「非同期モード」でデータベース間のレプリケーションが実現されている。
【００３４】
もちろん、データの完全な同一性を担保するためには、まず処理結果をメインのDBサーバからバックアップ用のDBサーバに送信し、データ更新完了の通知が返って来た時点でメインのDBサーバに対する更新を実行する、所謂「同期モード」を採用するのが理想的であるが、どうしてもネットワーク負荷の増大を招くため、平常時においてはサービス利用のピーク時を想定して「非同期モード」を採用せざるを得ないのが現状である。
【００３５】
これに対し、この冗長構成システム30を副系動作モードで稼働させるに際しては、意図的にサービス利用のピーク時を外した時間帯を選定することができるため、「副系DBサーバ26→正系DBサーバ16」間のレプリケーションを「同期モード」で実行することができる。
この結果、副系動作モードから正系動作モードにスイッチバックする際に、「副系DBサーバ26→正系DBサーバ16」間のレプリケーションが完了するまで待機する時間が不要となり、その分、正系ロードバランサ12において「プライマリ」から「セカンダリ」に転送先が切り替わるタイムアウト時間の設定を短縮化することが可能となる。
【００３６】
上記においては、リクエスト振分手段として正系ロードバランサ12及び副系ロードバランサ22を用いた例を示したが、これらの代わりに正系プロキシサーバ及び副系プロキシサーバを用いることもできる。
【図面の簡単な説明】
【００３７】
【図１】この発明に係る冗長構成システムの正常運転時の状態を示す概念図である。
【図２】上記冗長構成システムを副系動作モードに転換する際の処理手順を示すフローチャートである。
【図３】上記冗長構成システムを副系動作モードに転換する途中の状態を示す概念図である。
【図４】上記冗長構成システムを副系動作モードに転換する途中の状態を示す概念図である。
【図５】上記冗長構成システムの副系動作モード時の状態を示す概念図であ
【図６】上記冗長構成システムを正系動作モードに転換する途中の状態を示す概念図である。
【符号の説明】
【００３８】
10 正系システム
12 正系ロードバランサ
14 正系WEB/APサーバ
16 正系DBサーバ
20 副系システム
22 副系ロードバランサ
24 副系WEB/APサーバ
26 副系DBサーバ
30 冗長構成システム
40 クライアント端末
42 管理端末
【図１】
2015108930.tif 000003
【図２】
2015108930.tif 000004
【図３】
2015108930.tif 000005
【図４】
2015108930.tif 000006
【図５】
2015108930.tif 000007
【図６】
2015108930.tif 000008