JP4050479B2 - トランザクション処理型データベースシステム - Google Patents
トランザクション処理型データベースシステム Download PDFInfo
- Publication number
- JP4050479B2 JP4050479B2 JP2001101713A JP2001101713A JP4050479B2 JP 4050479 B2 JP4050479 B2 JP 4050479B2 JP 2001101713 A JP2001101713 A JP 2001101713A JP 2001101713 A JP2001101713 A JP 2001101713A JP 4050479 B2 JP4050479 B2 JP 4050479B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- data
- lexicon
- database
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータの主記憶上に実現されたデータベースシステムに関するものであって、特に、データベースの管理に加えて、トランザクション管理とバックアップ、障害回復、負荷分散などの分散システム管理などの諸機能を持ち、インターネット/イントラネット上に構築されるアプリケーションシステムをサポートするのに適したトランザクション処理型データベースシステムに係る。
【0002】
【従来の技術】
ネットワークに分散したマシン間における共有データをリアルタイムに監視・制御するデータベースシステムでは、大量のデータを高速に処理(検索・更新)する必要があるので、それらのデータへのアクセス手段を提供するデータ管理システムの性能がデータベースシステムの性能を決定する。このようなデータ管理システムの性能向上を図るためには、通常ハードディスク等の外部記憶装置に格納されているデータのすべてを主記憶上に配置して管理することが考えられる。特に、昨今の主記憶容量の増加により、現在のハードウェア環境でも全データを主記憶上に常駐させることは可能となってきている。
【0003】
しかしながら、従来の外部記憶装置を前提にしたデータ管理システムを単に主記憶でキャッシングするだけでは、リアルタイムアプリケーションが必要とする性能を達成することはできない。その理由としては、(a) アプリケーションとデータ管理システムとの間で大量のデータ転送操作が必須となる、(b) 外部記憶装置を前提として設計されたアルゴリズムを各マシンの主記憶上で実行してもそれほど性能が向上しないという2点が挙げられる。さらに、外部記憶装置を前提として設計されたアルゴリズムでは、データ管理システムが提供できる機能が限られているため、多少高速化されてもアプリケーションの開発負荷は軽減されない。
【0004】
また、近年、24時間・365日稼動のシステム等、高い信頼性を要求するものが多くなっている。このようなシステムにおいては、システムダウンはいかなることがあっても許されない。そのために多重系のシステム構成を取ることが多い。また、このような機能をサポートするためのミドルウェア(MW)やハードウェア(HW)はアプリケーション・ソフトウェアでコントロールしなくてはならない。その結果、上記のような機能とデータ構造のアクセスを同時に実現しなくてはならず、多重系でシステムの信頼性を高めても、アプリケーションが複雑になるだけでなく、バグが残りやすくなり、アプリケーションの品質が低下する要因となっている。そのため、データベース管理システムの設定とデータの高信頼化機能を簡単に実装できる手段の開発が切望されていた。
【0005】
【発明が解決しようとする課題】
以上述べたように、従来のデータベースシステムは、高速性、信頼性および高機能性について不十分なものであって、より具体的には、次のような問題点があった。
【0006】
(1)機能変更によるシステム停止
システムの開発途中に機能の改造、拡張が発生した場合、当初のデータ構造では対応できない状況が起こりうる。もしそのような状況になった場合はデータベースを変更して対応するが、データベースを変更する際にはシステムを停止しないといけない。しかし、システムが稼動し始めてから機能の変更が起きた場合、システムを停止すると莫大なコストがかかってしまう。また、システムを止めないと機能変更ができないのは保守性の低下を意味する。
【0007】
(2)構造変更の困難性
システムのライフサイクル中に機能の改造や拡張が発生することはよくある。システム設計時には予想もつかなかったような機能の追加が発生し、当初のデータ構造では対応できない状況が起きてしまうことがある。このような場合、データベースを変更して対応することにより、つぎはぎのデータ構造になりがちであり、このようなデータ構造になると保守性が著しく下がってしまい、生産性や性能が劣化してしまう。
【0008】
(3)大規模システム開発時における生産性の低下
大規模システムの開発では、同時期に多くの開発者がアプリケーションの開発に携わることになる。データ構造は多くのアプリケーション共通に設計され、個々のアプリケーション固有の特性を配慮されないことが多い。そのためアプリケーション開発者にとってはとても使いにくいデータ構造になることが多い。大規模開発のためのデータ構造開発方法を含む開発スタイルがないため、後戻りや無駄な処理が発生し生産性が悪くなってしまう。
【0009】
(4)ローカル/リモート処理の困難性
リモートのマシンに対して処理(トランザクション)を行う際、従来のデータベース管理システムではRPC(Remote Procedure Call)を使う必要がある。しかし、このような手法によると、リモートのマシンに対してトランザクションを実行する時は、アプリケーションでの処理手順が変わり、ローカルマシンに対する実行より手間がかかる。
【0010】
本発明は、上記のような従来技術の問題点を解決するために提案されたものであり、その目的は、システム構築が容易で、機能変更等にも柔軟に対応することができるトランザクション処理型データベースシステムを提供することにある。本発明の他の目的は、ネットワークで結合された複数のマシンの主記憶上で保有する共有データを、高精度に管理することができるデータベース管理システム及びこの管理システムにおける各種の設定を容易に実行することのできるトランザクション処理型データベースシステムを提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するため、請求項1記載の発明は、コンピュータの主記憶領域に配置されたデータベースと、
前記データベースに対する処理を実行するためのトランザクション処理部と、このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部とを備え、
前記トランザクション管理部は、各トランザクションを実行するのに必要なトランザクション関数を用意しておき、トランザクションが発行された場合には、発行されたトランザクションに対応するトランザクション関数を選択し、このトランザクション関数を用いてデータベースに対する処理を実行することを特徴とする。
【0012】
請求項2の発明は、前記請求項1の発明を装置的な観点から把握したものであって、コンピュータの主記憶領域に配置されたデータベースと、前記データベースに対する処理を実行するためのトランザクション処理部と、このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部とを備え、
前記トランザクション管理部には、発行されたトランザクションに対応するトランザクション関数を予め選択するためのトランザクション登録管理部と、選択されたトランザクション関数をロードしてデータベースに対して処理を行わせるトランザクション関数ロード部とが設けられていることを特徴とする。
【0013】
この請求項1または請求項2に記載の発明によれば、データへのアクセスはトランザクション関数を通じて行われ、データ構造の変更がアプリケーションへ波及しないため、データ操作を行うトランザクションを部品化できる。
【0014】
請求項3の発明は、ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、ある特定のコンピュータに格納されたデータをオリジナルデータとし、このオリジナルデータを有するコンピュータをベースホストとすると共に、ある特定のコンピュータとは異なる他のコンピュータには、前記ベースホストに格納されているオリジナルデータと同一のレプリカデータを格納し、このレプリカデータを格納したコンピュータをレプリカホストとし、
前記各ホストの主記憶領域上には、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部と、データベースに対する種々の処理を行うトランザクション処理部と、このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部を備え、
前記トランザクション管理部は、各トランザクションを実行するのに必要なトランザクション関数を用意しておき、
トランザクション処理部は、トランザクションが発行された場合には、発行されたトランザクションに対応するトランザクション関数を選択し、このトランザクション関数を用いてデータベースに対する処理を実行することを特徴とする。
【0015】
請求項4の発明は、前記請求項3の発明を装置的な観点から把握したものであって、
前記トランザクション管理部には、トランザクションの受付部と、受け付けたトランザクションに対応するトランザクション関数を選択するためのトランザクション登録管理部と、選択されたトランザクション関数をロードしてデータベースに対して処理を行わせるトランザクション関数ロード部とが設けられていることを特徴とする。
【0016】
このような構成を有する請求項3および請求項4の発明によれば、ネットワークを介した共有データの維持管理を一貫して本発明のシステムが請け負うことで、ネットワークの存在をアプリケーションに対して隠蔽して主記憶領域という抽象的な概念を有する。つまり、アプリケーションにとっては主記憶領域のサービスに参加するだけで、高速な主記憶データへのアクセスとして共有データへのアクセスが可能となる。このことはネットワークに分散したシステムの開発において大きなメリットとなる。
【0017】
また、前記請求項1ないし請求項4に記載の発明は、前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記トランザクション管理部において、前記レキシコンに対する処理を行う1つあるいは複数のトランザクションが、トランザクションライブラリとしてこのレキシコンセットに登録されていることを特徴とする。このような構成によれば、個々のトランザクションを1つずつアクセス対象のデータに登録する場合に比較して、登録、変更などの処理が容易に実施できる。また、複数のトランザクションをライブラリとしてグループ化することにより、トランザクションの実行に必要なトランザクション関数の取り扱いも容易になる。
【0018】
請求項5の発明は、前記トランザクションが、処理対象であるデータの変更を伴わない参照トランザクションと、データの変更を行う更新トランザクションとを備え、前記トランザクション管理部において、前記レキシコンセット内のレキシコンに対して、参照あるいは更新のいずれかのトランザクションがアクセスするかをあらかじめ設定しておくことを特徴とする。このような構成の請求項5の発明によれば、レキシコンセット(データベース)全体ではなく、それを構成するレキシコン(部分)ごとに参照/更新をチェックすることができる。
【0019】
また、前記請求項1ないし請求項4に記載の発明は、前記トランザクション管理部において、前記トランザクション関数をDLLファイルとして格納し、このDLLファイルと前記トランザクションライブラリとを関連付け、前記トランザクションライブラリに登録されたトランザクションの実行時には、前記ライブラリに関連付けられたDLLファイルを呼び出して、そこに格納されたトランザクション関数を実行することを特徴とする。このような構成によれば、トランザクションごとではなく、レキシコンセットにライブラリ(複数可)を対応付け、このライブラリにDLLファイルを対応付けることで、アプリケーションを利用するコンピュータ毎にDLLファイルの構成内容が異なる場合でも効率的にトランザクション関数名とプログラムのリンクを行うことができる。
【0020】
請求項6の発明は、前記トランザクション管理部が、トランザクションのアクセス対象となるレキシコンセットに対して、本名と別名とを登録するものであり、トランザクションの実行時にレキシコンセットの本名と別名のいずれでもトランザクションが登録されたレキシコンセットに対してアクセス可能としたことを特徴とする。このような構成を有する請求項6の発明によれば、アプリケーションが発行するトランザクションのデータベース指定識別子を変更することなく、別のデータベースに対するトランザクションとして処理することができる。
【0021】
請求項7の発明は、前記複数のホストのいずれかに格納されたデータベースに、前記トランザクション管理部によって作成されたシステム管理データのオリジナルデータが格納され、このシステム管理データのオリジナルを有するホストには、システム管理アプリケーションプログラムと、このシステム管理アプリケーションプログラムによって実行されるシステム管理用トランザクションが配置され、前記システム管理用トランザクションは、前記トランザクション処理部が実行する各トランザクションと、各トランザクションの処理の対象となるデータとを関連付けるものであることを特徴とする。このように請求項7の発明によれば、システムの各種の設定についても、ユーザアプリケーションと同様に、トランザクションによる処理が可能となり、システム開発の一貫性が確保される。
【0022】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して具体的に説明する。なお、本実施の形態のうち情報処理に関する部分は、典型的には、コンピュータをソフトウェアで制御することで実現される。この場合のソフトウェアは、コンピュータのハードウェアを物理的に活用することで本発明の作用効果を実現するもので、また、従来技術との共通部分には従来技術も適用される。但し、この場合のハードウェアやソフトウェアの種類や構成、ソフトウェアで処理する範囲などは各種変更可能であるため、以下の説明では、本発明及び実施形態の各機能を実現する仮想的回路ブロックを用いる。
【0023】
[1.分散データ管理システムの全体像]
本発明は、ネットワークで接続された複数のマシンに備えられたデータベースを、適切且つ効率良く管理するための分散データ管理システムに関するものである。
【0024】
本発明の詳細については後述するが、ここでは本発明の分散データ管理システム(以下、本システムという)について概説する。すなわち、本システムは、データベース(レキシコンセット)とトランザクションを扱うものであって、アプリケーション(=ユーザ)からデータベースの内容の参照・検索・更新の一群の操作依頼をトランザクションとして受け付け、そのトランザクションを適切に実行し、必要(要求)に応じて実行完了通知および実行結果をアプリケーションに通知するものである。
【0025】
図1は、本発明に係る分散データ管理システムの構成を示す図である。すなわち、本システムは、図1に示すように、複数のコンピュータA,B,C……(各ホストと呼ぶ)を通信ネットワークで接続することによって構成されている。また、各ホストA,B,Cの主記憶領域には、それぞれデータベース1a、1b、1cとこのデータベースにアクセスするためのトランザクション関数2a、2b、2cが配置されている。
【0026】
各ホストでは1または複数個のアプリケーションが実行されるが、本システムが複数のホストから構成される場合、異なるホストでは異なるアプリケーションが実行されることが多い。すなわち、アプリケーションX,Y,Zは本システムの外部にあって、各ホストごとにそのデータベースにアクセスして必要な処理を行う。この場合、各アプリケーションX,Y,Zは、各ホストに設けられた処理部3a、3b、3cを介して、本システムに予め登録されているトランザクション関数2a、2b、2cに参照・更新などの処理を依頼し、その結果を受けてデータベースへのアクセス以外にプログラムの実行に必要となる処理を行う。通常、アプリケーションでは画面への表示や印刷などのフロントエンド処理を行う。
【0027】
(データベース)
また、本システムのデータベース1a、1b、1cは、1つ以上の部分(レキシコン)から構成されている。このレキシコンは、レキシコンセットのデータの部分に選択的にアクセスしたり、属性を付与するための単位であって、名称(レキシコン名)等でユニークに識別される。本システムの実行環境においては、図2に示すように、ユニスペースが複数のレキシコンセットを含むことができるので、レキシコンセットもまた名称(レキシコンセット名)等で識別する。さらに、同一の物理的マシン上に共通のネットワークを使用して複数のユニスペース、すなわち異なるレキシコンセットの組を管理する複数のシステムとして本システムを実施することもあり得るので、ユニスペースもまた名称(ユニスペース名)等で区別する。
【0028】
そして、各ホストのデータベースに格納されているレキシコンセットは、いずれかのホスト上にそのオリジナルデータが保有され、他のホストにはそのコピーであるレプリカデータが保有されている。例えば、図1においては、ホストA(コンピュータA)には、データBのオリジナルデータが保有され、ホストC(コンピュータC)には、データAのオリジナルデータが保有されている。また、ホストB(コンピュータB)には、データA及びデータBのレプリカデータが保有されている。また、本システムにおいては、データの更新処理は、オリジナルデータに対してのみ実行でき、レプリカデータでは、データの更新処理を行うことはできない。
【0029】
(トランザクション)
トランザクションが行うべき操作を抽象化/一般化した手続を「トランザクション関数」と呼ぶ。すなわち、図1に示したトランザクション関数(TR関数)A,Bは、各マシンのデータベースにアクセスして、アプリケーション共通で必要となる処理を実現する関数である。すなわち、本システムにおいては、各アプリケーションX,Y,Zは、直接データベースにアクセスして処理を行うわけではなく、トランザクション関数を介してデータベースにアクセスするように構成されている。
【0030】
トランザクションには、各種の属性を付与するため識別子(トランザクション名等)が含まれている。この識別子に対して、例えば実行すべきトランザクション関数を対応付けたりする。この識別子は、付与すべき属性の種類に応じて必要な数を設定すればよい。
【0031】
トランザクションが操作の対象とするのは、1つのレキシコンセットとする。本システムでは、ユニスペースが複数のレキシコンセットを含むことができるので、トランザクションには、操作対象のレキシコンセットを明記する。このレキシコンセット名を上記識別子の1つと考えても良い。もちろん、他の識別子から操作対象レキシコンセットを判別する手段を設けることもでき、レキシコンセット名の明記は必須ではない。
【0032】
そして、本システムにおいては、アプリケーションからのデータ操作の依頼をトランザクションを単位として処理する。従って、オリジナルデータに対する更新処理も更新TRを単位として実行され、レプリカサイトにおける更新内容(レプリケーションデータ)のレプリカデータに対する反映処理も、原因となった更新TRを単位として行われる。
【0033】
(本システムの主たる目的)
本システムの主たる目的は、データベース(レキシコンセット)を複数のマシン上で同一内容に保つことを意図している。すなわち、各マシンは同一内容のデータベースのコピーを保持しており、1つのマシンでそのデータベースに対して更新が加えられた場合には、通信ネットワークを経由して各マシンに更新情報(内容)を伝達し、各マシンのデータベースに更新内容を速やかに反映させることによってこの目的を達成しようとするものである。本明細書においては、この機能を「レプリケーション」と称する。
【0034】
なお、本明細書においては、データベースを更新する権利を持つマシンをそのデータベースのオリジナルサイト、そのデータをオリジナルデータと呼ぶ。また、それ以外のマシンでそのデータベースのコピーを保有するものをレプリカサイト、そのデータをレプリカデータと呼ぶ。
【0035】
また、本システムは、データベースを更新するトランザクション(更新TR)を上記オリジナルサイトで実行する機能を備え、前記レプリケーションと併せて、複数のコピーからなるデータベースを、各マシンのアプリケーションからは論理的に1つのデータベースに見えるように運用する。すなわち、各マシンのアプリケーションはオリジナルサイトがどのマシンかを気にする必要がない。本明細書においては、このようなシステム構成を「リモート/ローカル構造」と呼ぶ。
【0036】
さらに、本システムにおいては、トランザクションの実行及びレプリケーションデータの反映が一単位完了するまでは、そのデータベース(レキンコンセット)を操作対象とする他のトランザクションの処理を行わない(もちろん他のレプリケーションデータの反映も行なわない)。それらの実行及び反映、また、そのデータベース(レキンコンセット)を操作対象とする他のトランザクションの実行またはレプリケーションデータの反映が進行中の場合は、それらの完了を待って開始される。すなわち、(1つのマシンの)1つのデータベース(レキンコンセント)に関するトランザクションの実行及びレプリケーションデータの反映は、トランザクション単位でシリアルに処理される。それゆえ、トランザクション及びその実行を依頼したアプリケーションが他のトランザクションの実行途中のデータベースの内容にアクセスすることはない。
【0037】
なお、更新操作を行なわず、データの検索・参照のみを行なうトランザクションを、更新トランザクションに対して参照トランザクションと呼ぶ。本システムでは、レプリケーション機能によって、オリジナルデータとレプリカデータの一致がトランザクション単位で速やかに図られるので、参照トランザクションは、そのトランザクションを依頼されたマシン(ローカルマシン)のレプリカデータを操作対象としても何ら不都合を生じない。
【0038】
また、通信ネットワークはオリジナルサイトがレプリケーションをレプリカサイトに伝達してレプリケーション機能を実現するための手段であると同時に、レプリカサイトで発行(依頼)された更新トランザクションをオリジナルサイトに転送するための手段でもある。この更新トランザクションをオリジナルサイトのみで実行する機能は、具体的には通信ネットワークを経由してレプリカサイトで発行された更新トランザクションをオリジナルサイトに転送することによって実現される。
[2.用語の説明]
各実施形態について説明する前に、本明細書中で用いられる種々の用語について説明する。
【0039】
(1)ユニスペース(共有単位領域/データベース実行単位領域)
本システムは、ネットワークで結合された複数のマシン(ホスト)上で協調動作することで、主記憶上の共有データを一貫して維持・更新するためのものであり、本システムにおいて、ユニスペースとは、このシステムを構成する複数のマシン(ホスト)間で共有されるデータおよびデータアクセス(参照・更新)のサービスを区別するための識別子である。この識別子は、サーバ同士が通信する際のグループを識別する際に使用する。また、アプリケーションが各サーバに対して共有データへのアクセスのサービスを要求する際にも利用する。なお、ユニスペースの識別子は、ユニスペースの名前をあらわすアスキー文字列とグループ間通信に利用するIPマルチキャストアドレスの組で構成されている。
【0040】
(2)レキシコンセット
ユニスペースを構成する共有データに部分集合を定めてレキシコンセットと呼ぶ。主記憶領域を構成する各マシンに対して、レキシコンセット毎にデータを配置するか否かの指定が可能である。本システムでは、主記憶データをファイルにバックアップ保存することが可能であるが、この際もレキシコンセット単位となる。
【0041】
レキシコンセット内には、データベースとして共有データへの高速アクセスを可能にするインデックス機能がある。以下に基本となるデータ構造を記する。
(a) レキシコン(LEXICON):レキシコンセットの部分集合。レキシコンセットに属する。
(b) セル(CELL):データを格納する配列。タイプ(データ型)、キャパシティ(配列の長さ)、カウント(ソート時のキーとしての有効長)属性を持つ。レキシコンに属する。
(c) コンテキスト(CONTEXT):セルに直線的な関係を与えるデータ(セルの配列)。キャパシティ属性を持つ。レキシコンに属する。
(d) ロー(ROW):コンテキストの一部に対してソートキーを指定するデータ。ローレングス、キーレングスの属性を持つ。コンテキストに属する。
(e) ファサード(FACADE):ローをソートして検索を可能にするデータ。インデックス機能の中心となるもの。レキシコンに属する。
【0042】
(3)トランザクション
トランザクションとは、ユニスペース・サービスに参加しているアプリケーションの要求に応じて共有データを一貫して参照および更新する操作を意味する。トランザクションが一度に操作対象とすることが出来るデータの集合は、ひとつのレキシコンセットのみである。
本システムでは、トランザクションを用いて共有データを更新する際は、オリジナルデータが存在する特定のサイト(以下、ベースサイト又はオリジナルサイトと呼ぶ)で更新後、同じユニスペースを構成する他サイトに更新結果(以下、レプリケーションと呼ぶ)をマルチキャストすることでデータの一貫性を保持している。なお、このベースサイトはレキシコンセット毎に指定することができる。
アプリケーションの発行するトランザクションを、本システムでは、(a) ローカル参照、(b) ローカル更新、(c) リモート更新の3つに区別する。
【0043】
(a)ローカル参照
トランザクション操作が共有データの参照だけの場合で、完全にローカルな主記憶データへのアクセスとして処理され、ネットワークのトラフィックは一切発生しない。言い換えれば、トランザクションの実行によりデータが参照されるだけで、なんら変更されないので、自サイトがオリジナルサイトであるかレプリカサイトであるかを問わず、常に自サイトの主記憶データにアクセスすることにより、トランザクションの実行処理がなされる。
【0044】
(b) ローカル更新
トランザクションを発行したアプリケーションが存在するサイトがオリジナルサイトの場合。つまり、自サイトでデータ更新をすることができ、更新後、他のサイトにその更新データをマルチキャスト送信することにより、常に各ホストで同一のデータを利用できるようにする機能をいう。
【0045】
(c) リモート更新
トランザクションを発行したアプリケーションが存在するサイトがレプリカサイトの場合。つまり、自サイトのデータはレプリカデータなので、データ更新をすることができず、そのトランザクションをオリジナルサイトに転送し、オリジナルサイトでデータ更新後、その更新データをレプリケーション受信することにより、常に各ホストで同一のデータを利用できるようにする機能をいう。
なお、自サイトがレプリカサイトであり、且つ、トランザクションを発行したアプリケーションが存在しない場合には、オリジナルサイトからレプリケーションされた更新データを、自サイトに反映させることにより、常に各ホストで同一のデータを利用できるように構成されている。
【0046】
前記(b) のローカル更新と(c) のリモート更新の区別は、ベースサイトがトランザクション受付サイトと同じであるか否かに依存して区別される。(b) のローカル更新の場合はローカルな主記憶データを更新したタイミング、(c) のリモート更新の場合はトランザクションをベースサイトに転送し共有データを更新後、レプリケーションを受信してローカルデータを更新したタイミングで終了する。あくまでもこのローカル更新とリモート更新の区別は本システム内で行われるので、アプリケーションがこれについて意識することはない。
【0047】
(5)リトリーブ
リトリーブとは、システムの起動時またはレキシコンセットデータを主記憶上に格納するときに、オリジナルデータやレプリカデータを設定された通りに利用可能な状態にする機能である。自ホストの他から(オリジナルでもレプリカでもよい)からレキシコンセットデータのすべてをネットワーク経由で受け取る。
【0048】
また、リトリーブ要求を送る相手先のホストのリストを指定することができる。あるルールに従ってホストリストの中のホストに対して送信要求を出す。オリジナルやレプリカの配置、ネットワークの帯域幅、マシンのスペックなどによってホストリストを決定することで、システム構成に適した設定をとることができる。
なお、一般には、データはネットワークを通じて各ホストに配置されるが、システムの起動時においては、ネットワークからのリトリーブに失敗した時はファイルからのロードも可能であり、また、ネットワークリトリーブをする前にファイルからのロードを行うことも可能である。
【0049】
(6)レプリケーション
レプリケーションとは、更新トランザクションによるデータの変更を他のマシンへマルチキャストで送信する機能である。オリジナルで更新トランザクションを実行し、更新分のみをマルチキャストでレプリカへ送信する。レプリカ側はそれを受信し、レプリカデータへ反映する。
【0050】
(7)バックアップ
バックアップとは、2次記憶装置へレキシコンセットの内容を保存する機能である。2次記憶へバックアップするかどうかはオプションで指定できるので(適宜指定することができるように構成されているので)、要求するスループットや信頼性向上などに柔軟に対応したシステム構成をとることができる。
バックアップ機能で保存されたデータは、起動時や障害回復時のリトリーブ機能で使用される。2次記憶装置へのバックアップ処理は、トランザクション処理と非同期で処理されるため、トランザクション処理のスループットを低下させることはなく、主記憶データ管理の高速性を維持できる。
【0051】
(8)ネットワークを構成するサイト等に関する用語
ローカルサイト:自サイトのこと
リモートサイト:他のサイトのこと
オリジナルサイト:オリジナルデータを持っているサイト
レプリカサイト:レプリカデータ(コピー)を持っているサイト
【0052】
[3.各ホストの構成…図2]
次に、各ホストの構成を図2によって説明する。
前記の全体構成図で説明したように、各ホストの主記憶領域には、それぞれデータベース管理システム1が配置されている。この管理システム1は、複数の処理部あるいは設定部と、これらの処理や設定を反映させるためのレキシコンセット2と呼ばれるデータベースを備えている。また、システム管理アプリケーションや業務アプリケーションとの接点(窓口)となるトランザクション受付部3および各ホストをネットワークに接続するための送信部および受信部4,5を備えている。
【0053】
この管理システムが備えている複数の処理部および設定部としては、次のものが用意されている。
(1)システム構成設定部11
このシステム構成設定部11は、ベースホスト設定部111、バックアップホスト設定部112、レキシコン定義部113およびマルチキャストアドレス設定部114を備えている。
このうち、ベースホスト設定部111は、複数のホストのいずれかにオリジナルデータをおくか、すなわち、あるレキシコンセットのベース(オリジナル)をネットワーク上のどのホストに置くかを定義する。バックアップホスト設定部112は、本システムが稼動中、各ベースホストについて、1つ以上のバックアップホストが存在するように配置する。レキシコン定義部113は、ベースホスト設定部111によって定義されたレキシコンセットについて、そのレキシコンに属するレキシコンを決定する。マルチキャストアドレス設定部114は、各レキシコンセットについて、システム起動時のパラメータとしてデフォルトのマルチキャストアドレスを設定したり、デフォルトと異なるマルチキャストアドレスを設定する。
【0054】
(2)トランザクション管理部12A
トランザクション管理部12Aは、アプリケーションが利用するトランザクションと、このトランザクションによって実行されるトランザクション関数を定義したり、このトランザクション関数がアクセスするレキシコンセットとの関係を定義する。また、トランザクションを利用してレキシコンセット内のデータの参照・更新・検索などの処理を行う。このトランザクション管理部12Aについては、図5にて詳述する。
【0055】
(3)トランザクション処理部12B
トランザクション処理部12Bは、前記トランザクション管理部12Aの設定に従い、アプリケーションからのトランザクションの実行依頼があった場合に、そのトランザクションに対応するトランザクション関数を選択して、このトランザクション関数を用いてレキシコンセット内のデータの参照・更新・検索などの処理を行う。
【0056】
(4)データ常駐管理部13
このデータ常駐管理部13は、各ホストにどのレキシコンセットを常駐させるか、すなわち、各ホストの業務アプリケーションがどのレキシコンセットのデータにアクセス可能かを、あらかじめ設定する処理を行う。また、システムの稼働時には、必要なデータをベースホストから各レプリカサイト呼び出すリトリーブ処理や、新たなレキシコンセットを所定のホストに追加常駐させたり、常駐を解放したりする常駐状態の変更処理も行う。
【0057】
(5)レプリケーション処理部14
このレプリケーション処理部14は、システム構成設定部においてあらかじめ設定されたベースホストとレプリカサイトとの間で、データの同一性を確保するためのレプリケーション処理を行う。すなわち、業務アプリケーションが行うデータに対するアクセスは、トランザクションを介して行われるが、このトランザクションには前記用語の説明で述べたように、データを参照するだけの「参照」と、データが変更される「更新」の2種類の処理がある。また、そのTRを実行するホストにも「ローカルサイト…自サイトのこと」と「リモートサイト…他のサイトのこと」の2種類がある。そこで、このレプリケーション処理部14は、これらの種類に応じて、前記用語の説明で述べた次の処理を行う。
(a) ローカル参照処理
(b) ローカル更新処理
(c) リモート更新処理
【0058】
(6)ベースホスト切替処理部15
前記システム構成設定部11で設定したように、各レキシコンセットについては、そのベースホストがあらかじめ設定され、それに従ってシステムが稼働されている。ところが、ネットワーク上に接続されている各ホストの故障、保守点検、ネットワーク障害などの理由から、レキシコンセットのベースホストを他のホストへ切り替えることが必要となる場合がある。この場合、ネットワーク上に接続されている各ホストには、次の3種類の立場がある。すなわち、(a) 現在Baseホストであるホスト(旧Baseホスト)、(b) 次にBaseホストになる予定のホスト(新Baseホスト)、(c) 上記2種以外のホスト(他のホスト)である。
このベースホスト切替処理部15は、前記の3種のホストにおいては、旧ベースホストから新ベースホストあるいは他のホストへのオリジナルデータのレプリケーション、および切替後のベースホストがどのホストであるかを各ホスト間に周知させるための処理を行う。
【0059】
[4.システム構成の設定…図3]
前記図2に示したような各ホストについて、本実施の形態では、次のように各種の設定を行う。この設定は、システム管理アプリケーションから実行を依頼された登録用トランザクションが、各設定部や処理部にアクセスすることにより行われる。
すなわち、本システムは、各ホストの主記憶領域(本実施の形態では、ユニスペース/Unispaceと呼ぶ)上にレキシコンセットと呼ばれるデータ及びこのデータに対して様々な処理を行うためのトランザクションに関するデータのすべてを配置するものであるから、以降の例では、主記憶領域が予め正しく初期化されていることを前提とする。
【0060】
本システムを稼働するには、このように初期化完了された主記憶領域に対しては、各データを割り当て、各データに対する種々の設定を行うのであるが、そのために、専用のシステム管理アプリケーションが使用される。
トランザクションの登録もアプリケーションから行うものであるが、トランザクションの実行依頼を行うアプリケーションとトランザクションの登録を行うアプリケーションでは異なったアプリケーションを使用しているため、アプリケーションの種類は異なったものである。そこで、本実施の形態では、トランザクションの登録等のシステム設定を行うアプリケーションのことを、「システム管理アプリケーション」と呼び、トランザクションの実行依頼を行うアプリケーションを「ユーザ実行アプリケーション」と呼ぶ。
【0061】
(1)レキシコンセットの定義(S0301)
ユーザは、設計時に決めたレキシコンセットを定義する必要がある。すなわち、システム管理アプリケーションから発行したトランザクションを、トランザクション受付部3が受け付け、このトランザクション受付部3からの指令により、図2のシステム構成設定部11に設けられたベースホスト設定部111がレキシコンセットのベースホストを指定する。以下の例は、Unispaceと呼ばれる主記憶領域に対して、定義するレキシコンセットの「本名」と、このレキシコンセットのベース(オリジナル)をネットワーク上のどのホストに置くかを定義している。すなわち、"SampleLexiconSet"というレキシコンセットをベースホスト"host_1"で定義する。
DefineLexiconSet(&us,"SampleLexiconSet","host_1");
ただし、この状態では、レキシコンセットが定義されただけで、実体であるデータはどこにもない。
【0062】
(2)バックアップホストの定義(S0302)
すなわち、システム構成設定部11に設けられたバックアップホスト設定部112により、ユーザは、各レキシコンセットのバックアップホストを1つ以上定義するもので、その際、本システムが稼動している限り常に1つ以上のバックアップホストが存在するように配置する。また、バックアップホスト設定部112により、各バックアップホストにおいてファイルのバックアップを取るか否か決める。例えば、SampleLexiconSetのBackupホストとしてhost1、host2とし、host1ではファイルBackupし、host2ではファイルBackupしない場合は以下の通りである。
SetLexiconSetBackupHost(&us,"SampleLexiconSet","host1",TRUE);
SetLexiconSetBackupHost(&us,"SampleLexiconSet","host2",FALSE);
【0063】
(3)レキシコンの定義(S0303)
次に、レキシコン定義部113により、前記のように定義されたレキシコンセットの中にそのレキシコンセットに属するレキシコンを定義する。この場合、本実施の形態では、定義するレキシコンには、それが属するレキシコンセットと共に、そのレキシコンがシングルオリジナルかマルチオリジナルかのタイプも合わせて定義する。ここで、シングルオリジナルのレキシコンはレキシコンセットのベースホストでのみ更新操作(cell/contextの作成/変更 etc)が可能である。ベースホスト以外のホストでは、レキシコンの内容はベースホストでの更新操作の結果がレプリケーションされて反映される。マルチオリジナルのレキシコンでは、どこのホストでも更新操作が可能である。更新操作の結果はレプリケーションされず、更新結果はローカルにとどまる。
すなわち、"SampleLexiconSet"の中に2つのレキシコン"Lexicon_1"、"Lexicon_2"を定義する。"Lexicon1"をシングルオリジナルとし、"Lexicon2"をマルチオリジナルとする。
DefineLexiconInLexiconSet(&us,"SampleLexiconSet","Lexicon1",SingleORG);
DefineLexiconInLexiconSet(&us,"SampleLexiconSet","Lexicon2",MultiORG);
【0064】
(4)トランザクションライブラリの定義(S0304,S0305)
本システムにおいて、トランザクション関数とトランザクションは1対1に対応しており、トランザクション管理部12Aは、トランザクションの集合をライブラリとして定義し、このトランザクションライブラリをレキシコンセットに登録する。
例えば、トランザクションライブラリ"TRLIB"をレキシコンセット "SampleLexiconSet"に定義する。ライブラリは3つのトランザクション "tr1","tr2","tr3"からなる場合。
char *TrNames[3];
TrNames[0]="tr1"; TrNames[1]="tr2"; TrNames[2]="tr3";
DefineTransactionLibrary(&us,"SampleLexiconSet","TRLIB",3,TrNames);
このようにしてトランザクションが定義されたが、実行できるトランザクションの実体はまだない。
【0065】
(5)トランザクション名とトランザクション関数名の関連付け(S0306)また、トランザクション管理部12Aは、トランザクション名とトランザクション関数名を関連付ける。同時に、トランザクションのアクセス対象レキシコンとアクセス形態を決定し、トランザクションと関連付けてレキシコンセットに登録する。この時点で、トランザクションがどのレキシコンに対してアクセスされるか設定される。ここで、アクセス形態とは、参照または更新を示す。参照の場合は、トランザクションはレキシコンの内容の参照のみが許され、レキシコンの内容を書き換えることは不可能である。更新の場合は、レキシコンの内容を参照することも、内容を書き換えることも可能である。
例えば、3つのトランザクション "tr1","tr2","tr3"がそれぞれトランザクション関数 "tr1all", "tr2srh", "tr3upd"に関連付けられ、"tr1"はレキシコン "Lexicon1","Lexicon2"を更新し、"tr2"は"Lexicon1"のみ参照し、"tr3"は"Lexicon1"を更新し、"Lexicon2"を参照する場合は以下の通りである。
char *lex[2];
int mode[2];
lex[0]="Lexicon1"; lex[1]="Lexicon2";
mode[0]=TRUE; mode[1]=TRUE;
AttachTransactionToFunction(&us,"SampleLexiconSet","tr1","tr1all",2,lex,mode);
lex[0]="Lexicon1";
mode[0]=FALSE;
AttachTransactionToFunction(&us,"SampleLexiconSet","tr2","tr2srh",1,lex,mode);
lex[0]="Lexicon1"; lex[1]="Lexicon2";
mode[0]=TRUE; mode[1]=FALSE;
AttachTransactionToFunction(&us,"SampleLexiconSet","tr3","tr3upd",2,lex,mode);
この場合、トランザクション名とトランザクション関数名が関連付けられただけであり、まだトランザクションが実行できる状態ではない。
【0066】
(6)レキシコン配置の定義(S0307)
データ常駐管理部13は、レキシコンを配置するホストを定義する。各ホストで実行するトランザクションに必要なレキシコンだけを配置するのが最もリソース節約になる。計算機に余裕があるならば各ホスト同一の配置状況にしてもよい。例えば、レキシコンセット "SampleLexiconSet"の"Lexicon1"と"Lexicon2"をホスト "host1"に配置する場合は、以下の通りである。。
DefineHostOfLexiconResidence(&us,"SampleLexiconSet","Lexicon1","host1");
DefineHostOfLexiconResidence(&us,"SampleLexiconSet","Lexicon2","host1");
この状態では、レキシコンを配置するホストを定義しただけであり、実際にレキシコンのデータが配置されたり、またはレキシコンのデータを格納する主記憶領域が確保されない。実際にデータが配置され主記憶領域が確保されるのはレキシコンセットデータの常駐を行ったときである。
【0067】
(7)トランザクションライブラリとDLLファイルのロード(S0308)
次に、トランザクション管理部12Aは、トランザクション関数をライブラリ化したDLLファイルをトランザクションのライブラリと関連付けて、レキシコンセットが格納されている本システムが起動しているホストにロードする。ロードする時点でトランザクション関数名との関連付けができているトランザクションのみトランザクション関数ポインタとリンクされる。トランザクションライブラリ内のトランザクション全てに対して、トランザクション関数名の関連付けを見つけ出し、ロードしたDLLファイルからトランザクション関数名を用いてトランザクション関数ポインタを見つけ出してリンクする。例えば、トランザクションライブラリ "TRLIB"に対して、ホスト "host1" でDLLファイル"c:\gigabase\trfunc.dll"をロードする場合は以下の通りである。なお、ファイルタイプはDLLである。
LoadTransactionLibraryFile(&us,"SampleLexiconSet","TRLIB","host1","c:\gigabase\trfunc.dll",DLL);
【0068】
ここで初めてトランザクションと関数ポインタがリンクされたが、実際にトランザクションが実行できるためには実行するトランザクションのレキシコンセットが実行するホストにおいて常駐されていなければならない。
これで、トランザクション関数が本システムにロードされ、トランザクションとトランザクション関数の関連付けが完了した。このようにしてトランザクションを本システムに登録することにより、トランザクション関数は本システム上で実行され、本システム内でデータベースの操作が可能になる。
【0069】
(8)レキシコンセット別名の定義(S0309)
さらに、トランザクション処理部12Bでは、トランザクションの実行をアプリケーションから投げる際、レキシコンセットの別名を指定して実行できる。レキシコンセットの別名でトランザクションを実行したい場合は、トランザクションの実行より予め別名を定義する。例えば、レキシコンセット "SampleLexiconSet"に別名"ALIAS"を定義する場合は以下の通りである。
DefineLexiconSetAlias(&us,"SampleLexiconSet","ALIAS");
アプリケーションからトランザクションの実行を投げる場合、"SampleLexiconSet"だけでなく"ALIAS"でも投げられる。なお、本実施の形態では、システム管理アプリケーションではレキシコンセット別名を使用できないように構成する。
【0070】
(9)マルチキャストアドレスの設定(S0310)
本設定を行わなければ、ユーザ定義のレキシコンセットに関する通信は、システム起動パラメータで設定されたデフォルトのマルチキャストアドレスで行われる。そこで、システム構成設定部11におけるマルチキャストアドレス設定部114により、この設定を行うとデフォルトと異なるマルチキャストアドレスで通信を行うようになる。デフォルトマルチキャストアドレスと異なるマルチキャストアドレスでレキシコンセットの通信を行う場合は、設定する。
設定したマルチキャストアドレスでレキシコンセットデータの通信を行わせるには、本設定を行ってからレキシコンセットデータの常駐を行わなければならない。あるホストにおいてマルチキャストアドレスを設定する前にレキシコンセットデータの常駐済みの場合、既にデータの送受信を行っているためマルチキャストアドレスは変更されない。この場合はいったんレキシコンセットデータを非常駐として再び常駐させ直せば、設定したマルチキャストアドレスが有効になる。例えば、"SampleLexiconSet"にマルチキャストアドレス 232.122.32.93 を設定する場合は、以下の通りである。
unsigned int maddr;
maddr=(232<<24)+(122<16)+(32<<8)+93;
SetMulticastAddressForLexiconSet(&us,"SampleLexiconSet",maddr);
【0071】
(11)レキシコンセットの常駐(S0311)
ユーザはデータ常駐管理部13により、各ホストにおいてレキシコンセットの常駐を行うことで、データを主記憶領域にロードしトランザクション関数を実行できるようになる。本設定をするとき、どこからレキシコンセットのデータを取ってくるか指定しなければならない。これがリトリーブ要求先ホストである。
レキシコンセットを常駐させたいホストにおいて本システムが起動していない場合、実際のレキシコンセットデータの常駐動作であるリトリーブは動かず、常駐情報が定義されるだけである。この場合,実際にリトリーブが動くのは、次に本システムが起動されたときである。
【0072】
すなわち、レキシコンセットの常駐動作では、本システムが起動済みであると、データのリトリーブを行う。レキシコンセットデータのリトリーブが済むと、その時点でリンク済みであるTRが実行できるようになる。レキシコンセットデータのリトリーブが済むと、設定されているならばマルチキャストアドレスが使用できるようになる。また、レキシコンセットのリトリーブが動くとき、その時点でそのホストで配置が定義されているレキシコンだけが主記憶上にデータが格納される。
例えば、レキシコンセット "SampleLexiconSet"をホスト"host1"に配置する場合。そのときリトリーブ要求先ホストを " host2","host3"とする。
char *rethost[2];
rethost[0]="host2"; rethost[1]="host3";
LoadLexiconSetData(&us,"SampleLexiconSet","host1",2,rethost);
【0073】
[5.アプリケーションとトランザクション関数の実行手順…図4]
アプリケーションからトランザクション関数が呼び出されて一連の処理を実行する処理フローを図4および図7に示す。
(1) アプリケーションは、最初に本システムへの接続を行う(S0401)。
(2) アプリケーションは、本システムとのデータのやり取りをするための共有メモリを確保する(S0402)。
(3) アプリケーションは、トランザクション関数へ渡す入力パラメータを共有メモリへセットする(S0403)。
(4) アプリケーションは、トランザクションの実行依頼を本システムへ出す(S0404)。
(5) アプリケーションは、トランザクション関数の処理が終了するまで実行待ちに入る(S0405)。
(6) 本システムは、アプリケーションからトランザクションの実行依頼を受けると、指定されたトランザクション関数を起動する(S0406)。すなわち、図7に示すように、アプリケーションが、自己が実行しようとすると処理に対応するトランザクションの実行依頼を行うと、そのトランザクションに1対1に対応したトランザクション関数が選択され、そのトランザクション関数が起動される。
(7) トランザクション関数は、起動されると最初にアプリケーションからの処理に必要なパラメータを共有メモリから取り出す(S0407)。
(8) トランザクション関数は、次に、データベースへ参照、検索、更新、削除、追加などのアクセスを行う。このデータを使ってトランザクション関数の処理を行い、出力として必要なデータを作成する(S0408)。この場合、トランザクション関数は、システム管理アプリケーションにより予め登録されているレキシコンセットのレキシコンに対して、必要な処理を行う。
(9) トランザクション関数は、作成したデータを共有メモリにセットする(S0409)。
(10)トランザクション関数は、処理を終了する(S0410)。
(11)本システムは、トランザクション関数の処理が終了すると、トランザクションの終了通知をアプリケーションへ伝える(S0411)。
(12)アプリケーションは、終了通知を受け取ると、トランザクション関数の処理結果を共有メモリから読み出す(S0412)。
(13)アプリケーションは、共有メモリを開放する(S0413)。
(14)アプリケーションは、一連の処理が終わって本システムへのアクセスが不用になれば本システムからの切断を実行する(S0414)。
(15)アプリケーションは、終了する(END)。
【0074】
[6.参照トランザクションと更新トランザクションの実行]
前記のようなトランザクションの実行時において、ユーザアプリケーションから依頼されたトランザクションの種類、すなわち前記図4のステップS0408におけるデータベースへの参照、検索、更新、削除、追加などアクセス形態によって、本システム内の処理が次のように異なる。
【0075】
(1)参照トランザクション
トランザクションが、データベースに改変を加えることのない参照トランザクションの場合、トランザクション処理部12Bは、アクセス対象レキシコンに対してトランザクションを実行させる。そして、トランザクションの実行が終わった後、その実行結果をアプリケーションに対して通知する。この参照トランザクションは、データを参照するだけでその書き換えを行うことがないので、そのホストにあるデータがオリジナルデータであるか、レプリカデータであるかを問わず、各サイトで実行できる。
【0076】
(2)更新トランザクション
更新トランザクションの場合、実行を依頼したホストがオリジナルデータを持つか(以下、オリジナル側)、レプリカデータを持つか(以下、レプリカ側)によって処理が異なる。
まず、オリジナルデータを持つ場合は、参照トランザクションと同様にトランザクション処理部12Bがアクセス対象レキシコンに対してトランザクションを実行させ、実行結果をアプリケーションに通知する。
レプリカデータを持つ場合、トランザクションで直接レキシコンを更新することはできない。そこで、レプリカサイトのトランザクション処理部12Bがネットワークを介して、ベースホストのトランザクション処理部12Bにトランザクションの実行依頼を行う。ベースホストのトランザクション処理部12Bは、ベースホストに格納されているトランザクションを実行し、オリジナルデータのレキシコンを更新する。オリジナルデータが更新されると、レプリカサイトにその更新データがレプリケーションされ、レプリカサイトのデータが更新される。レプリカサイトのデータが更新されると、レプリカサイトのトランザクションはその実行結果をアプリケーションに結果を通知する。
【0077】
[7.トランザクションに関する設定]
このような本システムを実行するには、次のようなシステム構成を設定することが必要となる。このシステム構成の設定は、一般には、システム管理アプリケーションと呼ばれるプログラムによって行われる。
(1) レキシコンセット名とそのベースホスト(切り替え先候補)
(2) レキシコンセットとそれに含まれるレキシコン
(3) トランザクションライブラリとそれに含まれるトランザクション
(4) トランザクション名とこのトランザクションを実行するために必要なトランザクション関数
(5) トランザクションがアクセスするレキシコンとそのアクセス形態(参照/更新)
(6) レキシコンセットの別名(必要ならば)
(7) レキシコンセットを各ホストに反映させるために行うレプリケーション送信のマルチキャストアドレス(必要ならば)
(8) 各ホストで常駐させるレキシコンセット
(9) 各ホストに配置するレキシコン(常駐させるレキシコンセットに含まれている)
(10)各ホストでロードするトランザクションライブラリとそのDLLファイル名
(11)各レキシコンセットのバックアップホストとそれぞれファイルバックアップの有無
【0078】
[8.トランザクション管理部12Aの構成…図5]
以下、前記のようなトランザクションに関する設定を行うシステムの構成の一実施の形態を図5に示す機能ブロック図に従って説明する。
すなわち、本実施形態のトランザクション管理部12Aは、自サイトにおけるトランザクションの登録を管理するトランザクション登録管理部401を備えている。このトランザクション登録管理部401には、アプリケーションから依頼される各種の処理を実行するためのトランザクションが格納されたトランザクション格納部402、用意されている各トランザクションを処理対象のデータベースに合わせてグループ化するライブラリ登録部403、レキシコンアクセス形態設定部404およびトランザクション−トランザクション関数関連付け部405が設けられている。
【0079】
ライブラリ登録部403は、前記図3のステップS0304,S0305において説明したトランザクションライブラリの定義を行うものであり、一例として、下記に示すようなトランザクション−ライブラリ対応表503を作成して、トランザクションの集合をライブラリ502として定義すると共に、このライブラリ502をその処理対象であるレキシコンセット2に登録するものである。
【表1】
【0080】
レキシコンアクセス形態設定部404は、前記図3のステップS0306において説明したトランザクションのアクセス対象レキシコンとそのアクセス形態を登録するもので、一例として、下記のようなトランザクション−レキシコン対応表504を作成する。
【表2】
【0081】
トランザクション−トランザクション関数関連付け部405は、前記図3のステップS0306において説明したトランザクション名とトランザクション関数名を関連付けるもので、一例として下記のようなトランザクション−トランザクション関数対応表505を作成する。
【表3】
【0082】
前記トランザクション管理部12Aには、トランザクション関数をライブラリ化したDLLファイル406と、このDLLファイル406をその実行領域にロードするための処理を行うDLLロード部407が設けられている。このDLLロード部407には、DLL格納処理部408とライブラリ−DLL関連付け部409が設けられている。すなわち、DLL格納処理部408は前記DLLファイル406の内容をトランザクションプログラム格納領域508にロードし、ライブラリ−DLL関連付け部409に格納した位置を通知するものである。
【0083】
ライブラリ−DLL関連付け部409は、前記図3のステップS0308において説明したように、トランザクション関数をライブラリ化したDLLファイル406をトランザクションのライブラリ502と関連付けて、アクセス対象のレキシコンセット2に登録するものである。すなわち、このライブラリ−DLL関連付け部409は、トランザクションのライブラリ名と前記DLL格納処理部408によって得られたDLLファイルの格納位置の関連付けを行い、一例として、下記のようなライブラリ−DLL対応表509に記録する。
【表4】
【0084】
さらに、前記トランザクション登録管理部401には、レキシコンセットの別名を登録するための別名登録部410が設けられている。この別名登録部410は、前記図3のステップS0309を実行するものであり、アプリケーションからトランザクションの実行を依頼する際に、レキシコンセットの別名を指定して実行できるようにするものである。
【0085】
[9.トランザクション登録管理部の作用…図6]
以下、これらの各トランザクションの設定処理について、図6に示すフローチャートに従って具体的に説明する。
【0086】
まず、システム管理アプリケーションから、システム管理用トランザクションの実行依頼を発行すると、この実行依頼をトランザクション受付部3が受領して、トランザクション登録管理部401を起動する。そして、この登録管理部401において、まず、ユーザアプリケーションの実行時に使用するトランザクションをトランザクション格納部402に格納されている複数のトランザクション中から選択して、これをライブラリ502としてグループ化する(S0601)。そして、このようにしてグループ化されたトランザクションのライブラリ502を、ユーザアプリケーションがアクセスする対象であるレキシコンセット2に登録する(S0602)。この時点で、前記トランザクション−ライブラリ対応表503が作成されるもので、この対応表503には、例えば、各トランザクションTR1,TR2……がどのライブラリLibraryA,LibraryBに属しており、そのライブラリLibraryA,LibraryBがどのレキシコンセットLexiconSetA,LexiconSetBに登録されているかが記録される。
この場合、コンピュータ上で使用されるユーザアプリケーションの種類によって、必要とされるトランザクションが異なることが考えられるので、種々のアプリケーションに応じた複数のライブラリ502を用意し、これを各アプリケーションがアクセスするデータベース(レキシコンセット)に対して登録することにより、アプリケーション毎に必要とするトランザクションをあらかじめ用意することが可能となる。
【0087】
次に、前記ライブラリ502に登録されているトランザクションを一つ選択し(S0603)、このトランザクションとそのアクセス対象レキシコンについてアクセス形態を設定する(S0604)。すなわち、本実施の形態においては、ライブラリそのものは、アクセス対象のレキシコンセットに登録するのであるが、ライブラリに含まれている個々のトランザクションについては、実際にその処理対象となるレキシコンに対して登録する。例えば、前記の各表中のトランザクションTR1を選択した場合、そのアクセス対象であるレキシコンLexicon1と、このレキシコンLexicon1に対するアクセス形態「参照」が登録される。
【0088】
続いて、このトランザクションTR1と1対1に対応するトランザクション関数TRFunc1との関連づけを行い(S0605)、これらをレキシコンセットLexiconSetAに登録する(S0606)。これによって、前記トランザクション−レキシコン対応表504およびトランザクション−トランザクション関数対応表505(表のトランザクションTR1部分)が作成される。このようにして、すべてのトランザクションについて登録終了か否かを検証し(S0607)、すべてのトランザクションについて登録が終了した時点で、前記対応表504および505が完成する。
【0089】
なお、本システムにおいては、トランザクションとトランザクション関数は1対1に対応付けられるのであるが、アプリケーションが実行する処理はアプリケーションを使用するユーザ側の観点によって区分されるため、データ処理の観点で見た場合、多くは複数の処理で構成されている。そこで、アプリケーションが必要とする各種の処理についての共通部分を整理することにより、データ処理に適したトランザクションとそれに対応するトランザクション関数を設定することができる。
たとえば、ユーザ側から見た処理Aがデータ側アクセスの観点からはaとbとcという処理で構成されていて、他の処理Bがaとdとeという処理で構成されているなら、(処理a)と(処理b+処理c)、(処理d+処理e)、という3つの処理単位で構成し、これらの処理単位をトランザクションx,y,zとすれば、前記の処理Aはトランザクションx+y、処理Bはトランザクションx+zで実現できる。そこで、本システムにおいて、前記の各トランザクショントランザクションx,y,zをトランザクション関数として登録すると、この単位で再利用が可能になる。
【0090】
前記のようにしてトランザクションとトランザクション関数との関連付けが終了した後は、DLLロード部407のDLL格納処理部408により、トランザクションプログラム格納領域508に前記DLLファイルをロードし(S0608)、さらにトランザクションプログラム格納領域508におけるDLLファイルの格納位置とトランザクションのライブラリの関連付けを行う(S0609)。
すなわち、このDLLファイルをロードする時点でトランザクション関数名との関連付けができているトランザクションのみがトランザクション関数ポインタとリンクされる。トランザクション関数名と関連付けられていないトランザクションは関数ポインタとリンクされない。トランザクションライブラリ内のトランザクション全てに対して、トランザクション関数名の関連付けを見つけ出し、ロードしたDLLファイルからトランザクション関数名を用いてトランザクション関数ポインタを見つけ出してリンクする。
これで、トランザクション関数が本システムにロードされ、トランザクションとトランザクション関数の関連付けが完了する。このようにしてトランザクションを本システムに登録することにより、トランザクション関数は本システム上で実行され、本システム内でデータベースの操作が可能になる。
【0091】
なお、本システムにおいては、DLLファイルのロードが済んだ後に、新たにトランザクション名とトランザクション関数名の関連付けを行っても、そのトランザクションはトランザクション関数ポインタとリンクされない。またトランザクション名とトランザクション関数名との関連付けを変更しても、その変更がトランザクション関数ポインタの変更まで及ばない。
その場合は、いったんDLLファイルをアンロードし、トランザクションライブラリ内のすべてのトランザクションのリンクを抹消しておいて、再びDLLファイルをロードすれば、新たなトランザクション名とトランザクション関数名の関連付けによってトランザクションにトランザクション関数ポインタがリンクされる。なぜならば、トランザクション名とトランザクション関数名の関連付けは、トランザクション関数ポインタとのリンクの計画である。リンクの実行はDLLファイルのロードで行われる。計画はロードによって有効になるので、変更した計画を有効にするためには、ロードをやり直さなければならない。
【0092】
以上の図5および図6に述べたようにして、システム管理アプリケーションにより、トランザクションに関する各種の設定を行った状態においては、図8に示すように、アプリケーションが実行依頼するトランザクションとそれに対応するトランザクション関数、そのトランザクション関数のアクセス対象となるレキシコンセットおよびレキシコン、およびレキシコンセットに対する参照・更新のアクセス形態が設定された状態となる。
【0093】
このような設定処理がなされた状態において、ユーザアプリケーションが実行され、そこからトランザクションの実行依頼が発行された場合、トランザクション処理部は予め登録されている各種の対応表の内容に応じて、図9、図10および図11に示すような処理を行う。
すなわち、図9は、依頼された処理が参照トランザクションの場合を示すものである。この参照トランザクションは、前記のようにデータの改変を伴わないために、データベースがオリジナルレキシコンセットでもレプリカレキシコンセットであっても、直接トランザクションの実行が可能である。
【0094】
依頼された処理が更新トランザクションの場合には、アプリケーションの配置されたホストが、更新対象のレキシコンセットのベースホストであるかレプリカサイトであるかにより処理が異なる。図10は、アプリケーションの配置されたホストが、更新対象のレキシコンのベースホストである場合を示す。この場合は、自ホストのレキシコンセット中のレキシコンに対して、直接更新処理を行い、その実行結果を得ることができる。
【0095】
一方、図11は、アプリケーションの配置されたホストがレプリカサイトである場合で、この場合には、レプリカのデータを直接更新することはせず、ベースホストに対してオリジナルデータの更新処理を依頼する。そして、このオリジナルデータの更新結果をレプリケーションによってレプリカサイトに反映させるという手法で実行結果を得る。
【0096】
[11.別名登録の処理]
前記のように、本実施の形態においては、トランザクションの実行をアプリケーションから依頼するとき、トランザクションの実行対象であるレキシコンセットを指定する。この場合、レキシコンセットの指定方法としてレキシコンセットの定義時の名前(本名)だけでなく、別名を登録することを可能としている。そのため、レキシコンセットに別名を定義しその名前でトランザクション実行を依頼できる。
【0097】
例えば、本名 LexiconSet_A というレキシコンセットに別名 Online と付ける。一方、本名 LexiconSet_Bというレキシコンセットに Maintainance という別名を付ける。
【表5】
【0098】
このような設定状態において、データを操作するアプリケーションとして、通常運用状態で動作するアプリケーション群Xと、データ構築のためのアプリケーションYがある。通常運用状態で動作するアプリケーション群Xではトランザクションの実行を依頼するとき、常にレキシコンセットの指定を Online としている。データ構築のアプリケーション群Yではトランザクションの実行を依頼するとき、常にレキシコンセットの指定を Maintainance としている。そして、LexiconSet_AにもLexiconSet_Bにもアプリケーション群Xで使用するトランザクションとアプリケーション群Yで使用するトランザクションが登録されているとする。
【表6】
【0099】
この時点での別名の付け方により、このときアプリケーション群XはLexiconSet_A上で実行される。アプリケーション群YはLexiconSet_B上で実行される。
今、LexiconSet_B(Maintainance)でのデータ構築が完了し、新しいデータで通常運用状態で動作するアプリケーション群Xを動作させたいならば、別名を交換すればよい。
【表7】
【0100】
別名を交換すると、自然にアプリケーション群XのトランザクションはLexiconSet_B上で実行され、アプリケーション群YはLexiconSet_Aで実行されるようになる。このようにアプリケーションの変更なく、操作対象のレキシコンセットを変更できる。
【0101】
[12.実施の形態の効果]
以上述べたように、本実施の形態によれば、トランザクションについてあらかじめ各種の設定を行うことが可能になるので、次のような作用効果が発揮される。
【0102】
(1)1つのデータベースに「別名」という形で複数の識別子を登録あるいは削除できるので、アプリケーションが発行するトランザクションのデータベース指定識別子を変更することなく、別のデータベースに対するトランザクションとして処理することができる。すなわち、アクセスするデータベースを容易に切り替えることができる。
【0103】
(2)レキシコンセット(データベース)全体ではなく、それを構成するレキシコン(部分)ごとに参照/更新をチェックすることによって、レキシコンによってオリジナルサイトが異なる場合やマルチオリジナルデータ(レキシコン)を更新するトランザクションをローカルと判定することができる。
【0104】
(3)トランザクションごとではなく、レキシコンセットにライブラリ(複数可)を対応付け、ライブラリにサイト毎にDLLファイルを対応付けることで、サイト毎にDLLファイルの構成内容が異なる場合でも効率的にトランザクション関数名とプログラムのリンクを行うことができる。
【0105】
[13.他の実施の形態]
(1)実施例の説明では、トランザクションの実行をすべてトランザクション関数の呼出として説明したが、トランザクションの実行の形態はこれに限られるものではない。例えば、個々のトランザクションには具体的なデータ操作手続の記述が含まれており、本システムが一定の手順に従ってそれを解釈実行するという形態でも構わない。
【0106】
(2)実施例の説明では、「複数のマシン」を物理的に異なるマシンと、通信ネットワークをそれらの間の物理的媒体を含む通信手段として想定したが、これを論理的に異なるマシン、例えば同一マシン内の異なるプロセスを対象として実施しても構わない。その場合には、各(論理)マシンの識別に異なる手段(プロセスID等)を使用すればよい。また、本システムが管理対象とするデータベース(レキシコンセット)は、1つでも複数でも構わない。
【0107】
(3)レプリケ−ションデ−タを伝達する手段としての通信ネットワ−クとトランザクションを転送する手段としての通信ネットワ−クは物理的/論理的に同一のものを用いても異なるものを用いてもよい。多数のレプリカサイトに伝送するにはマルチキャスト/ブロ−ドキャストのネットワ−クを使用するのが効率的な場合が多いが、本発明の実施はそれに限定されるものではない。一方、トランザクションの転送は通常1対1通信で足りるが、実行すべきでないサイトが受信した場合はそのサイトの判断で実行しないあるいは破棄する等の処理を行なうという条件でマルチキャスト/ブロ−ドキャストのネットワ−クを採用することも可能である。
【0108】
(4)前記のようにトランザクションには、各種の属性を付与するため識別子(トランザクション名等)が含まれている。この識別子に対して、例えば実行すべきトランザクション関数を対応付けるが、この識別子は付与すべき属性の種類に応じて必要な数を設定すればよい。
トランザクションが操作の対象とするのは、1つのレキシコンセットとする。前記の実施の形態では、ユニスペースが複数のレキシコンセットを含むことができるので、トランザクションには、操作対象のレキシコンセットを明記する。このレキシコンセット名を上記識別子の1つと考えても良い。もちろん、他の識別子から操作対象レキシコンセットを判別する手段を設けた実施の形態も可能で、レキシコンセット名の明記は必須ではない。
【0109】
【発明の効果】
以上説明したように、本発明によれば、下記に述べるような優れた効果を発揮するトランザクション型データベースシステムを提供することができる。
【0110】
(1)リモート/ローカル構造による柔軟性
本発明で提供している分散システムは、リモート/ローカル構造と呼ばれるシステムのハードウェア構成に依存しない方式である。アプリケーション・ソフトウェアはシステムのハードウェア構成に関する実装を行う必要が無いため、ソフトウェア開発をシステム構築から独立させることができる。そのため、システム構築のためのコーディングは一切不要で、システム構築/設定作業はすべてシステム運用環境を用いて行うことができる。
【0111】
リモート/ローカル構造は、アプリケーション・ソフトウェアをコンピュータのハードウェア構成から独立させる。そのため、アプリケーションはシステム物理構造、すなわちハードウェアの物理構成やデータがどのコンピュータ上に実装されているかあるいはデータ整合性など、まったく意識する必要がない。したがって、業務ロジックの設計・実装に専念でき、開発生産性が向上する。このように本発明によれば、アプリケーション開発者は、リモート実行、ローカル実行を意識せずにアプリケーションの開発ができるため、アプリケーションが単純になり、生産性が上がる。
【0112】
(2)トランザクション関数による生産性向上
本発明では、アプリケーションからのデータへのアクセスはトランザクション関数を通じて行われる。すなわち、トランザクション関数によってデータのカプセル化を実現している。データのカプセル化は、データ構造の変更がアプリケーションへ波及しないため、データ操作を行うトランザクションを部品化できる。特に、本発明はリモート/ローカル構造のシステム構成を取っているため、トランザクション関数はシステムに関する実装を一切含まない。そのため高い独立性を持つ部品ができ再利用性が一層高まり、トランザクション関数を再利用することで開発生産性が著しく向上する。
【0113】
(3)システム停止を伴わない機能変更
本発明のシステム設定は、データ構造の変更やトランザクション関数の追加などの機能については、動的に変更することができる。そのため、これらの機能についてはシステムを停止させることなく機能変更ができるので、システム設定変更の対応が非常に楽である。例えば、トランザクションと対応するトランザクション関数は自由に変えることができるため、アプリケーションはトランザクション名だけを意識すればよい。また、あらかじめトランザクションにデータに対するアクセス権を与えることにより、アプリケーションによるデータの誤操作を防ぐことができる。このようにシステムを停止させずに機能の入れ替えが可能であることは、「保守性の向上」「システム設定変更の容易さ」が効果として挙げられる。
【図面の簡単な説明】
【図1】本発明のトランザクション処理型データベースシステムの全体構成を示す機能ブロック図である。
【図2】図1のデータベースシステムにおける各ホストの構成を示すブロック図である。
【図3】図1のデータベースシステムにおけるシステム構成の設定順序を示すフローチャートである。
【図4】図1のデータベースシステムにおけるアプリケーションとトランザクション関数の実行手順を示すフローチャートである。
【図5】図1のデータベースシステムにおけるトランザクション管理部の構成を示すブロック図である。
【図6】図5のトランザクション管理部の動作を示すフローチャートである。
【図7】アプリケーションによるトランザクション実行依頼時の処理を示すブロック図である。
【図8】システム管理アプリケーションによるトランザクションの各種の設定状態を示すブロック図である。
【図9】参照トランザクションの実行状態を示すブロック図である。
【図10】ベースホストのオリジナルデータに対する更新トランザクションの実行状態を示すブロック図である。
【図11】レプリカサイトのレプリカデータに対する更新トランザクションの実行状態を示すブロック図である。
【符号の説明】
1…データベース管理システム
2…レキシコンセット
21…レキシコン
3…トランザクション受付部
4…送信部
5…受信部
11…システム構成設定部
12A…トランザクション管理部
12B…トランザクション処理部
13…データ常駐管理部
14…レプリケーション処理部
15…ベースホスト切替部
401…トランザクション登録管理部
402…トランザクション格納部
403…ライブラリ登録部
404…レキシコンアクセス形態設定部
405…トランザクション−トランザクション関数関連付け部
406…DLLファイル
407…DLLロード部
408…DLL格納処理部
409…ライブラリ−DLL関連付け部
410…レキシコンセット別名登録部
502…ライブラリ
503…トランザクション−ライブラリ対応表
504…トランザクション−レキシコン対応表
505…トランザクション−トランザクション関数対応表
508…トランザクションプログラム格納領域
509…ライブラリ−DLL対応表
Claims (7)
- コンピュータの主記憶領域に配置されたデータベースと、
前記データベースに対する処理を実行するためのトランザクション処理部と、
このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部を備え、
トランザクション管理部は、各トランザクションを実行するのに必要なトランザクション関数を用意しておき、前記トランザクションが発行された場合には、前記トランザクション処理部により発行されたトランザクションに対応するトランザクション関数を選択させ、このトランザクション関数を用いてデータベースに対する処理を実行させるものであり、
前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記トランザクション管理部において、前記レキシコンに対する処理を行う1つあるいは複数のトランザクションが、トランザクションライブラリとしてこのレキシコンセットに登録され、
前記トランザクション管理部において、前記トランザクション関数をDLLファイルとして格納し、このDLLファイルと前記トランザクションライブラリとを関連付け、前記トランザクションライブラリに登録されたトランザクションの実行時には、前記ライブラリに関連付けられたDLLファイルを呼び出して、そこに格納されたトランザクション関数を実行することを特徴とするトランザクション処理型データベースシステム。 - コンピュータの主記憶領域に配置されたデータベースと、
前記データベースに対する処理を実行するためのトランザクション処理部と、
このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部を備え、
前記トランザクション管理部には、実行すべきトランザクションに対応するトランザクション関数を予め選択するためのトランザクション登録管理部と、選択されたトランザクション関数をロードしてデータベースに対して処理を行わせるトランザクション関数ロード部とが設けられ、
前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記トランザクション管理部において、前記レキシコンに対する処理を行う1つあるいは複数のトランザクションが、トランザクションライブラリとしてこのレキシコンセットに登録され、
前記トランザクション管理部において、前記トランザクション関数をDLLファイルとして格納し、このDLLファイルと前記トランザクションライブラリとを関連付け、前記トランザクションライブラリに登録されたトランザクションの実行時には、前記ライブラリに関連付けられたDLLファイルを呼び出して、そこに格納されたトランザクション関数を実行することを特徴とするトランザクション処理型データベースシステム。 - ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、
ある特定のコンピュータに格納されたデータをオリジナルデータとし、このオリジナルデータを有するコンピュータをベースホストとすると共に、ある特定のコンピュータとは異なる他のコンピュータには、前記ベースホストに格納されているオリジナルデータと同一のレプリカデータを格納し、このレプリカデータを格納したコンピュータをレプリカホストとし、
前記各ホストの主記憶領域上には、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部と、データベースに対する種々の処理を行うトランザクションを実行させるためのトランザクション処理部と、このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部を備え、
前記トランザクション管理部は、各トランザクションの実行に必要なトランザクション関数を用意しておき、トランザクション処理部は、トランザクションが発行された場合には、発行されたトランザクションに対応するトランザクション関数を選択し、このトランザクション関数を用いてデータベースに対する処理を実行させるものであり、
前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記トランザクション管理部において、前記レキシコンに対する処理を行う1つあるいは複数のトランザクションが、トランザクションライブラリとしてこのレキシコンセットに登録され、
前記トランザクション管理部において、前記トランザクション関数をDLLファイルとして格納し、このDLLファイルと前記トランザクションライブラリとを関連付け、前記トランザクションライブラリに登録されたトランザクションの実行時には、前記ライブラリに関連付けられたDLLファイルを呼び出して、そこに格納されたトランザクション関数を実行することを特徴とするトランザクション処理型データベースシステム。 - ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、ある特定のコンピュータに格納されたデータをオリジナルデータとし、このオリジナルデータを有するコンピュータをベースホストとすると共に、
ある特定のコンピュータとは異なる他のコンピュータには、前記ベースホストに格納されているオリジナルデータと同一のレプリカデータを格納し、このレプリカデータを格納したコンピュータをレプリカホストとし、
前記各ホストの主記憶領域上には、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部と、データベースに対する種々の処理を行うトランザクションを実行させるためトランザクション処理部と、このトランザクション処理部によって実行されるトランザクションを管理するトランザクション管理部を配置し、
前記トランザクション管理部には、発行されたトランザクションの受付部と、受け付けたトランザクションに対応するトランザクション関数を選択するためのトランザクション登録管理部と、選択されたトランザクション関数をロードしてデータベースに対して処理を行わせるトランザクション関数ロード部とが設けられ、
前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記トランザクション管理部において、前記レキシコンに対する処理を行う1つあるいは複数のトランザクションが、トランザクションライブラリとしてこのレキシコンセットに登録され、
前記トランザクション管理部において、前記トランザクション関数をDLLファイルとして格納し、このDLLファイルと前記トランザクションライブラリとを関連付け、前記トランザクションライブラリに登録されたトランザクションの実行時には、前記ライブラリに関連付けられたDLLファイルを呼び出して、そこに格納されたトランザクション関数を実行することを特徴とするトランザクション処理型データベースシステム。 - 前記トランザクションが、処理対象であるデータの変更を伴わない参照トランザクションと、データの変更を行う更新トランザクションとを備え、トランザクション管理部において、前記レキシコンセット内のレキシコンに対して、参照あるいは更新のいずれかのトランザクションがアクセスするかをあらかじめ設定しておくことを特徴とする請求項1ないし請求項4のいずれか1つに記載のトランザクション処理型データベースシステム。
- 前記トランザクション管理部が、トランザクションのアクセス対象となるレキシコンセットに対して、本名と別名とを登録するものであり、トランザクションの実行時にレキシコンセットの本名と別名のいずれでもトランザクションが登録されたレキシコンセットに対してアクセス可能としたことを特徴とする請求項1ないし請求項4のいずれか1つに記載のトランザクション処理型データベースシステム。
- 前記複数のホストのいずれかに格納されたデータベースに、前記トランザクション管理部によって作成されたシステム管理データのオリジナルデータが格納され、このシステム管理データのオリジナルを有するホストには、システム管理アプリケーションプログラムと、このシステム管理アプリケーションプログラムによって実行されるシステム管理用トランザクションが配置され、前記システム管理用トランザクションは、前記トランザクション処理部が実行する各トランザクションと、各トランザクションの処理の対象となるデータとを関連付けるものであることを特徴とする請求項1ないし請求項4のいずれか1つに記載のトランザクション処理型データベースシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001101713A JP4050479B2 (ja) | 2001-03-30 | 2001-03-30 | トランザクション処理型データベースシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001101713A JP4050479B2 (ja) | 2001-03-30 | 2001-03-30 | トランザクション処理型データベースシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002297430A JP2002297430A (ja) | 2002-10-11 |
JP4050479B2 true JP4050479B2 (ja) | 2008-02-20 |
Family
ID=18954991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001101713A Expired - Fee Related JP4050479B2 (ja) | 2001-03-30 | 2001-03-30 | トランザクション処理型データベースシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4050479B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005173823A (ja) * | 2003-12-09 | 2005-06-30 | Canon Inc | Webアプリケーション及びそのデータ共有方法、並びにプログラム |
JP2015038641A (ja) * | 2010-04-19 | 2015-02-26 | 株式会社エクサ | トランザクション管理プログラム |
-
2001
- 2001-03-30 JP JP2001101713A patent/JP4050479B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002297430A (ja) | 2002-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112099918B (zh) | 容器化环境中的集群的实时迁移 | |
US5664155A (en) | Dynamically assigning a dump space in a shared data facility to receive dumping information to be captured | |
US6081826A (en) | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application | |
US6047312A (en) | System for replicating and associating file types with application programs among plurality of partitions in a server | |
US7555541B2 (en) | Method and apparatus for managing configuration information in a distributed computer system | |
EP1932322B1 (en) | System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases | |
US6549996B1 (en) | Scalable multiple address space server | |
US7617218B2 (en) | Persistent key-value repository with a pluggable architecture to abstract physical storage | |
JP3526474B2 (ja) | ネットワークにおける配布情報管理システム | |
US20070112812A1 (en) | System and method for writing data to a directory | |
US20040107225A1 (en) | Mechanism for replicating and maintaining files in a spaced-efficient manner | |
JP2006202337A (ja) | データ処理の方法及び装置 | |
US8572201B2 (en) | System and method for providing a directory service network | |
US7228352B1 (en) | Data access management system in distributed processing system | |
US20070106815A1 (en) | System and method for routing directory service operations in a directory service network | |
JP4131781B2 (ja) | 分散処理型データベース管理システム | |
JP4131780B2 (ja) | 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム | |
KR102598619B1 (ko) | 데이터베이스 관리 서비스 제공 시스템 | |
JP4050479B2 (ja) | トランザクション処理型データベースシステム | |
US9922031B2 (en) | System and method for efficient directory performance using non-persistent storage | |
JP2002297593A (ja) | ベースホスト切替型データベース管理システム | |
JP2002197002A (ja) | 自律分散型コンテンツ配信システム及び方法 | |
JP3330006B2 (ja) | 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに | |
JPH10510377A (ja) | コンピュータ制御されたシステム | |
Fong et al. | MAP application layer interface and application layer management structure: part I: management structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071029 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071129 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121207 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121207 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131207 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |