(57)【要約】【課題】共用ディスククライアント方式のデータベース管理システムのメリットを生かしつつ、データアクセス競合の発生頻度を抑えられるようにする。【解決手段】アプリケーションサーバノード2は、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用するDBインスタンスのIDが優先順位を付して登録されたDBインスタンス振り分け管理テーブル222と、DBインスタンスの状態情報が登録されたDBインスタンス状態管理テーブル223を備えている。クライアントノード１からアクセスするデータのプライマリキーを含む処理要求が送られてくると、DBインスタンス振り分け制御部22が、上記プライマリキーに対応付けてDBインスタンス振り分け管理テーブル222にDBインスタンスIDが登録され、且つ状態情報が正常を示しているDBインスタンスの中から優先順位が最も高いDBインスタンスを選択する。【選択図】図１
2007206913.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備えたデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信する構成を有し、
前記アプリケーションサーバノードが、前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、前記複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択する振り分け制御部を備えたことを特徴とするデータベースアクセスシステム。
【請求項２】
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備え、且つ前記複数のデータベースサーバノードがそれぞれデータベースインスタンスを有するデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信する構成を有し、
前記アプリケーションサーバノードが、
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルと、
前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定する振り分け制御部とを備えたことを特徴とするデータベースアクセスシステム。
【請求項３】
請求項２記載のデータベースアクセスシステムにおいて、
前記アプリケーションサーバノードが、前記複数のデータベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記振り分け制御部が、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンスＩＤが登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択する構成を有することを特徴とするデータベースアクセスシステム。
【請求項４】
請求項３記載のデータベースアクセスシステムにおいて、
前記アプリケーションサーバノードが、
前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記振り分け制御部において選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理するトランザクション管理部を備えたことを特徴とするデータベースアクセスシステム。
【請求項５】
クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、データベース管理システムを構成する複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択する振り分け制御部を備えたことを特徴とするアプリケーションサーバノード。
【請求項６】
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルと、
クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定する振り分け制御部とを備えたことを特徴とするアプリケーションサーバノード。
【請求項７】
請求項６記載のアプリケーションサーバノードにおいて、
データベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記振り分け制御部が、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンス識別子が登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択する構成を有することを特徴とするアプリケーションサーバノード。
【請求項８】
請求項７記載のアプリケーションサーバノードにおいて、
前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記振り分け制御部において選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理するトランザクション管理部を備えたことを特徴とするアプリケーションサーバノード。
【請求項９】
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備えたデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信する構成を有し、
前記アプリケーションサーバノードが、前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、前記複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択することを特徴とするデータベースアクセス方法。
【請求項１０】
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備え、且つ前記複数のデータベースサーバノードがそれぞれデータベースインスタンスを有するデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信し、
前記アプリケーションサーバノードが、
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルを備え、且つ、
前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定することを特徴とするデータベースアクセス方法。
【請求項１１】
請求項１０記載のデータベースアクセス方法において、
前記アプリケーションサーバノードが、前記データベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記アプリケーションサーバノードが、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンス識別子が登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択することを特徴とするデータベースアクセス方法。
【請求項１２】
請求項１１記載のデータベースアクセス方法において、
前記アプリケーションサーバノードが、前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理することを特徴とするデータベースアクセス方法。
【請求項１３】
コンピュータを、
クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、データベース管理システムを構成する複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択する振り分け制御部として機能させるためのプログラム。
【請求項１４】
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルを備えたコンピュータを、
前記クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定する振り分け制御部として機能させるためのプログラム。
【請求項１５】
請求項１４記載のプログラムにおいて、
前記コンピュータが、前記データベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記振り分け制御部が、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンス識別子が登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択する構成を有することを特徴とするプログラム。
【請求項１６】
請求項１５記載のプログラムにおいて、
前記コンピュータを、
前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記振り分け制御部において選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理するトランザクション管理部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースをアクセスするデータベースアクセス技術に関し、特に、共用ディスククラスタ方式のデータベース管理システムを利用したデータベースアクセス技術に関する。
【背景技術】
【０００２】
データベース管理システムは、これが停止するとシステム停止につながる重要なポイントであり、その可用性を高める工夫がされてきた。その１つがデータベースサーバノードのクラスタ化である（例えば、特許文献１参照）。クラスタとは、１つのシステムとして連動する、独立したサーバノードのグループである。つまり、データベース管理システムを構成するデータベースサーバノードを多重化することにより耐障害性を高めるようにしている。
【０００３】
クラスタ・ハードウェアの実装方式には主に、次の２つの方式がある。
・共用ディスククラスタ方式
・シェアード・ナッシング・クラスタ方式
【０００４】
共用ディスククラスタ方式は、全てのデータベースサーバノードが、全てのディスクに直接アクセスする方式である。一方、シェアード・ナッシング・クラスタ方式は、各データベースサーバノードが、個々のディスクにアクセスする方式である。
【０００５】
昨今データベース管理システムの進化により、共用ディスククラスタ方式が利用されるようになってきた。共用ディスククラスタ方式を利用すると、全てのデータベースサーバノードが任意のデータにアクセス可能であるため、データベースサーバノードのリソースを効率的に利用することができる。また、一部のデータベースサーバノードに障害が発生しても、別のデータベースサーバノード経由でデータにアクセスできる、といったメリットがある。
【０００６】
一方、従来から、データベースの格納エリアをユーザ毎のレンジ（ファイル）に分割しておき、各ユーザは、自身のファイルにアクセスする場合には、そのユーザに対して付与されているキー情報を含んだ処理要求をデータベース管理システムに対して発行し、データベース管理システムでは、上記処理要求中のキー情報に基づいてアクセスするファイルを決定するという技術も知られている（例えば、特許文献２参照）。しかし、この特許文献２に記載されている従来の技術は、データベースサーバノードをクラスタ化したデータベース管理システムに関するものではない。
【０００７】
【特許文献１】特開２００２−２６８９３３号公報
【特許文献２】特開平３−４２７４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
共用ディスククラスタ方式のデータベース管理システムは、上述したようにデータベースサーバノードのリソースを効率的に利用でき、且つ耐障害性を高めることができるというメリットを有するが、その一方、全てのデータベースサーバノードが全てのディスクにアクセス可能であるがゆえのデメリットもある。即ち、アプリケーションプログラムから利用するデータベースサーバノードを無作為に決定してデータベースにアクセスしたのでは、データベースサーバノード間にデータアクセス競合が発生し、システム性能が低下してしまうというデメリットがある。
【０００９】
〔発明の目的〕
そこで、本発明の目的は、リソースを効率的に利用でき、且つ耐障害性を高いものにすることができるといった共用ディスククライアント方式のデータベース管理システムのメリットを生かしつつ、データアクセス競合の発生頻度を抑えられるようにすることにある。
【課題を解決するための手段】
【００１０】
本発明にかかる第１のデータベースアクセスシステムは、
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備えたデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信する構成を有し、
前記アプリケーションサーバノードが、前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、前記複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択する振り分け制御部を備えたことを特徴とする。
【００１１】
本発明にかかる第２のデータベースアクセスシステムは、
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムとクライアントノードと、アプリケーションサーバノードとを備え、且つ前記複数のデータベースサーバノードがそれぞれデータベースインスタンスを有するデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信する構成を有し、
前記アプリケーションサーバノードが、
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルと、
前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定する振り分け制御部とを備えたことを特徴とする。
【００１２】
本発明にかかる第３のデータベースアクセスシステムは、第２のデータベースアクセスシステムにおいて、
前記アプリケーションサーバノードが、前記複数のデータベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記振り分け制御部が、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンスＩＤが登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択する構成を有することを特徴とする。
【００１３】
本発明にかかる第４のデータベースアクセスシステムは、第３のデータベースアクセスシステムにおいて、
前記アプリケーションサーバノードが、
前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記振り分け制御部において選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理するトランザクション管理部を備えたことを特徴とする。
【００１４】
本発明にかかる第１のアプリケーションサーバノードは、
クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、データベース管理システムを構成する複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択する振り分け制御部を備えたことを特徴とする。
【００１５】
本発明にかかる第２のアプリケーションサーバノードは、
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルと、
クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定する振り分け制御部とを備えたことを特徴とする。
【００１６】
本発明にかかる第３のアプリケーションサーバノードは、第２のアプリケーションサーバノードにおいて、
データベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記振り分け制御部が、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンス識別子が登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択する構成を有することを特徴とする。
【００１７】
本発明にかかる第４のアプリケーションサーバノードは、第３のアプリケーションサーバノードにおいて、
前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記振り分け制御部において選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理するトランザクション管理部を備えたことを特徴とする。
【００１８】
本発明にかかる第１のデータベースアクセス方法は、
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備えたデータベースアクセスシステムにおいて、
前記クライアントノードが、プライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信する構成を有し、
前記アプリケーションサーバノードが、前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、前記複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択することを特徴とする。
【００１９】
本発明にかかる第２のデータベースアクセス方法は、
複数のデータベースサーバノード及び共用ディスクを含むデータベース管理システムと、クライアントノードと、アプリケーションサーバノードとを備え、且つ前記複数のデータベースサーバノードがそれぞれデータベースインスタンスを有するデータベースアクセスシステムにおいて、
前記クライアントノードが、アクセスするデータのプライマリキーを含む処理要求を前記アプリケーションサーバノードへ送信し、
前記アプリケーションサーバノードが、
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルを備え、且つ、
前記クライアントノードから処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定することを特徴とする。
【００２０】
本発明にかかる第３のデータベースアクセス方法は、第２のデータベースアクセス方法において、
前記アプリケーションサーバノードが、前記データベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記アプリケーションサーバノードが、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンス識別子が登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスのかなから優先順位が最も高いデータベースインスタンスを選択することを特徴とする。
【００２１】
本発明にかかる第４のデータベースアクセス方法は、第３のデータベースアクセス方法において、
前記アプリケーションサーバノードが、前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理することを特徴とする。
【００２２】
本発明にかかる第１のプログラムは、
コンピュータを、
クライアントノードからプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーに基づいて、データベース管理システムを構成する複数のデータベースサーバノードの中から、前記処理要求を処理するアプリケーションプログラムで利用するデータベースサーバノードを選択する振り分け制御部として機能させる。
【００２３】
本発明にかかる第２のプログラムは、
プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するデータベースインスタンスのデータベースインスタンス識別子とが対応付けて登録された振り分け管理テーブルを備えたコンピュータを、
前記クライアントノードからアクセスするデータのプライマリキーを含む処理要求が送られてきたとき、該処理要求中のプライマリキーと、前記振り分け管理テーブルの内容とに基づいて、前記処理要求を処理するアプリケーションプログラムで利用するデータベースインスタンスを決定する振り分け制御部として機能させる。
【００２４】
本発明にかかる第３のプログラムは、第２のプログラムにおいて、
前記コンピュータが、前記データベースインスタンス毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルを備え、且つ、
前記振り分け管理テーブルには、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のデータベースインスタンスのデータベースインスタンス識別子が優先順位を付して登録され、
前記振り分け制御部が、前記処理要求中のプライマリキーに対応付けて前記振り分け管理テーブルにデータベースインスタンス識別子が登録され、且つ前記状態管理テーブルに登録されている状態情報が正常を示しているデータベースインスタンスの中から優先順位が最も高いデータベースインスタンスを選択する構成を有することを特徴とする。
【００２５】
本発明にかかる第４のプログラムは、第３のプログラムにおいて、
前記コンピュータを、
前記クライアントノードからの処理要求に従ってアプリケーションプログラムが実行するトランザクション毎に、前記振り分け制御部において選択されたデータベースインスタンスを、そのトランザクションにおいて使用するデータベースインスタンスとして管理するトランザクション管理部として機能させる。
【００２６】
〔作用〕
クライアントノード（図１の１）は、アクセスするデータのプライマリキーを含む処理要求をアプリケーションサーバノード（図１の２）に送信する。アプリケーションサーバノード（図１の２）は、クライアントノード（図１の１）から処理要求が送られてくると、処理要求中のプライマリキーの値に基づいて、データベース管理システム（図１の３）を構成する各データベースサーバノード（図１の３１−１〜３１−３）の中から、上記処理要求を処理する業務アプリケーションプログラム（図１の２１）がデータベースをアクセスするために使用するデータベースサーバノードを決定する。
【発明の効果】
【００２７】
本発明によれば、データベースサーバノード間のデータアクセス競合の発生頻度を抑えることができるという効果を得ることができる。その理由は、アプリケーションサーバノードが、クライアントノードから処理要求が送られてきたとき、その処理要求に含まれているプライマリキーの値に基づいて、データベースアクセスに利用するデータベースサーバノードを決定するようにしているからである。
【発明を実施するための最良の形態】
【００２８】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２９】
〔実施の形態の構成の説明〕
図1を参照すると、本発明の実施の形態は、利用者からの業務処理要求を発行する端末であるクライアントノード１と、利用者からの業務処理要求を受け業務処理を実行するノードであるアプリケーションサーバノード２と、データベース処理を行うためのデータベース管理システム３とから構成されており、それらはネットワークを介して相互に接続されている。
【００３０】
利用者からの業務処理要求には、処理対象にするデータのプライマリキーが含まれており、クライアントノード１から発行された業務処理要求は、アプリケーションサーバノード２で処理され、処理結果は、データベース管理システム３においてディスクに書き込まれる。
【００３１】
〔データベース管理システム３の構成〕
データベース管理システム３は、複数台のデータベースサーバノード３１−１〜３１−３と、各データベースサーバノード３１−１〜３１−３からアクセス可能な共用ディスク３２とを有している。本実施の形態では、データベースサーバノードの台数を３台としているが、複数台であれば、これに限られるものではない。
【００３２】
データベースサーバノード３１−１〜３１−３は、それぞれ１個のＤＢインスタンス３１１−１〜３１１−３を有する。ＤＢインスタンス３１１−１〜３１１−３は、共用ディスク３２に対してデータを読み書きする処理部であり、各ＤＢインスタンス３１１−１〜３１１−３にはそれぞれＩＤ（識別子）としてＤＢ１〜ＤＢ３が付与されている。本実施の形態では、各データベースサーバノード３１−１〜３１−３に搭載するＤＢインスタンスの個数を１個としているが、複数個としても良い。なお、本実施の形態のように、データベースサーバノード３１−１〜３１−３にそれぞれ１個のＤＢインスタンス３１１−１〜３１１−３を搭載するようにした場合は、各ＤＢインスタンス３１１−１〜３１１−３のＩＤ「ＤＢ１〜ＤＢ３」を、それぞれデータベースサーバノード３１−１〜３１−３のＩＤと見なすことができる。
【００３３】
共用ディスクは３２は、実際にデータ３２１が格納される箇所であり、データベースの作成時に、そこに格納するデータのプライマリキーの値の範囲に応じて、複数のパーティションにパーティショニングされている。図１の共用ディスク３２は、プライマリキーの値が０〜１００のデータを格納する第１パーティションと、プライマリキーの値が１０１〜２００のデータを格納する第２パーティションと、プライマリキーの値が２０１〜３００のデータを格納する第３パーティションと、プライマリキーの値が３００１〜４００のデータを格納する第４パーティションと、プライマリキーの値が４０１〜５００のデータを格納する第５パーティションの５つのパーティションに分割されている。
【００３４】
〔アプリケーションサーバノード２の構成〕
アプリケーションサーバノード２は、業務処理を実行する業務アプリケーションプログラム２１と、業務処理を行うために必要なＤＢインスタンスへのコネクションを管理するＤＢインスタンス振り分け制御部２２と、ＤＢインスタンス振り分け制御部２２の振り分けポリシーを定義する振り分け情報定義ファイル２３とを有する。
【００３５】
振り分け情報定義ファイル２３には、業務処理を開始する前に、オペレータによって、データベースの各パーティションをアクセスする際に使用するＤＢインスタンスのＩＤが格納されている。図２（Ａ）は、振り分け情報定義ファイル２３の内容例を示す図であり、データベースの各パーティションに対応するプライマリキーの値の範囲毎に、プライマリＤＢインスタンス及びセカンダリＤＢインスタンスのＩＤが格納されている。プライマリＤＢインスタンスとは、対応するパーティションをアクセスする際に最も優先的に使用される（優先順位が最も高い）ＤＢインスタンスであり、通常は、プライマリＤＢインスタンスによりパーティションに対するアクセスが行われる。セカンダリＤＢインスタンスとは、優先順位が第２番目のＤＢインスタンスであり、プライマリＤＢインスタンスの状態が異常中の場合、プライマリＤＢインスタンスの代わりにパーティションをアクセスする。図２（Ａ）に示した振り分け情報定義ファイル２３の例えば第１番目のレコードは、プライマリキー「０〜１００」に対応するパーティションをアクセスするプライマリＤＢインスタンス、セカンダリＤＢインスタンスが、それぞれＩＤ「ＤＢ１、ＤＢ２」のＤＢインスタンス３１１−１、３１１−２であることを示している。
【００３６】
ＤＢインスタンス振り分け制御部２２は、共用ディスク３２に格納されているデータのプライマリキーとそのプライマリキーのデータをアクセスする際に利用するＤＢインスタンスの関係を管理するＤＢインスタンス振り分け管理テーブル２２２と、ＤＢインスタンスの稼動状態（正常、異常）を管理するためのＤＢインスタンス状態管理テーブル２２３と、ＤＢインスタンスへのコネクションオブジェクトを管理するためのＤＢコネクション管理部２２４と、トランザクションに関与しているＤＢインスタンスを管理するためのトランザクション管理部２２５と、ＤＢインスタンスが正常に稼動しているか否かを監視するためのＤＢインスタンス監視部２２６と、を有する。
【００３７】
ＤＢインスタンス振り分け管理テーブル２２２には、業務処理を開始する前に、ＤＢインスタンス振り分け制御部２２によって、振り分け情報定義ファイル２３の内容が展開される。従って、ＤＢインスタンス振り分け管理テーブル２２２の内容は、振り分け情報定義ファイル２３の内容と同一になる。例えば、振り分け情報定義ファイル２３の内容が図２（Ａ）に示すものである場合は、ＤＢインスタンス振り分け管理テーブル２２２の内容は、図２（Ｂ）に示すものとなる。
【００３８】
ＤＢインスタンス状態管理テーブル２２３は、ＤＢインスタンスＩＤ及び状態情報の２列を有する。ＤＢインスタンスＩＤの列には、各ＤＢインスタンス３１１−１〜３１１−３のＩＤ「ＤＢ１〜ＤＢ３」が格納され、状態情報の列には、それと同一行のＩＤによって示されるＤＢインスタンスの稼働状態（正常あるいは異常）が格納されている。図２（Ｃ）にＤＢインスタンス状態管理テーブル２２３の内容例を示す。同図（Ｃ）の例は、ＤＢインスタンス３１１−１、３１１−２が正常で、ＤＢインスタンス３１１−３が異常であることを示している。
【００３９】
ＤＢインスタンス監視部２２６は、各ＤＢインスタンス３１１−１〜３１１−３の稼働状態を定期的に監視し、ＤＢインスタンス状態管理テーブル２２３を更新する。
【００４０】
ＤＢコネクション管理部２２４は、ＤＢインスタンス３１１−１〜３１１−３へのコネクションの管理部であり、ＤＢインスタンス３１１―１〜３１１−３毎に、ＤＢインスタンスＩＤ２２４１及びＤＢインスタンス３１１へのコネクションを実現するコネクションオブジェクト２２４２を有する。１つのＤＢインスタンス３１１−１〜３１１−３に対して、ＤＢインスタンスＩＤ２２４１は１つだが、コネクションオブジェクト２２４２は複数存在する。これは、通常１つのＤＢインスタンス３１１−１〜３１１−３は、多数のクライアントノード１からの処理をさばくからである。
【００４１】
トランザクション管理部２２５は、トランザクション管理レコード２２５１を有する。トランザクション管理レコード２２５１は、トランザクションＩＤ２２５１１及びＤＢインスタンスＩＤ２２５１２を有する。業務アプリケーションプログラム２１がトランザクションを開始すると、トランザクション管理部２２５は、トランザクション管理レコード２２５１を生成する。トランザクション管理レコード２２５１は、システムで一意となるトランザクションＩＤ２２５１１を持つ。また、トランザクション内でＤＢインスタンス３１１−１〜３１１−３を経由してデータベース管理システム３へのアクセスが行われると、利用したＤＢインスタンスのＤＢインスタンスＩＤ２２５１２が該当するトランザクション管理レコード２２５１に記録される。
【００４２】
次に、アプリケーションサーバノード２内の各部の関連について説明する。
【００４３】
業務アプリケーションプログラム２１は、クライアントノード１から業務処理要求が送られてくると、要求された業務処理を実行するためにトランザクションを開始する。業務アプリケーションプログラム２１がトランザクションを開始すると、トランザクション管理部２２５は、トランザクション管理レコード２２５１を生成し、更にシステム内部で一意となるトランザクションＩＤ２５１１を生成して上記トランザクション管理レコード２２５１にセットする。
【００４４】
業務アプリケーションプログラム２１は、トランザクション内でデータベースにアクセスする際は、アクセスするデータのプライマリキーを含むコネクション取得要求をコネクション取得インターフェース２２１を介してＤＢインスタンス振り分け制御部２２に渡す。これにより、ＤＢインスタンス振り分け制御部２２は、トランザクション管理部２２５で管理されている上記トランザクションに対応するトランザクション管理レコード２２５１内に、ＤＢインスタンスＩＤ２２５１２が格納されているかをチェックする。
【００４５】
格納されていれば、ＤＢインスタンス振り分け制御部２２は、格納されているＤＢインスタンスＩＤ２２５１２に対応するコネクションオブジェクト２２４２を、ＤＢコネクション管理部２２４から取得する。格納されていない場合は、コネクション取得要求中のプライマリキーの値と、ＤＢインスタンス振り分け管理テーブル２２２の内容とに基づいてデータベースにアクセスするためのＤＢインスタンス３１１−ｊ（１≦ｊ≦３）を決定する。
【００４６】
次に、この決定されたＤＢインスタンス３１１−ｊの稼働状態をＤＢインスタンス状態管理テーブル２２３で確認し、“正常”であれば、ＤＢインスタンス３１１−ｊに対するコネクションオブジェクト２２４２をＤＢコネクション管理部２２４から取得する。また、トランザクション管理部２２５は、このコネクションオブジェクト２２４２がＤＢインスタンス３１１−ｊに対応するものであることを識別するためのＩＤであるＤＢインスタンスＩＤ２２２５１２を該当するトランザクション管理レコード２２５１に格納する。
【００４７】
業務アプリケーションプログラム２１は、取得したコネクションオブジェクト２２４２を使用し、共用ディスク３２のデータ３２１を参照/更新する。
【００４８】
これにより、ＤＢインスタンス３１１−１〜３１１−３が複数ある場合でも、データベースの特定の範囲のデータにアクセスするＤＢインスタンス３１１−ｊは特定のものとなり、データアクセス競合をなくすことができる。また、同じトランザクション内で複数回データベースにアクセスする際も、トランザクション管理部２２５の管理により同じＤＢインスタンス３１１−ｊを利用し続けることが可能である。また、ＤＢインスタンス監視部２２６は、定期的にＤＢインスタンス３１１−１〜３１１−３のヘルスチェックを行い、障害を検出した場合は、ＤＢインスタンス状態管理テーブル２２３の状態情報を、“異常”に変更する。ＤＢコネクション振り分け制御部２２は、“異常”状態のＤＢインスタンス３１１−３へはコネクションを振り分けない。これにより、ＤＢインスタンス障害時には代替のＤＢインスタンス３−ｊ経由でデータベースアクセスが可能であるため、利用者への影響を減らすことができる。
【００４９】
なお、アプリケーションサーバノード２は、コンピュータによって実現可能であり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータを、ＤＢインスタンス振り分け制御部２２として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上にＤＢインスタンス振り分け制御部２２を実現する。
【００５０】
〔実施の形態の動作の説明〕
次に、各図を参照して本実施の形態の全体の動作について詳細に説明する。
【００５１】
先ず、実際の業務処理開始前の事前作業について、図１及び図２を参照して説明する。
【００５２】
オペレータは、本システム利用前に、例えば、図２（Ａ）に示すように、振り分け情報定義ファイル２３を定義しておく。ＤＢインスタンス振り分け制御部２２は、振り分け情報定義ファイル２３の内容を読み込み、ＤＢインスタンス振り分け管理テーブル２２２に展開する。振り分け情報定義ファイル２３の内容が図２（Ａ）に示すものである場合、ＤＢインスタンス振り分け管理テーブル２２２の内容は図２（Ｂ）に示すものとなる。以上が、業務処理開始前に行う事前作業である。
【００５３】
次に、業務トランザクションの流れを、図３〜図５のフローチャートを参照して詳細に説明する。
【００５４】
先ず、クライアントノード１は、各種業務情報の参照、更新などがある場合、アクセスするデータのプライマリキーを含んだ業務処理要求を作成し（図３のステップＡ０１）、アプリケーションサーバノード２の業務アプリケーションプログラム２１へ送信する（ステップＡ０２）。
【００５５】
業務アプリケーションプログラム２１は、この業務処理要求を受信し（ステップＡ１１）、トランザクションを開始する（ステップＡ１２）。トランザクションとは関連する複数の処理を１つの処理単位としてまとめたもので、一連の作業を１つの処理として管理するための用いられる。
【００５６】
業務アプリケーションプログラム２１がトランザクションを開始すると（ステップＡ１２）、トランザクション管理部２２５は、システム全体で一意となるトランザクションＩＤ２２５１１を生成し、このＩＤをセットしたトランザクション管理レコード２２５１を生成し、トランザクション管理部２２５にセットする（ステップＡ１３）。また、ステップＡ１３において、トランザクション管理部２２５は、トランザクションＩＤ２２５１１を業務アプリケーションプログラム２１に通知する処理も行う。
【００５７】
次に業務アプリケーションプログラム２１は、業務ロジックを実行する（ステップＡ１４）。業務ロジックとは、業務処理に特有な処理（利率を計算する、メッセージを加工するなど）である。
【００５８】
その後、業務アプリケーションプログラム２１は、業務処理の結果をデータベースに格納するため、コネクション取得インターフェース２２１を介してＤＢインスタンス振り分け制御部２２に、データベースへのコネクション取得要求を送信する（ステップＡ１５）。このコネクション取得要求には、アクセスするデータのプライマリキー及びステップＡ１３でトランザクション管理部２２５が生成したトランザクションＩＤが含まれている。
【００５９】
ＤＢインスタンス振り分け制御部２２は、業務アプリケーションプログラム２１からコネクション取得要求が送られてくると（ステップＡ２１）、このコネクション取得要求によって指定されているトランザクションＩＤを持つトランザクション管理レコード２２５１をトランザクション管理部２２５から検索する（ステップＡ２２）。
【００６０】
その後、ＤＢインスタンス振り分け制御部２２は、ステップＡ２２で検索したトランザクション管理レコード２２５１にＤＢインスタンスＩＤ２２５１２が格納されているか否かをチェックする（ステップＡ２３）。ここで、或るトランザクション内でデータベースアクセスが行われていたら、その時に利用されたＤＢインスタンスのＤＢインスタンスＩＤ２２５１２が上記トランザクションに対応するトランザクション管理レコード２２５１に格納されているので、ステップＡ２３では、該当するトランザクション内で既にデータベースアクセスが行われているか否かをチェックすることになる。
【００６１】
そして、ＤＢインスタンスＩＤ２２５１２が格納されている場合（図４のステップＡ２４がＹｅｓ）は、既にトランザクション内で上記ＤＢインスタンスＩＤ２２５１２のＤＢインスタンス３１１−ｊを介したデータベースアクセスが行われていることになるので、ＤＢインスタンス振り分け制御部２２は、２フェーズコミットを防ぐために、上記ＤＢインスタンスＩＤ２２５１２に対するコネクションオブジェクト２２４２を、ＤＢコネクション管理部２２４より取得し（図４のステップＡ２５）、業務アプリケーションプログラム２１に返却する（図５のステップＡ２６）。
【００６２】
これに対して、ステップＡ２４の判断結果がＮｏとなった場合には、データベースアクセスに使用するＤＢインスタンスを決定する必要がある。そのため、ＤＢインスタンス振り分け制御部２２は、先ず、ＤＢインスタンス振り分け管理テーブル２２２を参照し、業務アプリケーションプログラム２１から送られてきているコネクション取得要求中のプライマリキーの値が、データベースの各パーティションに対応するプライマリキーの範囲の内の、どの範囲に入るかをチェックする（図４のステップＡ３１）。ＤＢインスタンス振り分け管理テーブル２２２の内容が、例えば図２（Ｂ）に示すものである場合、ＤＢインスタンス振り分け制御部２２は、プライマリキーの値が「０〜１００」「１０１〜２００」「２０１〜３００」「３０１〜４００」「４０１〜５００」の５個の範囲の内の何れの範囲に入るかをチェックすることになる。
【００６３】
そして、当てはまる範囲がない場合（ステップＡ３２がＮｏ）は、要求元の業務アプリケーションプログラム２１に対してエラーを返却する（ステップＡ３７）。これに対して、当てはまる範囲がある場合（ステップＡ３２がＹｅｓ）は、この範囲に対応するプライマリＤＢインスタンスの状態をＤＢインスタンス状態管理テーブル２２３で確認する（ステップＡ３３）。
【００６４】
プライマリＤＢインスタンスの状態が“正常”である場合（ステップＡ３４がＹｅｓ）は、ＤＢコネクション管理部２２４より、プライマリＤＢインスタンスに対するコネクションオブジェクト２２４２を取得し（ステップＡ３５）、この記録として、トランザクション管理部２２５で管理されている該当するトランザクション管理レコード２２５１に、上記プライマリＤＢインスタンスに対するＤＢインスタンスＩＤ２２５１２を格納し（ステップＡ３６）、取得したコネクションオブジェクトを業務アプリケーションプログラム２１に返却する（図５のステップＡ２６，Ａ１６）。
【００６５】
これに対してプライマリＤＢインスタンスの状態が“正常”でない場合は（ステップＡ３４がＮｏ）、代替となるセカンダリＤＢインスタンスの状態が“正常”であるか否かをＤＢインスタンス状態管理テーブル２２３で確認する（ステップＡ４１）。そして、セカンダリＤＢインスタンスの状態が“正常”である場合（ステップＡ４２がＹｅｓ）は、ＤＢコネクション管理部２２４からセカンダリＤＢインスタンスに対応するコネクションオブジェクト２２４２を取得し（ステップＡ４３）、更に、トランザクション管理部２２５で管理されている該当するトランザクション管理レコード２２５１に、上記セカンダリＤＢインスタンスに対するＤＢインスタンスＩＤ２２５１２を格納する（ステップＡ４４）。その後、ステップＡ４３で取得したコネクションオブジェクト２２４２を業務アプリケーションプログラム２１に返却する（図５のステップＡ２６，Ａ１６）。なお、ステップＡ４２でセカンダリＤＢインスタンスの状態も正常でないと判断した場合（ステップＡ４２がＮｏ）は、ＤＢインスタンス振り分け制御部２２は、要求元の業務アプリケーションプログラム２１に対してエラーを返却する（ステップＡ５１）。
【００６６】
業務アプリケーションプログラム２１は、ＤＢインスタンス振り分け制御部２２よりＤＢインスタンスに対するコネクションオブジェクト２２４２を取得すると（図５のステップＡ１６）、そのコネクションオブジェクト２２４２を使用して、データベースを業務処理結果に応じて更新する（ステップＡ１７）。業務アプリケーションプログラム２１は、トランザクションが終了すると、業務処理結果をクライアントノード１へ返却し（ステップＡ１８，Ａ１９）、クライアントノード１は、アプリケーションサーバノード２から送られてきた業務処理の処理結果を受信する（ステップＡ０３）。
【００６７】
次に、ＤＢインスタンス監視部２２６が行うＤＢインスタンス監視処理について、図６のフローチャートを参照して詳細に説明する。
【００６８】
ＤＢインスタンス監視部２２６は、ＤＢインスタンス監視処理を開始すると、データベースサーバノード３１−１〜３１−３が備えているＤＢインスタンス３１１−１〜３１１−３の内の１つに注目する（ステップＢ０１）。その後、ＤＢインスタンス監視部２２６は、注目しているＤＢインスタンス経由でデータベースにアクセスする（ステップＢ０３）。このステップＢ０３では、例えば、ＳＥＬＥＣＴ等のＳＱＬ文を実行することによりデータベースにアクセスする。
【００６９】
そして、アクセス可能であった場合（ステップＢ０４がＹｅｓ）は、ＤＢインスタンス状態管理テーブル２２３に登録されている各ＤＢインスタンスの状態情報の内の、現在注目しているＤＢインスタンスの状態情報を“正常”に更新した後（ステップＢ０５）、次のＤＢインスタンスに注目する（ステップＢ０１）。これに対して、アクセス不能であった場合（ステップＢ０４がＮｏ）は、現在注目中のＤＢインスタンスの状態情報を“異常”に更新した後（ステップＢ０６）、次のＤＢインスタンスに注目する（ステップＢ０１）。
【００７０】
ＤＢインスタンス監視部２２６は、未注目のＤＢインスタンスが無くなるまで（ステップＢ０２がＮｏとなるまで）、上記した処理を繰り返し行う。そして、未注目のＤＢインスタンスが無くなると（ステップＢ０２がＮｏ）、一定期間待機した後（ステップＢ０７）、再び、ステップＢ０１の処理を行う。
【００７１】
〔実施の形態の効果〕
本実施の形態によれば、データベースサーバノード３１−１〜３１−３間のデータアクセス競合の発生頻度を抑えることができるという効果を得ることができる。その理由は、アプリケーションサーバノード２が、クライアントノード１から処理要求が送られてきたとき、その処理要求に含まれているプライマリキーの値に基づいて、データベースアクセスに利用するデータベースサーバノードを決定するようにしているからである。
【００７２】
更に、本実施の形態によれば、ＤＢインスタンス３１１−１〜３１１−３間のデータアクセス競合の発生頻度を抑えることができるという効果を得ることができる。その理由は、アプリケーションサーバノード２が、プライマリキーと、そのプライマリキーのデータをアクセスする際に使用するＤＢインスタンスのＤＢインスタンス識別子とが対応付けて登録されたＤＢインスタンス振り分け管理テーブル２２２と、クライアントノード１から処理要求が送られてきたとき、この処理要求中のプライマリキーと、ＤＢインスタンス振り分け管理テーブル２２２の内容とに基づいて、上記処理要求を処理する業務アプリケーションプログラム２１で利用するＤＢインスタンスを決定するＤＢインスタンス振り分け制御部２２を備えているからである。
【００７３】
また、本実施の形態によれば、ＤＢインスタンス３１１−１〜３１１−３の何れかに障害が発生した場合であっても、データベースアクセスを停止させずに、可用性を高めることができるといった効果を得ることもできる。その理由は、アプリケーションサーバノード２が、ＤＢインスタンス３１１−１〜３１１−３毎に、その稼働状態が正常であるか否かを示す状態情報が登録された状態管理テーブルと、プライマリキーに対応付けて、そのプライマリキーのデータをアクセスする際に使用する複数のＤＢインスタンスのＤＢインスタンス識別子が優先順位を付して登録されたＤＢインスタンス振り分け管理テーブル２２２と、クライアントノード１から送られてきた処理要求中のプライマリキーに対応付けてＤＢ振り分け管理テーブル２２２にＤＢインスタンスＩＤが登録され、且つＤＢインスタンス状態管理テーブル２２３に登録されている状態情報が正常を示しているＤＢインスタンスの中から優先順位が最も高いＤＢインスタンスを選択するＤＢインスタンス振り分け制御部２２を備えているからである。
【００７４】
更に、本実施の形態によれば、同一トランザクション内で複数のＤＢインスタンス経由でデータベースをアクセスしてしまうという、２フェーズコミットの発生を防止することができる。その理由は、アプリケーションサーバノード２が、クライアントノード１からの処理要求に従って業務アプリケーションプログラム２１が実行するトランザクション毎に、ＤＢインスタンス振り分け部２２において選択されたＤＢインスタンスを、そのトランザクションにおいて使用するＤＢインスタンスとして管理するトランザクション管理部２２５を備えているからである。
【産業上の利用可能性】
【００７５】
本発明によれば、共用ディスククラスタ方式のデータベース管理システムにおいて、効率が良く且つ耐障害性の高いデータベースアクセスを実現するといった用途に適用できる。
【図面の簡単な説明】
【００７６】
【図１】本発明にかかるデータベースアクセスシステムの実施の形態の構成例を示すブロック図である。
【図２】振り分け情報定義ファイル２３、ＤＢインスタンス振り分け管理テーブル２２２及びＤＢインスタンス状態管理テーブル２２３の内容例を示す図である。
【図３】業務処理実行時の前半部分の処理例を示すフローチャートである。
【図４】業務処理実行時の中間部分の処理例を示すフローチャートである。
【図５】業務処理実行時の後半部分の処理例を示すフローチャートである。
【図６】ＤＢインスタンス監視部２２６の処理例を示すフローチャートである。
【符号の説明】
【００７７】
１…クライアントノード
２…アプリケーションサーバノード
２１…業務アプリケーションプログラム
２２…ＤＢインスタンス振り分け制御部
２３…振り分け情報定義ファイル
２２１…コネクション取得インターフェース
２２２…ＤＢインスタンス振り分け管理テーブル
２２３…ＤＢインスタンス状態管理テーブル
２２４…ＤＢコネクション管理部
２２４１…ＤＢインスタンスＩＤ
２２４２…コネクションオブジェクト
２２５…トランザクション管理部
２２５１…トランザクション管理レコード
２２５１１…トランザクションＩＤ
２２５１２…ＤＢインスタンスＩＤ
２２６…ＤＢインスタンス監視部
３…データベース管理システム
３１−１〜３１−３…データベースサーバノード
３１１−１〜３１１−３…ＤＢインスタンス
３２…共用ディスク
３２１…データ
【図１】
2007206913.tif 000003
【図２】
2007206913.tif 000004
【図３】
2007206913.tif 000005
【図４】
2007206913.tif 000006
【図５】
2007206913.tif 000007
【図６】
2007206913.tif 000008