(57)【要約】【課題】  待機系装置への更新データの送信途中に稼働系装置がダウンして、待機系装置の主記憶装置上に不完全なデータが残されても、この不完全データを待機系装置で識別できるようにして、誤動作を防止する。【解決手段】  主記憶装置１３上で管理する呼情報に対して、更新を行う単位あたりの個々の呼情報データの直後にフラグエリアを設ける。呼情報を管理更新する稼働系装置１は、呼情報データを更新して待機系装置２にコピーする際、コピー前にＲＤＭＡ機能部１２を使って当該呼情報データに付随するフラグエリアに０を書き込み、次にＲＤＭＡ機能部１２を使って当該情報データをコピーし、最後にＲＤＭＡ機能部１２を使って当該情報データに付随するフラグエリアに１を書き込む。待機系装置２は処理を引き継ぐ前に全呼情報データをチェックし、フラグエリアが０の呼情報データを見つけたら無効化する。【選択図】      図１
2006270581.tif 000002
【特許請求の範囲】
【請求項１】
稼働系装置と待機系装置とを用いる呼情報サーバの同期方法であって、主記憶装置上で管理する呼情報に対して、更新を行う単位あたりの呼情報データの後にフラグエリアを設け、前記稼働系装置は、呼情報データを更新して当該呼情報データを前記待機系装置にコピーする際、コピー前にＲＤＭＡ機能を使って当該呼情報データに付随するフラグエリアに０を書き込み、次にＲＤＭＡ機能を使って当該情報データをコピーし、次にＲＤＭＡ機能を使って当該情報データに付随するフラグエリアに１を書き込むことを特徴とする呼情報サーバの同期方法。
【請求項２】
前記待機系装置は、前記稼働系装置から処理を引き継ぐ時、引き継ぐ前に呼情報データのフラグエリアをチェックし、フラグエリアが０の呼情報データを無効化することを特徴とする請求項１記載の呼情報サーバの同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は呼情報サーバの同期方法に関し、稼働系装置の障害時は待機系装置に切り替えて運用を継続するホットスタンバイ構成とした呼情報サーバの同期方法に関する。
【背景技術】
【０００２】
従来、主記憶装置を使って呼情報を管理する呼情報サーバで、かつ、稼働系装置の障害時は待機系装置に切り替えて運用を継続するホットスタンバイ構成により高信頼性を実現している呼情報サーバが使用されている。
【０００３】
このような呼情報サーバにおいて、両系の主記憶装置上の呼情報を同期させておく方法として、両系を汎用のＲＤＭＡ（Remote Direct Memory Access）機能を備えるInfiniBand等の高速インタフェースで接続し、稼働系装置からＲＤＭＡ機能を使って待機系装置の主記憶に直接更新した呼情報をコピーする方法が考えられる。
【０００４】
この場合、待機系装置への更新データの送信途中に稼働系装置がダウンすると、待機系装置の主記憶装置上に不完全なデータが残されることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した従来の呼情報サーバでは、コピーの途中に稼働系がダウンした場合、コピー中のデータが不完全となる。しかし、ＲＤＭＡ機能による主記憶への直接のコピーは待機系装置が主記憶への書き込みを意識できないため、待機系装置は不完全なデータがあっても認識できない。その状態で待機系装置が稼働系装置の処理を引き継いだ場合、この不完全なデータを知らずに使ってしまい運用で誤動作を引き起こす可能性がある。
【０００６】
本発明の目的は、待機系装置への更新データの送信途中に稼働系装置がダウンして、待機系装置の主記憶装置上に不完全なデータが残されても、この不完全データを待機系装置で識別できるようにして、誤動作を防止する呼情報サーバの同期方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の呼情報サーバの同期方法は、稼働系装置と待機系装置とを用いる呼情報サーバの同期方法であって、主記憶装置上で管理する呼情報に対して、更新を行う単位あたりの呼情報データの後にフラグエリアを設け、前記稼働系装置は、呼情報データを更新して当該呼情報データを前記待機系装置にコピーする際、コピー前にＲＤＭＡ機能を使って当該呼情報データに付随するフラグエリアに０を書き込み、次にＲＤＭＡ機能を使って当該情報データをコピーし、次にＲＤＭＡ機能を使って当該情報データに付随するフラグエリアに１を書き込むことを特徴とする。
【０００８】
本発明の呼情報サーバの同期方法は、前記待機系装置は、前記稼働系装置から処理を引き継ぐ時、引き継ぐ前に呼情報データのフラグエリアをチェックし、フラグエリアが０の呼情報データを無効化することを特徴としてもよい。
【発明の効果】
【０００９】
本発明によれば、呼情報データにフラッグエリアを設けているため、待機系装置への更新データの送信途中に稼働系装置がダウンして、待機系装置の主記憶上に不完全なデータが残されても、フラッグエリアによりこの不完全データを待機系装置で識別できるようになり、誤動作を防ぐことができる。
【発明を実施するための最良の形態】
【００１０】
本発明を実施するための最良の形態について図面を参照して詳細に説明する。図１は本発明の実施の形態の全体構成を示すブロック図である。
【００１１】
図１を参照すると、本実施の形態の呼制御サーバは、稼働系装置１と待機系装置２とから成り、互いは装置間インタフェース３で接続されている。
【００１２】
稼働系装置１と待機系装置２とは、主記憶装置１３、２３を備えている。主記憶装置１３、２３は、当該サーバが管理する呼情報を保持する呼情報領域１３１、２３１と、後述するフラグエリアのリセット用に０が書き込まれたリセット領域１３２、２３２とを備えている。呼情報領域１３１、２３１は図２に示すように各呼情報データとそれに付随するフラグエリアの対のデータ（エントリ）の集まりから構成され、また、各エントリは、有効なエントリ（使用中エントリ）同士、無効なエントリ（未使用エントリ）同士がキュー構造でリンクされている。尚、フラグエリアは対応する呼情報データが有効であれば１が格納されており、対応する呼情報データの直後に位置する。
【００１３】
稼働系装置１と待機系装置２は、呼情報を管理するアプリケーションプロセス部（ＡＰ）１１、２１と、ＲＤＭＡ機能部１２、２２を備えている。
【００１４】
稼働系装置１のアプリケーションプロセス部１１は、主記憶装置１３の呼情報領域１３１中の呼情報データを更新すると、最初に、ＲＤＭＡ機能部１２を使って、更新した呼情報データに対応する待機系装置２の主記憶装置２３の呼情報領域２３１中の呼情報データに付随するフラグエリアを０にリセットする。次に、ＲＤＭＡ機能部を使って、更新した呼情報データに対応する待機系装置２の主記憶装置２３の呼情報領域２３１中の呼情報データのエリアに更新したデータをコピーする。最後に、ＲＤＭＡ機能部１２を使って、更新した呼情報データに対応する待機系装置２の主記憶装置２３の呼情報領域２３１中の呼情報データに付随するフラグエリアを１にセットする。
【００１５】
待機系装置２のアプリケーションプロセス部２１は、稼働系装置１から処理を引き継ぐ時、自身の主記憶装置２３の呼情報領域２３１中の全ての呼情報データに付随するフラグエリアを予めチェックし、値が０のエリアを見つけたら、当該呼情報データを無効にする。
【００１６】
次に、動作について説明する。図３は稼働系装置１のアプリケーションプロセス部１１が呼情報データを更新した時の動作を示すフローチャートである。
【００１７】
それによるとアプリケーションプロセス部１１は、主記憶装置１３の呼情報領域１３１中の呼情報データを更新すると、最初に、ＲＤＭＡ機能部１２に、元アドレスとして自身のリセット領域１３２のアドレスを、宛先アドレスとして更新した呼情報データに付随するフラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグエリアのアドレスを、データサイズとしてフラグエリアのサイズを指定して、ＲＤＭＡ機能部１２を起動する（ステップＡ１およびＡ２）。
【００１８】
次に、ＲＤＭＡ機能部１２に、元アドレスとして自身の呼情報領域１３１中の更新した呼情報データの先頭アドレスを、宛先アドレスとして当該更新した呼情報データに対応する待機系装置２の呼情報領域２３１の呼情報データエリアの先頭アドレスを、データサイズとして呼情報データのサイズを指定して、ＲＤＭＡ機能部１２を起動する（ステップＡ３およびＡ４）。
【００１９】
最後に、ＲＤＭＡ機能部１２に、元アドレスとして自身の呼情報領域１３１の更新した呼情報データに付随するフラグエリアのアドレスを、宛先アドレスとして当該フラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグアリアのアドレスを、データサイズとしてフラグエリアのサイズを指定して、ＲＤＭＡ機能部１２を起動して処理を終了する（ステップＡ５およびＡ６）。
【００２０】
図４は待機系装置２のアプリケーションプロセス部２１が稼働系装置１の処理を引き継ぐ際の動作を示すフローチャートである。
【００２１】
それによるとアプリケーションプロセス部２１は、稼働系装置１から処理を引き継ぐ時、準備処理として、自身の主記憶装置２３の呼情報領域２３１中のエントリをひとつチェックし、そのフラグエリアの値が０か調べる（ステップＢ１およびＢ２）。
【００２２】
ここで、もし値が０であれば、当該エントリを未使用エントリ同士のキューにリンクする（ステップＢ３）。また、もし値が１であれば、当該エントリを有効エントリ同士のキューにリンクする（ステップＢ４）。
【００２３】
いずれの場合も、全てのエントリのチェックを終えたら処理を終了し、まだチェックしていないエントリが残されていればステップＢ１に戻り次のエントリをチェックする（ステップＢ５）。
【００２４】
なお、予め稼働系装置１側の当該呼情報データに付随するフラグエリアに１を書き込んでおくことで、当該呼情報データのコピーとフラグエリアへの１の書き込みは１回のＲＤＭＡ機能で実現することも可能である。
【００２５】
次に具体例を用いて本実施の形態の動作を説明する。図５に示すように、例えば、以下の順序（１．〜４．）で処理が進んだとする。１．呼情報ａを更新、２．呼情報ｂを更新、３．呼情報ｃを更新、４．再び呼情報ｂを更新。また、２．の途中、更新データのコピーのためＲＤＭＡ機能部を起動した直後に稼働系装置１が障害でダウンし、更新データのコピーが途中で打ち切られたとする。
【００２６】
１．稼働系装置１のアプリケーションプロセス部１１が、主記憶装置１３の呼情報領域１３１中の呼情報データａを更新すると、最初にＲＤＭＡ機能部１２に、元アドレスとして自身のリセット領域１３２のアドレスを、宛先アドレスとして更新した呼情報データａに付随するフラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグエリアのアドレスを、データサイズとしてフラグエリアのサイズを指定して、ＲＤＭＡ機能部１２を起動する。この後、ＲＤＭＡ機能部１２によって、呼情報データａに付随するフラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグエリアに０が書き込まれる。
【００２７】
次に、ＲＤＭＡ機能部１２に、元アドレスとして自身の呼情報領域１３１中の更新した呼情報データａの先頭アドレスを、宛先アドレスとして当該更新した呼情報データａに対応する待機系装置２の呼情報領域２３１の呼情報データエリアの先頭アドレスを、データサイズとして呼情報データのサイズを指定して、ＲＤＭＡ機能部１２を起動する。
【００２８】
この後、ＲＤＭＡ機能部によって、呼情報データａに対応する待機系装置２の呼情報領域２３１中のエントリに呼情報データａが書き込まれる。
【００２９】
最後に、ＲＤＭＡ機能部１２に、元アドレスとして自身の呼情報領域１３１の更新した呼情報データａに付随するフラグエリアのアドレスを、宛先アドレスとして当該フラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグアリアのアドレスを、データサイズとしてフラグエリアのサイズを指定して、ＲＤＭＡ機能部１２を起動して処理を終了する。
【００３０】
この後、ＲＤＭＡ機能部によって、呼情報データａに付随するフラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグエリアに１が書き込まれる。
【００３１】
２．稼働系装置１のアプリケーションプロセス部１１が、主記憶装置１３の呼情報領域１３１中の呼情報データｂを更新すると、最初に、ＲＤＭＡ機能部１２に、元アドレスとして自身のリセット領域１３２のアドレスを、宛先アドレスとして更新した呼情報データｂに付随するフラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグエリアのアドレスを、データサイズとしてフラグエリアのサイズを指定して、ＲＤＭＡ機能部１２を起動する。
【００３２】
この後、ＲＤＭＡ機能部１２によって、呼情報データｂに付随するフラグエリアに対応する待機系装置２の呼情報領域２３１中のフラグエリアに０が書き込まれる。
【００３３】
次に、ＲＤＭＡ機能部１２に、元アドレスとして自身の呼情報領域１３１中の更新した呼情報データｂの先頭アドレスを、宛先アドレスとして当該更新した呼情報データｂに対応する待機系装置２の呼情報領域２３１の呼情報データエリアの先頭アドレスを、データサイズとして呼情報データのサイズを指定して、ＲＤＭＡ機能部１２を起動する。
【００３４】
この後、ＲＤＭＡ機能部によって、呼情報データｂに対応する待機系装置２の呼情報領域２３１中のエントリに呼情報データｂの書き込みを開始するが、その途中に稼働系装置１がダウンし、書き込みは中断される。
【００３５】
これによって、待機系装置２の呼情報領域２３１中の呼情報データｂに対応するエントリには不完全なデータが残る。しかし、フラグも０のままとなる。
【００３６】
３．ここで、稼働系装置１がダウンしたことにより、待機系装置２が処理を引き継ぐ。その準備として、待機系装置２のアプリケーションプロセス部２１は、主記憶装置２３の呼情報領域２３１中のエントリを順番に全てチェックし、そのフラグエリアの値が０であれば未使用エントリ同士のキューにリンクし、もし値が１であれば有効エントリ同士のキューにリンクする。呼情報データｂのエントリはフラグエリアの値が０のため、これにより呼情報データｂのエントリは未使用エントリ同士のキューにリンクされる。ここで、待機系装置２のアプリケーションプロセス部２１が、主記憶装置２３の呼情報領域２３１中の呼情報データｃを更新する。この時、稼働系装置１はダウンしているため、ＲＤＭＡ機能部１２による同期は行わない。
【００３７】
４．待機系装置２のアプリケーションプロセス部２１が、主記憶装置２３の呼情報領域２３１中の呼情報データｂを再度更新しようとする。しかし、呼情報データｂのエントリは未使用エントリとなっているため見つからない。そこでアプリケーションプロセス部２１は呼情報データａを新規に登録することになる。これにより、アプリケーションプロセス部２１は不完全な呼情報データｂを使用することなく正常に動作を継続する。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施の形態の全体構成を示すブロック図である。
【図２】呼情報領域の構成を示す図である。
【図３】稼働系装置のアプリケーションプロセス部が呼情報データを更新した時の動作を示すフローチャートである。
【図４】待機系装置のアプリケーションプロセス部が稼働系装置の処理を引き継ぐ際の動作を示すフローチャートである。
【図５】本発明の具体的な実施例の動作を示す図である。
【符号の説明】
【００３９】
１    稼働系装置
２    待機系装置
３    装置間インタフェース
１１    アプリケーションプロセス部
１２    ＲＤＭＡ機能部
１３    主記憶装置
２１    アプリケーションプロセス部
２２    ＲＤＭＡ機能部
２３    主記憶装置
１３１    呼情報領域
１３２    リセット領域
２３１    呼情報領域
２３２    リセット領域
【図１】
2006270581.tif 000003
【図２】
2006270581.tif 000004
【図３】
2006270581.tif 000005
【図４】
2006270581.tif 000006
【図５】
2006270581.tif 000007