(57)【特許請求の範囲】
【請求項１】
データベースと該データベースを管理するＤＢＭＳとによるデータベース装置を複数備えると共に、トランザクションマネージャを備える少なくとも２台のデータベースシステムをトランザクションマネージャが提供する通信手段により接続して構成されるデータ処理システムにおいて、
一方のデータベースシステムのトランザクションマネージャは、自データベースシステムのグローバルトランザクション内で更新された複数のデータベースの更新結果を他方データベースシステム内のデータベースに反映させるためのトランザクション管理情報を、他方のデータベースシステムのトランザクションマネージャに転送する手段を備え、
他方のデータベースシステムの複数のデータベース装置のＤＢＭＳのそれぞれは、一方のデータベースシステムの複数のデータベース装置から送られてくる一方のデータベースシステムの複数のデータベースに対する更新情報を、ＤＢＭＳ内に回復情報として保持する手段を備え、
他方のデータベースシステムのトランザクションマネージャは、受け取ったトランザクション管理情報に基づいて、トランザクションに参加していたＤＢＭＳに対してトランザクションの決着指示を行う手段と、自システムのＤＢＭＳのそれぞれに、前記保持している回復情報により、自システム内のデータベースの更新を行わせる手段とを備えることを特徴とするデータ処理システム。
【請求項２】
データベースと該データベースを管理するＤＢＭＳとによるデータベース装置を複数備えると共に、トランザクションマネージャを備える少なくとも２台のデータベースシステムをトランザクションマネージャが提供する通信手段により接続して構成されるデータ処理システムにおけるデータ処理方法において、
一方のデータベースシステムのトランザクションマネージャは、自データベースシステムのグローバルトランザクション内で更新された複数のデータベースの更新結果を他方データベースシステム内のデータベースに反映させるためのトランザクション管理情報を、他方のデータベースシステムのトランザクションマネージャに転送し、
他方のデータベースシステムの複数のデータベース装置のＤＢＭＳのそれぞれは、一方のデータベースシステムの複数のデータベース装置から送られてくる一方のデータベースシステムの複数のデータベースに対する更新情報を、ＤＢＭＳ内に回復情報として保持し、
他方のデータベースシステムのトランザクションマネージャは、受け取ったトランザクション管理情報に基づいて、トランザクションに参加していたＤＢＭＳに対してトランザクションの決着指示を行い、自システムのＤＢＭＳのそれぞれに、前記保持している回復情報により、自システム内のデータベースの更新を行わせることを特徴とするデータ処理方法。
【請求項３】
データベースと該データベースを管理するＤＢＭＳとによるデータベース装置を複数備えると共に、トランザクションマネージャを備える少なくとも２台のデータベースシステムをトランザクションマネージャが提供する通信手段により接続して構成されるデータ処理システムにおけるデータ処理プログラムであって、
他方のデータベースシステムに、
一方のデータベースシステムのトランザクションマネージャから送信されてくる一方のデータベースシステムのグローバルトランザクション内で更新された複数のデータベースの更新結果を他方データベースシステム内のデータベースに反映させるためのトランザクション管理情報を受け取るステップと、
一方のデータベースシステムの複数のデータベース装置から送られてくる一方のデータベースシステムの複数のデータベースに対する更新情報を、自システムのＤＢＭＳ内に回復情報として保持させるステップと、
受け取ったトランザクション管理情報に基づいて、トランザクションに参加していたＤＢＭＳに対してトランザクションの決着指示を行うステップと、
自システムのＤＢＭＳのそれぞれに、前記保持している回復情報により、自システム内のデータベースの更新を行わせるステップとを実行させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理システム及びデータ処理方法に係り、特に、複数のＤＢ（データベース）を１つのグローバルトランザクションとして処理し、遠隔地のＤＢの状態をこのグローバルトランザクションの結果に同期させることを可能にしたデータ処理システム及びデータ処理方法に関する。
【０００２】
【従来の技術】
一般に、ＤＢの管理を行っているＲＭ（リソースマネージャ、具体的にはＤＢＭＳ等である。以下、ＤＢＭＳという）は、独自にＤＢのデュプリケート機能を持っており、これを用いることにより、遠隔地のデータベースの内容との同期を取ることが可能である。
【０００３】
図５は従来技術によるＤＢのデュプリケートを説明するＤＢシステムの構成を示すブロック図である。図５において、１、１４はサーバ、３５、３６はＤＢＭＳ、４３はユーザアプリケーション（ＵＡＰ）、４４、４５はＤＢ、４６はネットワーク、４７は通信手段である。
【０００４】
図５に示すＤＢシステムは、ＤＢ装置を構成する２台のサーバマシン１と１４とがネットワーク４６を介して接続されて構成されている。そして、本番システムとしてのＤＢ装置が構成されるサーバマシン１内には、ＵＡＰ４３と、このＵＡＰ４３により更新されるＤＢ４４と、ＤＢ４４を管理するＤＢＭＳ３５が構成されている。また、遠隔地に設置さるバックアップシステムとしてのＤＢ装置が構成されるサーバマシン１４内には、ＤＢ４５と、このＤＢ４５を管理するＤＢＭＳとが構成されている。
【０００５】
サーバマシン１上のＤＢＭＳ３５は、ＤＢＭＳ３５が管理するＵＡＰ４３が更新するＤＢ４４を管理しており、独自の通信手段４７を用いて、ネットワーク４６を通じて、遠隔地にあるサーバマシン１４のＤＢＭＳ３６に更新のための情報を転送する。この情報を受け取ったＤＢＭＳ３６は、これにより、自ＤＢＭＳ３６が管理するデータベース４５を更新すること、すなわち、サーバマシン１、１４内のＤＢの内容を一致させて同期をとることが可能である。
【０００６】
【発明が解決しようとする課題】
前述した従来技術は、更新に遅延があるとしても、遠隔地のシステムのデータベースを更新することが可能である。しかし、前述の従来技術は、単体のＤＢ装置相互間の内容の更新を行うことができるものであり、この更新は、ＤＢＭＳ独自の機能によって行われるものである。このため、ＤＢとＤＢＭＳとにより構成されるＤＢ装置を複数有し、これらの複数のＤＢを１つのグローバルトランザクションとして処理するような大規模なシステムに、前述したような従来技術を適用した場合、遠隔地のデータベースの状態を前述のグローバルトランザクションの結果に同期させることが不可能になってしまう。
【０００７】
グローバルトランザクションとは、複数のトランザクション（これらをトランザクションブランチと呼ぶ）を束ねて制御できる単位である。このグローバルトランザクションの中には、複数のＤＢ装置を含むことが可能であり、この場合、複数のＤＢＭＳ、複数のトランザクションブランチの決着を制御する機能が必要となる。この機能が、ＴＭ（トランザクションマネージャ）と呼ばれるプログラムの基本機能である。ＴＭは、複数の決着のための情報を制御し、複数のトランザクションブランチを１つのグローバルトランザクションとして制御する。１つのグローバルトランザクションの制御下にあるトランザクションブランチ内のＤＢの更新結果は、ＴＭが制御するグローバルトランザクションの決着に従って一意に決まる。
【０００８】
図４はグローバルトランザクションによるＤＢの更新について説明するＤＢシステムの構成を示すブロック図である。図４において、２２、２７はＴＭ、２３、３０はＵＡＰ、２６は連絡手段、３１、３２はＤＢ、３３、３４はＤＢＭＳである。図４に示すシステムは、ＴＭ２２、２７を含むそれぞれのＤＢシステムが、本番システム及びバックアップシステムとして動作するものとしている。
【０００９】
図４において、各ＴＭと各ＤＢＭＳとの間には、Ｘ／ＯＰＥＮで定められたＸＡ連係機能という連係機能２８が備えられており、ＴＭは、この連係機能２８を使用してＤＢＭＳに対してトランザクション制御を行う。ＵＡＰ２３は、ＤＢ更新機能２４、すなわち、ＳＱＬを使用してデータベース３１を更新する機能を有し、また、ＴＭ２２が提供する通信手段２９を使用して別のＵＡＰ３０に対して処理要求を行うことが可能である。このとき、ＵＡＰ３０は、ＵＡＰ２３のトランザクションに対するトランザクションブランチとなる。そして、ＵＡＰ３０のＤＢ更新機能２４によるデータベース３２に対する更新は、ＵＡＰ２３のトランザクションと含めて１つのグローバルトランザクションとしてＴＭ２２、ＴＭ２７によって管理される。
【００１０】
ＵＡＰ２３は、ＴＭ２２のトランザクション制御機能２５を呼び出してトランザクションを決着させることができる。このとき、ＴＭ２２は、ＴＭ２７が管理するＵＡＰ３０のトランザクションも決着させるために、連絡手段２６を用いてＴＭ２７にそのトランザクションの決着を指示する。
【００１１】
前述したように、ＴＭ２２とＴＭ２７とによって管理されるグローバルトランザクション内でのＵＡＰ２３によるＤＢ３１の更新と、ＵＡＰ３０によるＤＢ３２の更新とは同期を取って行われるため、一方のＤＢだけが更新されているという状態にはならない。すなわち、ＴＭの制御によってグローバルトランザクション内の複数のトランザクションブランチの結果は一意に保たれることになる。
【００１２】
現在のＤＢＭＳのデュプリケート機能は、例えば、図４により説明した例で言えば、ＤＢＭＳ３３とＤＢＭＳ３４とが互いに独立したタイミングで遠隔地のＤＢＭＳで管理されているＤＢを更新する。このため、ＵＡＰ２３がＤＢ３１を更新した結果は、遠隔地におけるＤＢ３２に反映されているが、ＵＡＰ３０がＤＢ３２を更新した結果は、まだ、ＤＢ３１に反映されていないというようなタイミングが存在し得る。
【００１３】
このため、グローバルトランザクション内で複数のデータベースを更新する必要がある大規模システムであって、災害対策システムのような遠隔地のＤＢに更新結果を反映させる必要があるシステムにおいては、ユーザ自身の工夫で同期を取る手段を講じる必要があった。例えば、複数のＤＢに依存しないようにする、トランザクションブランチを作らないようにする等の業務アプリケーションの構成を制約したり、トランザクションを発生させた元データを転送し、同様のトランザクションを発生させる等の手段を用いる等により、並列処理を業務アプリケーションで実現する必要があった。
【００１４】
本発明の目的は、前述したような必要を回避し、グローバルトランザクションを管理するＴＭにより、遠隔地における複数ＤＢの同期更新手段を提供し、遠隔地における複数のＤＢのデータベースの更新をグローバルトランザクションに同期させることを可能にしたデータ処理システム及びデータ処理方法を提供することにある。
【００１５】
【課題を解決するための手段】
本発明によれば前記目的は、データベースと該データベースを管理するＤＢＭＳとによるデータベース装置を複数備えると共に、トランザクションマネージャを備える少なくとも２台のデータベースシステムをトランザクションマネージャが提供する通信手段により接続して構成されるデータ処理システムにおいて、一方のデータベースシステムのトランザクションマネージャは、自データベースシステムのグローバルトランザクション内で更新された複数のデータベースの更新結果を他方データベースシステム内のデータベースに反映させるためのトランザクション管理情報を、他方のデータベースシステムのトランザクションマネージャに転送する手段を備え、他方のデータベースシステムの複数のデータベース装置のＤＢＭＳのそれぞれは、一方のデータベースシステムの複数のデータベース装置から送られてくる一方のデータベースシステムの複数のデータベースに対する更新情報を、ＤＢＭＳ内に回復情報として保持する手段を備え、他方のデータベースシステムのトランザクションマネージャは、受け取ったトランザクション管理情報に基づいて、トランザクションに参加していたＤＢＭＳに対してトランザクションの決着指示を行う手段と、自システムのＤＢＭＳのそれぞれに、前記保持している回復情報により、自システム内のデータベースの更新を行わせる手段とを備えることにより達成される。
【００１６】
【発明の実施の形態】
以下、本発明によるグローバルトランザクション制御システム及び制御方法の実施形態を図面により詳細に説明する。
【００１７】
図１は本発明の一実施形態によるグローバルトランザクション制御を使用するＤＢシステムの構成を示すブロック図、図２は遠隔地側のＤＢシステムでの回復処理を説明する遠隔地側ＤＢシステムの構成を示すブロック図、図３はトランザクション管理情報１３について説明する図である。図１〜図３において、２、１２はＴＭ、３はグローバルトランザクション、４はＵＡＰ、５、６、８、１０はＤＢ、９、１１は回復情報、１３はトランザクション管理情報、１５、１６、３７、３８はＤＢＭＳであり、他の符号は図５の場合と同一である。
【００１８】
図１に示すＤＢシステムは、ＤＢシステムを構成する２台のサーバマシン１と１４とがネットワーク４６を介して接続されて構成されている。そして、本番システムとしてのＤＢシステムが構成されるサーバマシン１内には、ＴＭ２と、ＵＡＰ４と、このＵＡＰ４により更新されるＤＢ５及びＤＢ５を管理するＤＢＭＳ１５によるＤＢ装置と、ＵＡＰ４により更新されるＤＢ６及びＤＢ６を管理するＤＢＭＳ１６によるＤＢ装置とが構成されている。そして、ＵＡＰ４と、前述の２つのＤＢ装置とによりグローバルトランザクションが構成されている。
【００１９】
また、遠隔地に設置さる災害対策用のバックアップシステムとしてのＤＢシステムが構成されるサーバマシン１４内には、ＴＭ１２と、ＤＢ８及びＤＢ８を管理するＤＢＭＳ３７によるＤＢ装置と、ＤＢ１０及びＤＢ１０を管理するＤＢＭＳ３８によるＤＢ装置とが構成され、ＴＭ２から転送されるトランザクションを管理するトランザクション管理情報１３が格納されている。
【００２０】
通常、図１に示すＤＢシステムの図示しないクライアント端末は、サーバマシン１を相手に業務を行っているが、サーバマシン１が存在する地域に何らかの障害が発生し、サーバマシン１での業務が続行困難になった場合、サーバマシン１４に対して業務の処理を要求をする。いま、クライアントからのある業務が、グローバルトランザクション３であるとする。通常、クライアント端末からトランザクションを発生させることはない。従って、以下では、サーバマシン内の動作について説明する。
【００２１】
クライアント端末からの業務の要求により、グローバルトランザクション３内でＤＢＭＳ１５が管理するＤＢ５、ＤＢＭＳ１６が管理するＤＢ６が更新され、グローバルトランザクション３をコミットする。ＤＢ５とＤＢ６とは、ＴＭ２の機能によって同期を取ってデータベースの内容を更新するため、ＤＢ５とＤＢ６との更新内容は同期が正しく取れている。クライアントからはさまざまな業務要求が図示システムに投入されており、ＤＢ５、ＤＢ６にその結果が反映される。
【００２２】
ＤＢＭＳ１５、ＤＢＭＳ１６のそれぞれは、従来のデータベースのデュプリケート機能により、遠隔地のそれぞれに対応する複製用ＤＢであるＤＢＭＳ３７が管理するＤＢ８、ＤＢＭＳ３８が管理するＤＢ１０をネットワーク７を通じてＤＢ５、ＤＢ６の内容に更新することができる。この場合の転送処理は、ＤＢＭＳ１５、１６によって実行されるが、その転送間隔は、ＤＢＭＳ１５とＤＢＭＳ１６とで同期しているわけではない。本発明の実施形態は、前述したようなＤＢＭＳのデュプリケート機能による遠隔地ＤＢへの複製に加え、ＤＢ８とＤＢ１０との間の同期をとるためのトランザクションの管理情報１３を、ＴＭ２がトランザクションの管理情報を転送する機能１７を用いて遠隔地のＴＭ１２に対して転送することとしている。
【００２３】
トランザクションの管理情報１３は、図３に示すように、複数のトランザクション情報４２を含んで構成されている。１つのトランザクション情報４２には、トランザクション識別子３９、トランザクションのコミット／ロールバック等の決着情報４０、このトランザクションに参加していたＤＢＭＳ４１の情報等が含まれている。
【００２４】
次に、図２を参照して、遠隔地側のサーバマシン１４における回復処理について説明する。
【００２５】
ＤＢＭＳ１５、ＤＢＭＳ１６により転送されてきているＤＢ５、ＤＢ６の更新内容は、それぞれ、図２に示す回復情報９、１１として、ＤＢＭＳ３７とＤＢＭＳ３８との中に一旦保持されている。一方、遠隔地に設置されるサーバマシン１４内のＴＭ１２は、転送されてきた転送元ＴＭ２でのトランザクションの管理情報１３に基づき、参加していたＤＢＭＳの情報４１によってＤＢＭＳ３７、ＤＢＭＳ３８に対し、トランザクションの決着情報４０のトランザクションの情報に従い、トランザクション決着準備指示を行う機能２０を用いてＤＢＭＳ３７、３８にトランザクション決着準備指示を行う。この指示には、トランザクション識別子３９を使用する。
【００２６】
トランザクションの決着準備指示を受けたＤＢＭＳ３７、ＤＢＭＳ３８は、それぞれ、指示のあったトランザクション識別子３９に対応するデータベース更新のための情報が回復情報９、回復情報１１に存在するか否かをチェックし、存在していれば、準備ができている旨を回答する。ＴＭ１２は、ＤＢＭＳ３７、ＤＢＭＳ３８からの回答を受け、更新可能な状態であると判断することができた場合、トランザクションの決着指示を行う機能２１を用いて、ＤＢＭＳ３７、ＤＢＭＳ３８に対して更新を行うように指示する。更新指示を受けたＤＢＭＳ３７、ＤＢＭＳ３８は、それぞれ、回復情報９、回復情報１１を用いてデータベース８、データベース１０を更新する。
【００２７】
図６は前述した遠隔地側のＤＢシステムでの回復処理の動作を説明するフローチャートであり、次に、これについ説明する。
【００２８】
（１）トランザクションの管理情報１３の読み出しを行い、トランザクションの管理情報があれば、トランザクション識別子、トランザクションのコミットかロールバックか等の決着情報、参加していたＤＢＭＳの情報を取得する（ステップ１００）。
【００２９】
（２）ステップ１００で取得した情報に基づいて、まず、情報内のトランザクションに参加していた１つのＤＢＭＳに対して決着準備の指示を行い、その指示に対する回答が決着してもよいという回答であるか否かをチェックする（ステップ１０１、１０２）。
【００３０】
（３）ステップ１０２で、決着してもよいという回答が得られていれば、次のＤＢ、すなわち、ＤＢＭＳが存在するか確認し、他にＤＢがあるか否かをチェックする。もし、他にＤＢがあれば、ステップ１０１からの処理に戻って、他のＤＢＭＳに対して決着準備指示を行う（ステップ１０４、ステップ１０５）。
【００３１】
（４）ステップ１０２のチェックで、決着してもよいという回答が得られなかった場合、一定時間保留した後、ステップ１０１からの処理に戻って、再度実行する（ステップ１０３）。
【００３２】
（５）ステップ１０５のチェックで、他にＤＢがなかった場合、すなわち、全てのＤＢＭＳから準備ができているという回答をもらった場合、それら全てのトランザクションに参加しているＤＢＭＳに対して決着の指示を行う（ステップ１０６）。
【００３３】
（６）その後、まだトランザクション情報があるか否かをチェックし、存在していれば、ステップ１００からの処理に戻って、次に、その情報に基づいてそのトランザクションの処理を行い、また、トランザクション情報がなければ、情報が転送されくるのを待つ（ステップ１０７、１０８）。
【００３４】
前述した本発明の実施形態による各処理は、処理プログラムとして構成することができ、この処理プログラムは、ＨＤ、ＤＡＴ、ＦＤ、ＭＯ、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することができる。
【００３５】
前述した本発明の実施形態によれば、転送元であるサーバマシン１でグローバルトランザクション３として更新されたＤＢ５、ＤＢ６の更新内容を、遠隔地のサーバマシン１４内のＤＢ１５、ＤＢ１６に、同期を取って正しく更新することができ、災害対策システムのような遠隔地に冗長なシステムを構築して災害に備えるＤＢシステムの高信頼化を実現することができる。
【００３６】
【発明の効果】
以上説明したように本発明によれば、複数のデータベースをグローバルトランザクションで更新する大規模なシステムにおいて、遠隔地でその更新情報を正しく同期を取って反映させることが可能になる。この結果、遠隔地に冗長なシステムを構築した災害対策システムの高信頼化を図ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態によるグローバルトランザクション制御を使用するＤＢシステムの構成を示すブロック図である。
【図２】遠隔地側のＤＢシステムでの回復処理を説明する遠隔地側ＤＢシステムの構成を示すブロック図である。
【図３】トランザクション管理情報１３について説明する図である。
【図４】グローバルトランザクションによるＤＢの更新について説明するＤＢシステムの構成を示すブロック図である。
【図５】従来技術によるＤＢのデュプリケートを説明するＤＢシステムの構成を示すブロック図である。
【図６】遠隔地側のＤＢシステムでの回復処理の動作を説明するフローチャートである。
【符号の説明】
１、１４  サーバマシン
２、１２、２２、２７  ＴＭ
３  グローバルトランザクション
４、２３、３０、４３  ユーザアプリケーション（ＵＡＰ）
５、６、８、１０、３１、３２、４４、４５  ＤＢ
９、１０  回復情報
１３  トランザクション管理情報
１５、１６、、３３〜３８  ＤＢＭＳ
２６  連絡手段
４６  ネットワーク
４７  通信手段
【図１】
0004138329.tif 000002
【図２】
0004138329.tif 000003
【図３】
0004138329.tif 000004
【図４】
0004138329.tif 000005
【図５】
0004138329.tif 000006
【図６】
0004138329.tif 000007