(57)【要約】【課題】トランザクション処理を行なうコンピュータシステムにおいて、メモリ上に処理対象となるデータを置く事で高速なデータ処理を実現しつつ、処理対象データの管理と複数サーバ間の情報交換の工夫によって、システム全体としての高可用性をも実現する。【解決手段】処理データを一旦全てメモリ上に配置し、メモリ上でデータ更新処理を行なう。また、処理が全て完了、或いはある程度まとまった単位の更新が完了した時点でディスクに保存することで、高速なトランザクション処理を実現する。更に、データ処理を行なうサーバとは別のサーバ上に常にデータの複製を持つことで、サーバダウン時のデータ消失を防止し、復旧時もディスクを介さず、直接メモリ上のデータを復旧することで、迅速な処理再開を実現する。【選択図】図２
2007316691.tif 000002
【特許請求の範囲】
【請求項１】
サーバのメモリの中に共有メモリとして確保された領域であるメモリドメインと、
前記メモリドメイン及び前記メモリドメインの内部の情報を管理するメモリドメイン管理機構と、
前記メモリドメインの先頭アドレスを記録するドメイン管理情報と、
前記ドメイン管理情報の先頭アドレス及び共有メモリ識別子を記録する管理情報アドレス記録ファイルと、
データ処理及びサーバ間の制御を行なうＴｘ処理機構と
を具備し、
前記メモリドメイン管理機構は、前記Ｔｘ処理機構からのメモリ確保要求によって前記メモリドメイン内に、論理データの領域を確保し、前記ドメイン管理情報内に、前記論理データの位置情報を、前記先頭アドレスからの相対位置によって記録し、前記ドメイン管理情報を前記先頭アドレスから一定の位置に配置する
トランザクション処理装置。
【請求項２】
請求項１に記載のトランザクション処理装置において、
前記メモリドメイン管理機構は、前記メモリドメインの先頭アドレスを、論理サーバ名として使用できない文字を含む固定したファイル名で保存する
トランザクション処理装置。
【請求項３】
請求項１又は２に記載のトランザクション処理装置において、
ネットワーク上の各サーバが正常に稼動していることを前記ネットワーク経由で監視するサーバ監視機構と、
更新データからのデータ読み込み指示及びトランザクション処理の制御を行なうＴｘ管理機構と
を更に具備し、
前記サーバ監視機構は、設定ファイルから、現用サーバ及び退避サーバがダウンした場合に実行すべき処理を読み取り、前記各サーバの監視を開始し、
前記Ｔｘ管理機構は、前記各サーバ上のＴｘ処理機構に対して問合せを行なうことで、前記現用サーバを確認し、前記現用サーバ上のＴｘ処理機構に対してデータ処理の開始を指示する
トランザクション処理装置。
【請求項４】
（Ａ）サーバ上でＴｘ処理機構が、稼動モードで起動し、前記サーバ上のメモリドメインとして確保される領域内にドメイン管理情報を生成するステップと、
（Ｂ）前記サーバが、論理サーバ名を命名し、且つ、前記サーバのメモリ上に領域を確保して前記メモリドメインを命名するステップと、
（Ｃ）前記サーバが、前記メモリドメインに入力データからの情報を読み込むステップと、
（Ｄ）前記サーバが、前記ドメイン管理情報に、前記メモリドメイン内に確保した領域の位置情報を、メモリの論理アドレスを使わない形で記録するステップと、
（Ｅ）前記Ｔｘ処理機構が、Ｔｘ管理機構からデータ処理の開始の指示を受けて、更新データからトランザクション処理のためのデータを読み込み、処理を開始するステップと、
（Ｆ）前記Ｔｘ処理機構が、前記読み込んだデータに従い、論理データを更新し、且つ、複製作成先情報に従い、更新情報をネットワーク転送するステップと、
（Ｇ）前記Ｔｘ処理機構が更新データから読み込んだデータを処理し終わった場合、前記Ｔｘ処理機構が、更新データに処理済の箇所を記録し、全トランザクション処理が完了した場合、前記Ｔｘ処理機構が、前記Ｔｘ管理機構にトランザクション処理完了を通知するステップと
を具備する
トランザクション処理方法。
【請求項５】
（ａ１）現用サーバでＴｘ処理機構Ａが、稼動モードで起動し、前記現用サーバ上のメモリドメインとして確保される領域内にドメイン管理情報Ａを生成し、退避サーバでＴｘ処理機構Ａ’が、稼動モードで起動し、前記退避サーバ上のメモリドメインとして確保される領域内にドメイン管理情報Ａ’を生成するステップと、
（ａ２）前記退避サーバが、論理サーバ名を「ＶＡ’」と命名するためのコマンドを実行し、設定ファイルの情報から論理サーバＶＡ’上にメモリドメインＡと同じサイズのメモリ領域が必要であることを読み取り、前記退避サーバのメモリ上に領域を確保して前記メモリドメインＡ’を「Ａ’」と命名するステップと、
（ａ３）前記現用サーバが、論理サーバ名を”ＶＡ”と命名するためのコマンドを実行し、前記現用サーバのメモリ上に領域を確保して前記メモリドメインＡを「Ａ」と命名するステップと、
（ａ４）現用待機サーバでＴｘ処理機構Ｓ、退避待機サーバでＴｘ処理機構Ｓ’が待機モードで起動するステップと、
（ａ５）前記現用待機サーバがメモリドメインＳ、前記退避待機サーバがメモリドメインＳ’として、それぞれ前記メモリドメインＡと同じサイズの領域を確保し、前記メモリドメインＳ、前記メモリドメインＳ’の先頭アドレスを、それぞれ前記現用待機サーバ、前記退避待機サーバの内蔵ディスクに、論理サーバ名として使用できない文字を含む固定したファイル名で保存するステップと、
（ａ６）前記現用サーバが、前記メモリドメインＡに入力データからの情報を読み込むステップと、
（ａ７）前記現用サーバが、前記ドメイン管理情報Ａに、前記メモリドメインＡ内に確保した領域の位置情報を、メモリの論理アドレスを使わない形で記録するステップと、
（ａ８）Ｔｘ制御サーバでＴｘ管理機構及びサーバ監視機構が起動するステップと、
（ａ９）前記サーバ監視機構が、設定ファイルから、前記現用サーバ、前記退避サーバがダウンした場合に実行すべき処理を読み取り、監視を開始するステップと、
（ａ１０）前記Ｔｘ管理機構は、全サーバ上のＴｘ処理機構に対して問合せを行なうことで、前記論理サーバＶＡが前記現用サーバであることを確認し、前記現用サーバ上の前記Ｔｘ処理機構Ａに対してデータ処理の開始を指示するステップと、
（ａ１１）前記Ｔｘ処理機構Ａが指示を受けて、更新データからトランザクション処理のためのデータを読み込み、処理を開始するステップと、
（ａ１２）前記Ｔｘ処理機構Ａが、前記読み込んだデータに従い、論理データＡを更新し、且つ、複製作成先情報に従い、前記現用サーバから前記退避サーバに更新情報をネットワーク転送するステップと、
（ａ１３）前記Ｔｘ処理機構Ａ’が、論理データＡ’を更新し、前記Ｔｘ処理機構Ａ’側での更新が確定した旨を前記Ｔｘ処理機構Ａ側へネットワークを通じて伝達するステップと、
（ａ１４）前記Ｔｘ処理機構Ａが更新データから読み込んだデータを処理し終わった場合、前記Ｔｘ処理機構Ａが、更新データに処理済の箇所を記録し、全トランザクション処理が完了した場合、前記Ｔｘ処理機構Ａが、前記Ｔｘ管理機構にトランザクション処理完了を通知するステップと
を具備する
トランザクション処理方法。
【請求項６】
請求項５に記載のトランザクション処理方法において、
（ｂ１）前記サーバ監視機構は、前記現用サーバがダウンしたことを検知すると、保持していた設定ファイル２５０の情報から、前記現用待機サーバを前記論理サーバＶＡと命名して、前記現用サーバの代替にするための動作を開始するステップと、
（ｂ２）前記サーバ監視機構が前記現用待機サーバにおいて、前記論理サーバＶＡの情報を前記論理サーバＶＡ’のデータから復元するためのコマンドをネットワークを通じて遠隔実行し、前記論理サーバＶＡ’が前記退避サーバであることを確認し、前記現用待機サーバを前記論理サーバＶＡとして命名し、前記メモリドメインＳの先頭アドレスを保存してあったファイルから読み取り、前記Ｔｘ処理機構Ｓを通じて、それを「新たな前記メモリドメインＡ」として命名し、前記Ｔｘ処理機構Ａ’に対して、前記論理サーバＶＡが前記現用待機サーバに変更されたことを通知し、前記メモリドメインＡ’の内容を前記メモリドメインＡとなった前記メモリドメインＳに対して転送するよう指示するステップと、
（ｂ３）前記Ｔｘ処理機構Ａ’はネットワークを通じて、前記メモリドメインＡ’の内容を前記メモリドメインＳへ転送して上書きし、転送が完了したら、前記論理サーバＶＡ’の前記ドメイン管理情報Ａ’の特定の位置に格納されていた論理アドレスを、前記メモリドメインＳの先頭アドレスに書き換えるステップと、
（ｂ４）前記サーバ監視機構が、前記現用待機サーバ上で実行したコマンドが完了したことを確認し、前記Ｔｘ処理機構Ｓを通じてトランザクション処理を再開するステップと、
を更に具備する
トランザクション処理方法。
【請求項７】
請求項５に記載のトランザクション処理方法において、
（ｃ１）前記サーバ監視機構は、前記退避サーバがダウンしたことを検知すると、保持していた設定ファイルの情報から、前記退避待機サーバを前記論理サーバＶＡ’と命名して前記退避サーバの代替にするための動作を開始するステップと、
（ｃ２）前記サーバ監視機構が、前記退避待機サーバにおいて前記論理サーバＶＡ’の情報を前記論理サーバＶＡのデータから復元するためのコマンドを遠隔実行し、全サーバに問合せ、前記論理サーバＶＡが前記現用サーバであることを確認し、前記退避待機サーバを前記論理サーバＶＡ’として命名し、前記メモリドメインＳ’の先頭アドレスを保存してあったファイルから読み取り、前記Ｔｘ処理機構Ｓ’を通じて、新たな前記メモリドメインＡ’として命名し、前記Ｔｘ処理機構Ａに対して、前記論理サーバＶＡ’が前記退避待機サーバに変更されたことを通知し、前記メモリドメインＡの内容を新たな前記メモリドメインＡ’となった前記メモリドメインＳ’に対して転送するよう指示するステップと、
（ｃ３）前記Ｔｘ処理機構Ａが、ネットワークを通じて前記メモリドメインＡの内容を前記メモリドメインＳ’へ転送し、前記ドメイン管理情報Ａの特定の位置に格納されていた論理アドレスを、前記メモリドメインＳ’の先頭アドレスに書き換えるステップと、
（ｃ４）前記サーバ監視機構が、前記退避待機サーバ上で実行したコマンドが完了したことを確認し、前記Ｔｘ処理機構Ａを通じてトランザクション処理を再開するステップと
を更に具備する
トランザクション処理方法。
【請求項８】
請求項５に記載のトランザクション処理方法において、
（ｄ１）前記現用サーバで前記Ｔｘ処理機構Ａ、前記退避サーバで前記Ｔｘ処理機構Ｘ、前記現用サーバで前記Ｔｘ処理機構が稼動モードで起動するステップと、
（ｄ２）前記退避サーバが、前記論理サーバ名をＶｘと命名するためのコマンドを実行し、設定ファイルの情報から前記論理サーバＶｘ上に前記メモリドメインＡ、前記メモリドメインＢと同じサイズのメモリ領域が必要であることを読み取り、前記退避サーバのメモリ上に領域を確保して、前記メモリドメインＡ’、前記メモリドメインＢ’と命名し、前記メモリドメインＡ’、前記メモリドメインＢ’の先頭アドレスを、前記退避サーバの内蔵ディスクに、それぞれＡ’、Ｂ’の名称と関連づけたファイル名で保存するステップと、
（ｄ３）前記現用サーバが、前記論理サーバ名をＶＡと命名するためのコマンドを実行し、前記現用サーバのメモリ上に領域を確保して前記メモリドメインＡと命名し、前記メモリドメインＡの先頭アドレスを、前記現用サーバの内蔵ディスクに、Ａの名称と関連づけたファイル名で保存し、設定ファイルより前記論理サーバＶＡの複製が前記論理サーバＶＡ’に作成されるべきであることを読み取り、前記Ｔｘ処理機構の中に複製作成先情報として記憶するステップと、
（ｄ４）前記現用サーバが、前記論理サーバ名をＶＢと命名するためのコマンドを実行し、前記現用サーバのメモリ上に領域を確保して前記メモリドメインＢと命名し、前記メモリドメインＢの先頭アドレスを、前記現用サーバの内蔵ディスクに、Ｂの名称と関連づけたファイル名で保存し、設定ファイルより前記論理サーバＶＢの複製が前記論理サーバＶｘに作成されるべきであることを読み取り、前記Ｔｘ処理機構の中に複製作成先情報として記憶するステップと、
（ｄ５）前記現用待機サーバで前記Ｔｘ処理機構Ｓが待機モードで起動し、設定ファイルの情報より、前記メモリドメインＡ、前記メモリドメインＢのうち、より大きい方の領域サイズで、前記メモリドメインＳを確保し、前記メモリドメインＳの先頭アドレスを、前記現用待機サーバの内蔵ディスクに、前記論理サーバ名として使用できない文字を含む所定の法則に従ったファイル名で保存するステップと、
（ｄ６）前記退避待機サーバで前記Ｔｘ処理機構Ｓｘが待機モードで起動し、設定ファイルの情報より、前記メモリドメインＡ’と同じ領域サイズの前記メモリドメインＳａ、前記メモリドメインＢ’と同じ領域サイズの前記メモリドメインＳｂを確保し、前記メモリドメインＳａ、前記メモリドメインＳｂの先頭アドレスを、前記退避待機サーバの内蔵ディスクに、前記論理サーバ名として使用できない文字を含む所定の法則に従ったファイル名で保存するステップと、
（ｄ７）前記現用サーバ、前記現用サーバがコマンドを実行し、入力データからの情報を読み込んだ後、前記Ｔｘ制御サーバが、Ｔｘ管理機構と前記サーバ監視機構を起動して処理を開始するステップと、
（ｄ８）前記現用サーバ及び前記現用サーバが、データ更新を実行した結果である更新情報を、前記退避サーバ上の前記Ｔｘ処理機構Ｘに送るステップと、
（ｄ９）前記Ｔｘ処理機構Ｘが、予め読み込んでいた設定ファイルの情報から、前記メモリドメインＡ’、前記メモリドメインＢ’のそれぞれを前記メモリドメインＡ、前記メモリドメインＢに対応することを認識して、前記更新情報を前記メモリドメインＡ’、前記メモリドメインＢ’に振り分けて、論理データＡ’、論理データＢ’の更新処理を行なうステップと
を更に具備する
トランザクション処理方法。
【請求項９】
請求項５に記載のトランザクション処理方法において、
（ｅ１）前記サーバ監視機構は、前記退避サーバがダウンしたことを検知すると、保持していた設定ファイルの情報から前記退避待機サーバを前記論理サーバＶｘと命名して前記退避サーバの代替にするための動作を開始するステップと、
（ｅ２）前記サーバ監視機構が、前記退避待機サーバにおいて前記論理サーバＶｘの情報を前記論理サーバＶＡ、及び前記論理サーバＶＢのデータから復元するためのコマンドを遠隔実行し、全サーバに問合せ、前記論理サーバＶＡが前記現用サーバ、前記論理サーバＶＢが前記現用サーバであることを確認し、前記退避待機サーバを前記論理サーバＶｘとして命名するステップと、
（ｅ３）前記メモリドメインＳａが前記メモリドメインＡ’、すなわち前記メモリドメインＡの複製の代替となる領域であることを設定ファイルから読み取り、予め規定していたファイル命名則に従い、先頭アドレスを保存しているファイルを特定し、前記メモリドメインＳａの先頭アドレスを読み取り、前記Ｔｘ処理機構Ｓｘを通じて、新たな前記メモリドメインＡ’として命名し、同様に、前記メモリドメインＳｂの先頭アドレスを特定し、新たな前記メモリドメインＢ’として命名するステップと、
（ｅ４）前記Ｔｘ処理機構、及び前記Ｔｘ処理機構に対して、前記論理サーバＶｘが前記退避待機サーバに変更されたことを通知し、前記メモリドメインＡの内容を新たな前記メモリドメインＡ’となった前記メモリドメインＳａに、前記メモリドメインＢの内容を新たな前記メモリドメインＢ’となった前記メモリドメインＳｂに対して転送するよう指示するステップと、
（ｅ５）前記Ｔｘ処理機構及び前記Ｔｘ処理機構は、ネットワークを通じて前記メモリドメインＡ、前記メモリドメインＢの内容を前記メモリドメインＳａ、前記メモリドメインＳｂへ転送し、転送が完了したら、前記ドメイン管理情報Ａの特定の位置に格納されていた論理アドレスを、前記メモリドメインＳａの先頭アドレスに、ドメイン管理情報Ｂの特定の位置に格納されていた論理アドレスを、前記メモリドメインＳｂの先頭アドレスに書き換えるステップと、
（ｅ６）前記サーバ監視機構は、前記退避待機サーバ上で実行したコマンドが完了したことを確認し、前記Ｔｘ処理機構、前記Ｔｘ処理機構を通じてトランザクション処理を再開するステップと
を更に具備する
トランザクション処理方法。
【請求項１０】
請求項４乃至９のいずれか一項に記載のトランザクション処理方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速、高可用性を実現するトランザクション処理装置及びトランザクション処理方法に関する。
【背景技術】
【０００２】
従来のトランザクション処理方法では、データベースからのデータの読み出し、更新、確定の間にディスクへのＩ／Ｏが発生するため、サーバダウン時の更新データ消失の危険が抑えられている一方、ディスクへのアクセス性能がトランザクション処理性能の上限となり、処理性能をある程度以上に向上させることができなかった。また、システムダウン後の復旧に要する時間を短縮することも困難であった。
【０００３】
また、従来より、トランザクション処理をミラーリングしながらメモリ上で行なうシステムはあるが、次のような問題点があった。
【０００４】
第一の問題点は、サーバダウン後の復旧に時間がかかるという点である。特に、何らかの理由で、データ処理を行なうサーバとその処理データを複製するサーバというように役割が分けられている場合、データ処理を行なうサーバを復旧させるためには、一旦、後者のサーバでデータを保存し、データ処理を行なうサーバへ転送してから復旧操作を行なう必要があった。
【０００５】
第二の問題点は、サーバダウン後の復旧操作が論理的な処理データ単位になってしまうという点である。サーバがダウンして、そこに論理的な処理データ１０００個が置かれていた場合、従来の方法では、復旧先サーバでその１０００個を順次、又は特定の数ずつ並列に、復旧処理することになり、１０００という数に依存した処理が発生することで、処理性能に限界が生じていた。
【０００６】
第三の問題点は、データ処理を行なうサーバとその処理データを複製するサーバの処理内容がほとんど対称であるがゆえに、サーバ台数の低減など、システム構築の柔軟性に問題があるという点である。データ処理を行なうサーバと同等の処理を、複製する側のサーバでも実行するため、複製する側のサーバを集約するなど、柔軟なシステム構築を行なう上で限界があった。
【０００７】
関連する技術として、特開２０００−５７０３０号公報に２重更新を行なうデータベースを有するクライアントサーバーシステムが開示されている。
このクライアントサーバーシステムは、少なくとも１つのクライアントと、前記クライアントの接続サーバーを切り替えるゲートウェイと、同一の構成を有する正系サーバーと副系サーバーと、前記正系サーバーと副系サーバーとによってそれぞれ参照及び更新される一対のデータベースとを有する。前記正系サーバーと副系サーバーはともに、前記クライアントのメッセージに対してオンライン処理を行なうオンラインアプリケーション手段と、データベースの参照と更新を行なうデータベースシステムと、自系のデータベースに対するデータベース変更メッセージを一時的に蓄積して他系に送出するメッセージキュー送出手段と、他系のデータベースに対するデータベース変更メッセージを自系に受け入れて一時的に蓄積するメッセージキュー受入手段と、前記メッセージキュー受入手段から他系のデータベースのデータベース変更メッセージを入力し、前記データベースシステムを介して自系のデータベースを更新するメッセージキュー起動アプリケーション手段とを有する。通常の処理においては前記正系サーバーは、そのオンラインアプリケーション手段によってオンライン処理を行ない、必要に応じて正系のデータベースシステムを介して正系のデータベースを変更するとともに、正系のデータベースに対するデータベース変更メッセージを正系のメッセージキュー送出手段に送る。前記副系サーバーは、副系のメッセージキュー受入手段が正系のメッセージキュー送出手段から正系のデータベースに対するデータベース変更メッセージを逐次受け入れ、副系のメッセージキュー起動アプリケーション手段が副系のメッセージキュー受入手段から正系のデータベースに対するデータベース変更メッセージを入力し、副系のデータベースシステムを介して副系のデータベースを更新する。前記正系サーバーにファイルの破損が発生したときは、前記ゲートウェイの切替えによって処理要求のあった前記クライアントを前記副系サーバーに接続し、副系のオンラインアプリケーション手段によってオンライン処理を行ない、必要に応じて副系のデータベースシステムを介して副系のデータベースを変更するとともに、副系のデータベースに対するデータベース変更メッセージを逐次副系のメッセージキュー送出手段に送る。前記正系サーバーは機能が回復した後に、正系のメッセージキュー受入手段が副系のメッセージキュー送出手段から副系処理中の副系のデータベースに対するデータベース変更メッセージを受け入れ、正系のメッセージキュー起動アプリケーション手段が正系のメッセージキュー受入手段から副系のデータベースに対するデータベース変更メッセージを入力し、正系のデータベースシステムを介して正系のデータベースを更新する。
【０００８】
また、特開２００３−３４５５２３号公報にデータ多重化システムが開示されている。
このデータ多重化システムは、少なくとも一つの正側記憶ボリュームを備える複数の正側記憶装置と、少なくとも一つの副側記憶ボリュームを備えるとともに前記複数の正側記憶装置に接続する副側記憶装置とを備え、前記各正側記憶装置の正側記憶ボリュームに記憶される正側データと同じ内容の副側データを前記副側記憶装置へ転送して前記副側記憶装置の副側記憶ボリュームに記憶することにより、前記正側記憶装置と前記副側記憶装置とにおいてデータを多重に保持する。前記副側記憶装置は、前記副側データの到着状況を管理する手段と、前記複数の正側記憶装置に接続するホストコンピュータが前記各正側記憶装置へ前記正側データを送信した時刻を表すために前記正側データ及び前記副側データに付された時刻情報に基づいて、受信した前記副側データを時系列順に前記副側記憶ボリュームに書き込む手段と、或る前記正側記憶装置からの前記副側データの到着状況が設定された条件を満たすと、前記或る正側記憶装置からの前記副側データの前記到着状況が前記設定された条件から外れるようにするための条件離脱処理を実行する手段とを備える。
【０００９】
特開２００５−２９３３１５号公報にデータミラー型クラスタシステムが開示されている。
このデータミラー型クラスタシステムは、一台が運用系、少なくとももう一台が待機系として動作するサーバ装置から構成され、運用系データベース上のデータ変更を待機系のデータベースに反映する。各サーバ装置は、それぞれのデータベースと、両サーバ装置からアクセス可能な共有メモリとを備え、トランザクションを相手サーバ装置に転送できるインターコネクトにより相互に接続されている。各サーバ装置は、運用系として動作しているときに、データベース上のデータの変更を共有メモリに書き込む運用系メモリドライバ手段と、待機系として動作しているときに、前記インターコネクトを介して共有メモリ上に転送されてきたデータをデータベースに書き込む待機系メモリドライバ手段とを備える。
【００１０】
特開平４−２６４９３７号公報にオンラインデータベース装置が開示されている。
このオンラインデータベース装置は、メモリに展開すべき情報を格納している磁気ディスク装置と、高速度アクセスされる情報が格納されている主記憶装置と、メモリに情報を展開するメモリ情報展開手段と、アプリケーションプログラムよりメモリ情報をアクセスするアプリケーションインタフェース手段と、端末トランザクション制御を行なうオンライン制御手段と、オンラインシステム終了時に磁気ディスク装置に退避するメモリ情報退避手段とを有する。
【００１１】
特開平５−８８９５４号公報にデータベースの更新方法が開示されている。
このデータベースの更新方法は、プロセッサの主記憶装置上にデータベースのプライマリコピーを格納し、ディスク装置上にデータベースのバックアップコピーを格納するデータベース処理システムにおいて用いられる。このデータベース処理システムは、主記憶装置上にトランザクションが更新したデータに関する情報を格納するための更新情報格納領域と、コミットを宣言したトランザクションのトランザクション番号を格納するためのコミットリストと、トランザクションが前記プライマリコピーに対して更新を行った結果を前記バックアップコピーに反映させるための一括コミット処理部を有する。前記トランザクションは、データに対する排他ロックを獲得した後にプライマリコピーに対する前記データの更新と前記更新情報格納領域への登録を行ない、コミットを宣言した時点で前記トランザクション自身のトランザクション番号を前記コミットリストに登録する。また、それまでに獲得したデータに対する排他ロックを全て解除する。前記一括コミット処理部は、前記コミットリストに登録された前記トランザクション番号に対応するトランザクションがコミット可能かどうかを前記更新情報格納領域に登録された情報に基づいて判定を行なう。コミット可能と判定したトランザクション群について、一括して更新データを前記プライマリコピーから前記バックアップコピーに転送して、コミット完了を前記トランザクション群に通知する。
【００１２】
特開平９−２４４９３３号公報にデータベースバックアップ装置が開示されている。
この従来技術は、全データベースが常駐する主記憶手段と、データベースのバックアップとログ情報を保持する２次記憶手段とを有するメモリデータベースにおけるデータベースバックアップ装置に関する。このデータベースバックアップ装置は、レコード単位、カラム単位、該レコード単位と該カラム単位の組み合わせのいずれかの単位で、リカバリ処理でデータ保証する種別と保証しない保証種別に基づいて前記主記憶手段の連続した領域上にデータを保持するテーブルと、前記保証種別のデータの領域の前記主記憶手段上のレコードの位置情報を有するテーブル管理情報と、前記主記憶手段の保証種別のデータの領域の前記主記憶手段上のカラムの位置情報を有するデータベース管理情報と、レコード単位、カラム単位、レコード単位とカラム単位の組み合わせのいずれかの単位で、リカバリ処理で保証する種別のデータのみを、テーブル管理情報及びデータベース管理情報と共に格納する２次記憶手段と、前記２次記憶手段に、前記レコード単位、前記カラム単位、前記レコード単位と前記カラム単位の組み合わせのいずれかの単位で、前記リカバリ処理で保証する種別のデータのみを前記テーブル管理情報及びデータベース管理情報と共にバックアップするバックアップ手段とを有する。
【００１３】
【特許文献１】特開２０００−５７０３０号公報
【特許文献２】特開２００３−３４５５２３号公報
【特許文献３】特開２００５−２９３３１５号公報
【特許文献４】特開平４−２６４９３７号公報
【特許文献５】特開平５−８８９５４号公報
【特許文献６】特開平９−２４４９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、トランザクション処理を行なうコンピュータシステムにおいて、メモリ上に処理対象となるデータを置く事で高速なデータ処理を実現するトランザクション処理装置を提供することである。
本発明の他の目的は、処理対象データの管理と複数サーバ間の情報交換の工夫によって、システム全体としての高可用性を実現するトランザクション処理装置を提供することである。
【課題を解決するための手段】
【００１５】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１６】
本発明のトランザクション処理装置は、サーバ（１００）のメモリの中に共有メモリとして確保された領域であるメモリドメイン（１０３）と、前記メモリドメイン（１０３）及び前記メモリドメイン（１０３）の内部の情報を管理するメモリドメイン管理機構（１０１）と、前記メモリドメイン（１０３）の先頭アドレスを記録するドメイン管理情報（１０５）と、前記ドメイン管理情報（１０５）の先頭アドレス及び共有メモリ識別子を記録する管理情報アドレス記録ファイル（１０２）と、データ処理及びサーバ間の制御を行なうＴｘ処理機構（１０４）とを具備する。
前記メモリドメイン管理機構（１０１）は、前記Ｔｘ処理機構（１０４）からのメモリ確保要求によって前記メモリドメイン（１０３）内に、論理データの領域を確保し、前記ドメイン管理情報（１０５）内に、前記論理データの位置情報を、前記先頭アドレスからの相対位置によって記録し、前記ドメイン管理情報（１０５）を前記先頭アドレスから一定の位置に配置する。
【００１７】
前記メモリドメイン管理機構（１０１）は、前記メモリドメイン（１０３）の先頭アドレスを、論理サーバ名として使用できない文字を含む固定したファイル名で保存する。
【００１８】
本発明のトランザクション処理装置は、ネットワーク上の各サーバが正常に稼動していることを前記ネットワーク経由で監視するサーバ監視機構と、更新データからのデータ読み込み指示及びトランザクション処理の制御を行なうＴｘ管理機構とを更に具備する。前記サーバ監視機構は、設定ファイルから、現用サーバ及び退避サーバがダウンした場合に実行すべき処理を読み取り、前記各サーバの監視を開始する。前記Ｔｘ管理機構は、前記各サーバ上のＴｘ処理機構（１０４）に対して問合せを行なうことで、前記現用サーバを確認し、前記現用サーバ上のＴｘ処理機構（１０４）に対してデータ処理の開始を指示する。
【発明の効果】
【００１９】
第一の効果は、トランザクションデータを高速に処理可能であるという点にある。その理由は、処理対象となるデータが全てメモリ上に配置され、且つメモリ上で更新されており、ディスクへの保存はトランザクション処理完了後に一括して行われるため、ディスクアクセスが処理速度の足枷になることがないからである。
第二の効果は、サーバダウン（異常停止）時に、処理途中のデータが消失する可能性が低減されているという点にある。その理由は、複数のサーバがメモリ上に処理途中のデータの複製を保持しているからである。
第三の効果は、サーバダウン後、迅速に処理の再開が可能という点にある。その理由は、他サーバのメモリ上にあるデータを基に、ダウンしたサーバ上のデータを、待機サーバのメモリ上に展開した形で復元するからである。
第四の効果は、サーバダウン後、待機サーバへの高速なデータ復旧が可能という点にある。その理由は、論理的なデータを直接メモリ上に確保した領域へ配置するのではなく、一旦メモリ上に確保した空間内に論理的なデータを配置することによって、待機サーバへのデータ転送回数が抑制され、転送後の待機サーバ上でのアドレス変換の回数をも低減できるためである。また、確保する共有メモリが広大である場合、最初のメモリアクセス時に論理アドレス−物理アドレスのマッピングに時間を要することになるが、本発明では事前に確保、及びマッピングした領域に転送するため、その時間をも抑制できる。
第五の効果は、退避サーバ側のピーク時のＣＰＵ負荷が、現用サーバ側と比較して低減されているという点にある。その理由は、データの処理に２フェーズコミット方式を採用することで、退避サーバ側で２回目のコミットまでのデータ更新内容を最適化することが可能となり、退避サーバ側で２回目のコミット時の処理量（データ更新量）が低減されているためである。
【発明を実施するための最良の形態】
【００２０】
以下に本発明の第１実施形態について添付図面を参照して説明する。
まず図１に、本発明の構成要素となるサーバ内の詳細な構成を示す。
本発明に用いるサーバ１００は、メモリドメイン管理機構１０１と、管理情報アドレス記録ファイル１０２と、メモリドメイン１０３と、Ｔｘ処理機構１０４と、ドメイン管理情報１０５と、論理データ１：１０６と、論理データ２：１０７と、論理データ３：１０８と、アドレスＸ１０９を備えている。
【００２１】
メモリドメイン管理機構１０１は、メモリドメイン１０３及びその内部の情報を管理する。管理情報アドレス記録ファイル１０２は、ドメイン管理情報１０５の先頭アドレス、及び共有メモリ識別子を記録する。メモリドメイン１０３は、サーバの主記憶装置であるメモリ１１０の中に共有メモリとして確保された領域である。Ｔｘ処理機構１０４は、データ処理及びサーバ間の制御を仲介するコンピュータプログラムである。ドメイン管理情報１０５は、メモリドメイン１０３の先頭アドレスを記録するアドレスＸ１０９を有する。論理データ１：１０６、論理データ２：１０７、及び論理データ３：１０８は、メモリドメイン１０３内に確保された領域であり、その中に処理対象となる情報を含む。
【００２２】
メモリドメイン１０３はオペレーティングシステムに対する共有メモリ確保要求によって領域確保されるため、同じサイズのメモリ確保要求を別なサーバはもちろん同じサーバで再び行ったとしても、そのメモリ１１０内における先頭アドレスは必ずしも同じにはならない。ここでメモリドメイン１０３はシステム内において一意となる管理上の名称（ＩＤ：識別情報）を付与される。管理情報アドレス記録ファイル１０２のファイル名の一部分は、実施例で後述するようにシステムの制御のために使用し、メモリドメイン１０３の名称を含むことがある。
【００２３】
論理データ１：１０６、論理データ２：１０７、論理データ３：１０８は、メモリドメイン管理機構１０１に対するメモリ確保要求によって、メモリドメイン１０３内に領域確保される。メモリドメイン管理機構１０１は、ドメイン管理情報１０５内に、論理データ１：１０６、論理データ２：１０７、論理データ３：１０８の位置情報を、アドレスＸ１０９内に記録されたメモリドメイン先頭アドレスからの相対位置によって記録する。ドメイン管理情報１０５は、メモリドメイン先頭アドレスから一定の位置に配置する。
【００２４】
以上によって、メモリドメイン１０３のシステム内での名称が特定できれば、管理情報アドレス記録ファイル１０２のファイル名が特定でき、その内部の情報からメモリドメインの先頭アドレスとドメイン管理情報１０５の先頭アドレスが特定できる。更に、アドレスＸ１０９内のメモリドメイン先頭アドレスを変更することによって、ドメイン管理情報１０５内のその他の情報を変更することなく、メモリドメイン１０３を異なるアドレスに配置することが可能となる。
【００２５】
次に、本発明の全体図となる図２を参照すると、システムは５種類のサーバで構成されている。詳細は図示していないが、各サーバは前述した図１の構成要素をその内に含んでいる。
【００２６】
図２に示すように、本発明のシステムは、Ｔｘ制御サーバ２００と、現用サーバ２０２と、現用待機サーバ２２２と、退避待機サーバ２３２と、ネットワーク切替機構２６０を有する。Ｔｘ制御サーバ２００は、Ｔｘ管理機構２０１と、サーバ監視機構２４０を備えている。現用サーバ２０２は、メモリドメインＡ：２０３と、Ｔｘ処理機構Ａ：２０４を備えている。メモリドメインＡ：２０３は、ドメイン管理情報Ａ：２０５と、論理データＡ１：２０６と、論理データＡ２：２０７を有する。また、現用サーバ２０２は、更新データ２０８と、入力データ２０９を利用する。退避サーバ２１２は、メモリドメインＡ’：２１３と、Ｔｘ処理機構Ａ’：２１４を備えている。メモリドメインＡ’：２１３は、ドメイン管理情報Ａ’：２１５と、論理データＡ１’：２１６と、論理データＡ２’：２１７を有する。現用待機サーバ２２２は、メモリドメインＳ：２２３と、Ｔｘ処理機構Ｓ：２２４を備えている。退避待機サーバ２３２は、メモリドメインＳ’：２３３と、Ｔｘ処理機構Ｓ’：２３４を備えている。
【００２７】
更新データ２０８はトランザクション処理の入力データを表している。更新データ２０８には”どの論理データをどのように変更するか”、”どの論理データにどのようなレコードを追加するか”、”どの論理データのどのレコードを削除するか”という情報が格納されている。
【００２８】
Ｔｘ制御サーバ２００上のＴｘ管理機構２０１は、更新データ２０８からのデータ読み込み指示等、トランザクション処理の制御を行なう。現用サーバ２０２上のメモリには、メモリドメインＡ：２０３として論理的なメモリ空間が確保され、その上にＴｘ処理機構Ａ：２０４によって入力データ２０９から処理の初期情報となるデータが読み込まれる。論理データＡ１：２０６、論理データＡ２：２０７はデータを読み込む領域及びその中のデータを表しており、一般的なデータベースにおけるテーブルに相当する。
【００２９】
退避サーバ２１２上のＴｘ処理機構Ａ’：２１４は、同サーバ上に現用サーバ２０２上のデータの複製が保持されるよう、Ｔｘ処理機構Ａ：２０４からの指示に従ってデータ更新処理を行なう。
【００３０】
メモリドメインＡ’：２１３はメモリドメインＡ：２０３の複製であり、論理データＡ１’：２１６、論理データＡ２’：２１７が、それぞれ論理データＡ１：２０６、論理データＡ２：２０７の複製として、メモリドメインＡ’：２１３に作成される。
【００３１】
現用待機サーバ２２２は現用サーバ２０２がダウン（異常発生による停止）した場合、退避待機サーバ２３２は退避サーバ２１２がダウンした場合に、それぞれ代替として機能する。
【００３２】
現用待機サーバ２２２、退避待機サーバ２３２は、その上でそれぞれＴｘ処理機構Ｓ：２２４、Ｔｘ処理機構Ｓ’：２３４が起動し、メモリドメインＳ：２２３、メモリドメインＳ’：２３３がメモリ上に確保された状態となっている。初期状態で、メモリドメインＳ：２２３、メモリドメインＳ’：２３３はその中に論理データを含まない。メモリドメインＡ：２０３、メモリドメインＡ’：２１３、メモリドメインＳ：２２３、メモリドメインＳ’：２３３は全て同じ大きさの領域であるが、確保されたメモリ上の論理アドレスは必ずしも同じではない。
【００３３】
各サーバはネットワーク切替機構２６０を介して、相互に高速なネットワークで接続されている。また、接続が図示されていないが更新データ２０８、入力データ２０９も、同様に各サーバからアクセスできるよう、高速なネットワークで接続されている。設定ファイル２５０の内容も全サーバで共有されている。
【００３４】
サーバ監視機構２４０は、その他の各サーバが正常に稼動していることをネットワーク切替機構２６０に接続されたネットワーク経由で監視する。
【００３５】
まず、図３Ａ、図３Ｂを使用して、本発明におけるトランザクションデータ処理時の動作を詳細に説明する。
まず、設定ファイル２５０の内容を全サーバで共有しておく。
（１）ステップＳ１０１
ユーザは現用サーバ２０２でＴｘ処理機構Ａ：２０４、退避サーバ２１２でＴｘ処理機構Ａ’：２１４を稼動モードで起動する。モードには稼動モードと待機モードが存在する。稼動モードではメモリドメインとして確保される領域内にドメイン管理情報を生成するが、待機モードではドメイン管理情報を生成しない。また、待機モードで確保されたメモリドメインのための領域は初期状態でメモリドメインとしての名称をもたない。
（２）ステップＳ１０２
次に退避サーバ２１２において、その論理サーバ名を”ＶＡ’”と命名するためのコマンドを実行する。コマンドは設定ファイル２５０の情報から論理サーバＶＡ’上にメモリドメインＡ：２０３と同じサイズのメモリ領域が必要であることを読み取り、同時に、退避サーバ２１２のメモリ上に領域を確保してメモリドメインＡ’：２１３を”Ａ’”と命名する。メモリドメイン名は、複製している現用サーバの論理サーバ名と一対一に対応する。メモリドメインＡ’：２１３の先頭アドレスは、退避サーバ２１２の内蔵ディスクに、”Ａ’”の名称と関連づけたファイル名で保存される。
（３）ステップＳ１０３
現用サーバ２０２において、その論理サーバ名を”ＶＡ”と命名するためのコマンドを実行する。コマンドは同時に、現用サーバ２０２のメモリ上に領域を確保してメモリドメインＡ：２０３を”Ａ”と命名する。メモリドメインＡ：２０３の先頭アドレスは、現用サーバ２０２の内蔵ディスクに、”Ａ”の名称と関連づけたファイル名で保存される。更に、設定ファイル２５０より論理サーバＶＡ（現用サーバ２０２）の複製が論理サーバＶＡ’（退避サーバ２１２）に作成されるべきであることがコマンドによって読み取られ、Ｔｘ処理機構Ａ：２０４の中に複製作成先情報として記憶される。
（４）ステップＳ１０４
現用待機サーバ２２２でＴｘ処理機構Ｓ：２２４、退避待機サーバ２３２でＴｘ処理機構Ｓ’：２３４を待機モードで起動する。
（５）ステップＳ１０５
現用待機サーバ２２２、退避待機サーバ２３２では、それぞれ、メモリドメインＳ：２２３、メモリドメインＳ’：２３３として、メモリドメインＡ：２０３と同じサイズの領域が確保される。領域確保のみでドメイン管理情報は生成されない。確保したメモリドメインＳ：２２３、メモリドメインＳ’：２３３の先頭アドレスは、それぞれ現用待機サーバ２２２、退避待機サーバ２３２の内蔵ディスクに、論理サーバ名として使用できない文字を含む、ある固定したファイル名で保存する。例えば、論理サーバ名として”＠”を使用できないものと規定し、”＠ｓｔａｎｄｂｙ．ｓｈｍ”というファイル名で保存する。
（６）ステップＳ１０６
更に現用サーバ２０２でコマンドを実行し、メモリドメインＡ：２０３に入力データ２０９からの情報を読み込む。読み込むにあたってメモリドメインＡ：２０３内にそのための領域を確保し、論理データＡ１：２０６、論理データＡ２：２０７として配置する。なお、入力データ２０９からデータを読み込むのは、データベースのテーブルが２つであった場合である。
（７）ステップＳ１０７
メモリドメインＡ：２０３内に確保した領域の位置情報は、メモリの論理アドレスを使わない形でドメイン管理情報Ａ：２０５に記録される。同時にコマンドはＴｘ処理機構Ａ：２０４に対し、複製作成先に論理データＡ１：２０６、論理データＡ２：２０７の複製を作成するよう指示する。これによって、現用サーバ２０２から退避サーバ２１２に対してネットワークを通じたデータ転送が為され、論理データＡ１’：２１６、論理データＡ２’：２１７がメモリドメインＡ’：２１３に生成される。論理データＡ１’：２１６、論理データＡ２’：２１７の位置情報はドメイン管理情報Ａ’：２１５に記録される。
（８）ステップＳ１０８
次にＴｘ制御サーバ２００において、Ｔｘ管理機構２０１とサーバ監視機構２４０を起動する。
（９）ステップＳ１０９
サーバ監視機構２４０は、設定ファイル２５０から、現用サーバ２０２、退避サーバ２１２がダウンした場合に実行すべき処理を読み取り、監視を開始する。
（１０）ステップＳ１１０
Ｔｘ管理機構２０１は、全サーバ上のＴｘ処理機構に対して問合せを行なうことで、論理サーバＶＡが現用サーバ２０２であることを知り、現用サーバ２０２上のＴｘ処理機構Ａ：２０４に対してデータ処理の開始を指示する。
（１１）ステップＳ１１１
Ｔｘ処理機構Ａ：２０４は指示を受けて、更新データ２０８からトランザクション処理のためのデータを読み込み、処理を開始する。
（１２）ステップＳ１１２
処理を開始したＴｘ処理機構Ａ：２０４は、読み込んだデータに従い、論理データＡ１：２０６、論理データＡ２：２０７を更新する。この際、複製作成先情報に従い、現用サーバ２０２から退避サーバ２１２に更新情報（以下、更新ログと表記）をネットワーク転送する。Ｔｘ処理機構Ａ’：２１４はそれを利用して、論理データＡ１’：２１６、論理データＡ２’：２１７を同様に更新する。更新結果の確定は、Ｔｘ処理機構Ａ：２０４によって、いわゆる２フェーズコミットで行われる。現用サーバ２０２から退避サーバ２１２に２段階のコミット（確定）指示が伝送されるが、２段階目のコミット指示で退避サーバ２１２側での更新を確定させるまでの間、Ｔｘ処理機構Ａ’：２１４は論理データＡ１’：２１６、論理データＡ２’：２１７のデータ更新量が最小となるよう、更新ログを最適化する。例えば、論理データＡ１’：２１６内のあるデータを”５”→”３”→”２”と更新する更新ログが送られてきた場合、最終的に”２”に更新するという情報のみを保持するなどである。
（１３）ステップＳ１１３
Ｔｘ処理機構Ａ’：２１４側での更新が確定したことはＴｘ処理機構Ａ：２０４側へネットワークを通じて伝達される。
（１４）ステップＳ１１４
Ｔｘ処理機構Ａ：２０４が更新データ２０８から読み込んだデータを処理し終わった場合、Ｔｘ処理機構Ａ：２０４は更新データ２０８に、処理済の箇所を記録する。全トランザクション処理が完了した場合、Ｔｘ処理機構Ａ：２０４はＴｘ管理機構２０１にトランザクション処理完了を通知する。
（１５）ステップＳ１１５
ユーザは必要に応じて現用サーバ２０２上でコマンドを実行し、論理データＡ１：２０６、論理データＡ２：２０７をトランザクション処理結果としてディスク上に保存する。
【００３６】
以上で処理は完了となる。
【００３７】
次に、図４において現用サーバ２０２がダウンした場合の動作について説明する。
（１）ステップＳ２０１
サーバ監視機構２４０は、現用サーバ２０２がダウンしたことを検知すると、保持していた設定ファイル２５０の情報から”現用待機サーバ２２２を論理サーバＶＡと命名して”現用サーバ２０２の代替にするための動作を開始する。
（２）ステップＳ２０２
まず、サーバ監視機構２４０は現用待機サーバ２２２において、”論理サーバＶＡの情報を論理サーバＶＡ’”のデータから復元するためのコマンドをネットワークを通じて遠隔実行する。実行されたコマンドは全サーバに問合せ、論理サーバＶＡ’が退避サーバ２１２であることを知る。コマンドは、現用待機サーバ２２２を”論理サーバＶＡ”として命名し、更にメモリドメインＳ：２２３の先頭アドレスを保存してあったファイルから読み取り、Ｔｘ処理機構Ｓ：２２４を通じて、それを”新たなメモリドメインＡ”として命名する。コマンドはＴｘ処理機構Ａ’：２１４に対して、論理サーバＶＡが現用待機サーバ２２２に変更されたことを通知し、メモリドメインＡ’：２１３の内容を”新たなメモリドメインＡ”となったメモリドメインＳ：２２３に対して転送するよう指示する。
（３）ステップＳ２０３
指示を受けたＴｘ処理機構Ａ’：２１４はネットワークを通じて、メモリドメインＡ’：２１３の内容をメモリドメインＳ：２２３へ転送し、上書きする。転送が完了したら、コマンドは、ドメイン管理情報Ａ’：２１５の特定の位置（図１におけるアドレスＸ１０９）に格納されていた論理アドレスを、メモリドメインＳ：２２３の先頭アドレスに書き換える。
これによって、退避サーバ２１２において論理データＡ１’：２１６、論理データＡ２’：２１７であったデータが、現用待機サーバ２２２（新たな”論理サーバＶＡ”）上で正常にアクセス可能となる。
（４）ステップＳ２０４
サーバ監視機構２４０は、現用待機サーバ２２２（新たな”論理サーバＶＡ”）上で実行したコマンドが完了したことを知り、Ｔｘ処理機構Ｓ：２２４を通じてトランザクション処理を再開する。
【００３８】
次に、図５において退避サーバ２１２がダウンした場合の動作について説明する。
（１）ステップＳ２１１
サーバ監視機構２４０は、退避サーバ２１２がダウンしたことを検知すると、保持していた設定ファイル２５０の情報から、”退避待機サーバ２３２を論理サーバＶＡ’と命名して”退避サーバ２１２の代替にするための動作を開始する。
（２）ステップＳ２１２
まず、サーバ監視機構２４０は退避待機サーバ２３２において、”論理サーバＶＡ’の情報を論理サーバＶＡ”のデータから復元するためのコマンドを遠隔実行する。実行されたコマンドは全サーバに問合せ、論理サーバＶＡが現用サーバ２０２であることを知る。コマンドは、退避待機サーバ２３２を”論理サーバＶＡ’”として命名し、更にメモリドメインＳ’：２３３の先頭アドレスを保存してあったファイルから読み取り、Ｔｘ処理機構Ｓ’：２３４を通じて、それを”新たなメモリドメインＡ’”として命名する。コマンドはＴｘ処理機構Ａ：２０４に対して、論理サーバＶＡ’が退避待機サーバ２３２に変更されたことを通知し、メモリドメインＡ：２０３の内容を”新たなメモリドメインＡ’”となったメモリドメインＳ’：２３３に対して転送するよう指示する。
（３）ステップＳ２１３
指示を受けたＴｘ処理機構Ａ：２０４はネットワークを通じて、メモリドメインＡ：２０３の内容をメモリドメインＳ’：２３３へ転送する。転送が完了したら、コマンドはドメイン管理情報Ａ：２０５の特定の位置（図１におけるアドレスＸ１１９）に格納されていた論理アドレスを、メモリドメインＳ’：２３３の先頭アドレスに書き換える。
これによって、現用サーバ２０２において論理データＡ１：２０６、論理データＡ２：２０７であったデータが、退避待機サーバ２３２（新たな”論理サーバＶＡ’”）へ正常に複製される。
（４）ステップＳ２１４
サーバ監視機構２４０は、退避待機サーバ２３２（新たな”論理サーバＶＡ’”）上で実行したコマンドが完了したことを知り、Ｔｘ処理機構Ａ：２０４を通じてトランザクション処理を再開する。
【００３９】
図６を使用して、本発明の第２実施形態について詳細に説明する。
図６に示すように、本発明のシステムは、Ｔｘ制御サーバ３００と、現用サーバ３０２と、現用待機サーバ３２２と、退避待機サーバ３３２と、ネットワーク切替機構３６０と、現用サーバ２：３７２を有する。Ｔｘ制御サーバ３００は、Ｔｘ管理機構３０１と、サーバ監視機構３４０を備えている。現用サーバ３０２は、メモリドメインＡ：３０３と、Ｔｘ処理機構Ａ：３０４を備えている。メモリドメインＡ：３０３は、ドメイン管理情報Ａ：３０５と、論理データＡ１：３０６と、論理データＡ２：３０７を有する。また、現用サーバ３０２は、更新データ３０８と、入力データ３０９を利用する。退避サーバ３１２は、メモリドメインＡ’：３１３と、Ｔｘ処理機構Ａ’：３１４と、メモリドメインＢ’：３８３を備えている。メモリドメインＡ’：３１３は、ドメイン管理情報Ａ’：３１５と、論理データＡ１’：３１６と、論理データＡ２’：３１７を有する。メモリドメインＢ’：３８３は、ドメイン管理情報Ｂ’：３８５と、論理データＢ１’：３８６と、論理データＢ２’：３８７を有する。現用待機サーバ３２２は、メモリドメイン３２３と、Ｔｘ処理機構Ｓ：３２４を備えている。退避待機サーバ３３２は、メモリドメインＳａ：３３３と、Ｔｘ処理機構Ｓａ：３３４と、メモリドメインＳｂ：３９３を備えている。現用サーバ２：３７２は、メモリドメインＢ：３７３、Ｔｘ処理機構２：３７４を備えている。メモリドメインＢ：３７３は、ドメイン管理情報Ｂ：３７５、論理データＢ１：３７６、論理データＢ２：３７７を有する。
【００４０】
図６では、図２と比較し、構成要素に現用サーバ２：３７２、及びその内部のメモリドメインＢ：３７３、Ｔｘ処理機構２：３７４、ドメイン管理情報Ｂ：３７５、論理データＢ１：３７６、論理データＢ２：３７７、そして、退避サーバ３１２内にメモリドメインＢ’：３８３、ドメイン管理情報Ｂ’：３８５、論理データＢ１’：３８６、論理データＢ２’：３８７が加わっている。
【００４１】
また、退避サーバ３１２に対応して、退避待機サーバ３３２内にＴｘ処理機構Ｓｘ：３３４、メモリドメインＳａ：３３３、メモリドメインＳｂ：３９３が存在する。
【００４２】
経路が図示されていないが、図２と同様に、設定ファイル３５０の内容、更新データ３０８、入力データ３０９は、全サーバで共有されている。
【００４３】
図７を使用して、第２実施形態におけるトランザクションデータ処理時の動作を詳細に説明する。
（１）ステップＳ３０１
ユーザは現用サーバ１：３０２でＴｘ処理機構Ａ：３０４、退避サーバ３１２でＴｘ処理機構Ｘ：３１４、現用サーバ２：３７２でＴｘ処理機構２：３７４を稼動モードで起動する。
（２）ステップＳ３０２
ユーザは退避サーバ３１２において、その論理サーバ名を”Ｖｘ”と命名するためのコマンドを実行する。コマンドは設定ファイル３５０の情報から論理サーバＶｘ上にメモリドメインＡ：３０３、メモリドメインＢ：３７３と同じサイズのメモリ領域が必要であることを読み取り、同時に、退避サーバ３１２のメモリ上に領域を確保して、メモリドメインＡ’：３１３、メモリドメインＢ’：３８３と命名する。メモリドメインＡ’：３１３、メモリドメインＢ’：３８３の先頭アドレスは、退避サーバ３１２の内蔵ディスクに、それぞれ”Ａ’”、”Ｂ’”の名称と関連づけたファイル名で保存される。
（３）ステップＳ３０３
現用サーバ１：３０２において、その論理サーバ名を”ＶＡ”と命名するためのコマンドを実行する。コマンドは同時に、現用サーバ１：３０２のメモリ上に領域を確保してメモリドメインＡ：２０３と命名する。メモリドメインＡ：３０３の先頭アドレスは、現用サーバ３０２の内蔵ディスクに、”Ａ”の名称と関連づけたファイル名で保存される。更に、設定ファイル３５０より論理サーバＶＡ（現用サーバ１：３０２）の複製が論理サーバＶＡ’（退避サーバ３１２）に作成されるべきであることがコマンドによって読み取られ、Ｔｘ処理機構１：３０４の中に複製作成先情報として記憶される。
（４）ステップＳ３０４
現用サーバ２：３７２において、その論理サーバ名を”ＶＢ”と命名するためのコマンドを実行する。コマンドは同時に、現用サーバ２：３７２のメモリ上に領域を確保してメモリドメインＢ：３７３と命名する。メモリドメインＢ：３７３の先頭アドレスは、現用サーバ３７２の内蔵ディスクに、”Ｂ”の名称と関連づけたファイル名で保存される。更に、設定ファイル３５０より論理サーバＶＢ（現用サーバ２：３７２）の複製が論理サーバＶｘ（退避サーバ３１２）に作成されるべきであることがコマンドによって読み取られ、Ｔｘ処理機構２：３７４の中に複製作成先情報として記憶される。
（５）ステップＳ３０５
現用待機サーバ３２２でＴｘ処理機構Ｓ：３２４を待機モードで起動すると、設定ファイル３５０の情報より、メモリドメインＡ：３０３、メモリドメインＢ：３７３のうち、より大きい方の領域サイズで、メモリドメインＳ：３２３が確保される。領域確保のみでドメイン管理情報は生成されない。確保したメモリドメインＳ：３２３の先頭アドレスは、現用待機サーバ３２２の内蔵ディスクに、論理サーバ名として使用できない文字を含む、ある法則に従ったファイル名で保存する。例えば、論理サーバ名として”＠”を使用できないものと規定し、”＠ｓｔａｎｄｂｙ．ｓｈｍ”というファイル名で保存する。
（６）ステップＳ３０６
退避待機サーバ３３２でＴｘ処理機構Ｓｘ：３３４を待機モードで起動すると、設定ファイル３５０の情報より、メモリドメインＡ’：３１３と同じ領域サイズのメモリドメインＳａ：３３３、メモリドメインＢ’：３８３と同じ領域サイズのメモリドメインＳｂ：３９３が確保される。領域確保のみでドメイン管理情報は生成されない。確保したメモリドメインＳａ：３３３、メモリドメインＳｂ：３９３の先頭アドレスは、退避待機サーバ３３２の内蔵ディスクに、論理サーバ名として使用できない文字を含む、ある法則に従ったファイル名で保存する。例えば、論理サーバ名として”＠”を使用できないものと規定し、ファイル名をそれぞれ”＠ｓｔａｎｄｂｙ＿Ａ．ｓｈｍ”、”＠ｓｔａｎｄｂｙ＿Ｂ．ｓｈｍ”とする。
（７）ステップＳ３０７
以降、図２の例と同様に、現用サーバ１：３０２、現用サーバ２：３７２でコマンドを実行し、入力データ３０９からの情報を読み込んだ後、Ｔｘ制御サーバ３００において、Ｔｘ管理機構３０１とサーバ監視機構３４０を起動して処理を開始する。
（８）ステップＳ３０８
現用サーバ１：３０２、現用サーバ２：３７２でデータ更新が実行された結果である更新ログは、退避サーバ３１２上のＴｘ処理機構Ｘ：３１４に送られる。Ｔｘ処理機構Ｘ：３１４は、予め読み込んでいた設定ファイル３５０の情報から、メモリドメインＡ’：３１３、メモリドメインＢ’：３８３のそれぞれがメモリドメインＡ：３０３、メモリドメインＢ：３７３に対応することを認識して、送られてきた更新ログをメモリドメインＡ’：３１３、メモリドメインＢ’：３８３に振り分けて、論理データＡ１’：３１６、論理データＡ２’：３１７、論理データＢ１’：３８６、論理データＢ２’：３８７の更新処理を行なう。
【００４４】
図７において、現用サーバ１：３０２、現用サーバ２：３７２がダウンした場合の動作は、図２の場合とほぼ同じである。但し、メモリドメインＳ：３２３の領域サイズは必ずしも転送元のサイズと一致しないため、退避サーバ３１２からのメモリドメイン情報の転送後、ドメイン管理情報内に、有効な（使用されている）領域のサイズを記録する。
【００４５】
図８において、退避サーバ３１２がダウンした場合の動作について説明する。
（１）ステップＳ３１１
サーバ監視機構３４０は、退避サーバ３１２がダウンしたことを検知すると、保持していた設定ファイル３５０の情報から”退避待機サーバ３３２を論理サーバＶｘと命名して”退避サーバ３１２の代替にするための動作を開始する。
（２）ステップＳ３１２
まず、サーバ監視機構３４０は退避待機サーバ２３２において、”論理サーバＶｘの情報を論理サーバＶＡ、及び論理サーバＶＢ”のデータから復元するためのコマンドを遠隔実行する。
（３）ステップＳ３１３
実行されたコマンドは全サーバに問合せ、論理サーバＶＡが現用サーバ１：３０２、論理サーバＶＢが現用サーバ２：３７２であることを知る。コマンドは、退避待機サーバ３３２を”論理サーバＶｘ”として命名する。
（４）ステップＳ３１４
更に、メモリドメインＳａ：３３３がメモリドメインＡ’：３１３、すなわちメモリドメインＡ：３０３の複製の代替となる領域であることを設定ファイル３５０から読み取り、予め規定していたファイル命名則に従い（前述の例の場合、”＠ｓｔａｎｄｂｙ＿Ａ．ｓｈｍ”）、先頭アドレスを保存しているファイルを特定する。そこからメモリドメインＳａ：３３３の先頭アドレスを読み取り、Ｔｘ処理機構Ｓｘ：３３４を通じて、それを”新たなメモリドメインＡ’”として命名する。同様に、メモリドメインＳｂ：３９３の先頭アドレスを特定し、”新たなメモリドメインＢ’”として命名する。
（５）ステップＳ３１５
コマンドはＴｘ処理機構１：３０４、及びＴｘ処理機構２：３７４に対して、論理サーバＶｘが退避待機サーバ３３２に変更されたことを通知し、メモリドメインＡ：３０３の内容を”新たなメモリドメインＡ’”となったメモリドメインＳａ：３３３に、メモリドメインＢ：３７３の内容を”新たなメモリドメインＢ’”となったメモリドメインＳｂ：３９３に対して転送するよう指示する。
（６）ステップＳ３１６
指示を受けたＴｘ処理機構１：３０４、Ｔｘ処理機構２：３７４は、ネットワークを通じてメモリドメインＡ：３０３、メモリドメインＢ：３７３の内容をメモリドメインＳａ：３３３、メモリドメインＳｂ：３９３へ転送する。転送が完了したら、コマンドはドメイン管理情報Ａ：３０５の特定の位置（図１におけるアドレスＸ１０９）に格納されていた論理アドレスを、メモリドメインＳａ：３３３の先頭アドレスに、ドメイン管理情報Ｂ：３７５の特定の位置に格納されていた論理アドレスを、メモリドメインＳｂ：３９３の先頭アドレスに書き換える。
これによって、現用サーバ１：３０２において論理データＡ１：３０６、論理データＡ２：３０７であったデータ、現用サーバ２：３７２において論理データＢ１：３７６、論理データＢ２：３７７であったデータが、退避待機サーバ３３２（新たな”論理サーバＶｘ”）へ正常に複製される。
（７）ステップＳ３１７
サーバ監視機構３４０は、退避待機サーバ３３２（新たな”論理サーバＶｘ”）上で実行したコマンドが完了したことを知り、Ｔｘ処理機構１：３０４、Ｔｘ処理機構２：３７４を通じてトランザクション処理を再開する。
【００４６】
以上のように、本発明は、いわゆるトランザクション処理を行なうコンピュータシステムにおいて、メモリ上に処理対象となるデータを置く事で高速なデータ処理を実現しつつ、処理対象データの管理と複数サーバ間の情報交換の工夫によって、システム全体としての高可用性をも実現している点に特徴がある。
【００４７】
本発明では、処理データを一旦全てメモリ上に配置し、メモリ上でデータ更新処理を行なう。また、処理が全て完了、或いはある程度まとまった単位の更新が完了した時点でディスクに保存することで、高速なトランザクション処理を実現する。更に、データ処理を行なうサーバとは別のサーバ上に常にデータの複製を持つことで、サーバダウン時のデータ消失を防止し、復旧時もディスクを介さず、直接メモリ上のデータを復旧することで、迅速な処理再開を実現する。
【図面の簡単な説明】
【００４８】
【図１】図１は、本発明に用いるサーバ内の構成を示すブロック図である。
【図２】図２は、本発明のシステムの全体図である。
【図３Ａ】図３Ａは、本発明におけるトランザクションデータ処理時の動作を示すフローチャートである。
【図３Ｂ】図３Ｂは、本発明におけるトランザクションデータ処理時の動作を示すフローチャートである。
【図４】図４は、現用サーバがダウンした場合の動作を示すフローチャートである。
【図５】図５は、退避サーバがダウンした場合の動作を示すフローチャートである。
【図６】図６は、本発明の他のシステムの全体図である。
【図７】図７は、他のトランザクションデータ処理時の動作を示すフローチャートである。
【図８】図８は、他の退避サーバがダウンした場合の動作を示すフローチャートである。
【符号の説明】
【００４９】
１００…サーバ
１０１…メモリドメイン管理機構
１０２…管理情報アドレス記録ファイル
１０３…メモリドメイン
１０４…Ｔｘ処理機構
１０５…ドメイン管理情報
１０６…論理データ１
１０７…論理データ２
１０８…論理データ３
１０９…アドレスＸ
１１０…メモリ
２００，３００…  Ｔｘ制御サーバ
２０１，３０１…  Ｔｘ管理機構
２０２，３０２…  現用サーバ
２０３，３０３…  メモリドメインＡ
２０４，３０４…  Ｔｘ処理機構Ａ
２０５，３０５…  ドメイン管理情報Ａ
２０６，３０６…  論理データＡ１
２０７，３０７…  論理データＡ２
２０８，３０８…  更新データ
２０９，３０９…  入力データ
２１２，３１２…  退避サーバ
２１３，３１３…  メモリドメインＡ’
２１４，３１４…  Ｔｘ処理機構Ａ’
２１５，３１５…  ドメイン管理情報Ａ’
２１６，３１６…  論理データＡ１’
２１７，３１７…  論理データＡ２’
２２２，３２２…  現用待機サーバ
２２３，３２３…  メモリドメインＳ
２２４，３２４…  Ｔｘ処理機構Ｓ
２３２，３３２…  退避待機サーバ
２３３…  メモリドメインＳ’
２３４…  Ｔｘ処理機構Ｓ’
２４０，３４０…  サーバ監視機構
２６０，３６０…  ネットワーク切替機構
３３３…  メモリドメインＳａ
３３４…  Ｔｘ処理機構Ｓａ
３７２…  現用サーバ２
３７３…  メモリドメインＢ
３７４…  Ｔｘ処理機構２
３７５…  ドメイン管理情報Ｂ：
３７６…  論理データＢ１
３７７…  論理データＢ２
３８３…  メモリドメインＢ’
３８５…  ドメイン管理情報Ｂ’
３８６…  論理データＢ１’
３８７…  論理データＢ２’
３９３…  メモリドメインＳｂ：
【図１】
2007316691.tif 000003
【図２】
2007316691.tif 000004
【図３Ａ】
2007316691.tif 000005
【図３Ｂ】
2007316691.tif 000006
【図４】
2007316691.tif 000007
【図５】
2007316691.tif 000008
【図６】
2007316691.tif 000009
【図７】
2007316691.tif 000010
【図８】
2007316691.tif 000011