"アプリケーションサーバとクラスタ化されたデータベースとの接続をサポートするためのシステムであって、前記クラスタ化されたデータベース内の複数のデータベースインスタンスに関連付けられた通知サービス構成要素を備え、前記通知サービス構成要素は、前記クラスタ化されたデータベースの状態変化を表わす通知を一斉送信するように前記クラスタ化されたデータベースによって用いられ、前記システムはさらに、前記アプリケーションサーバに関連付けられたデータソースを備え、データソースは、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの接続の組を管理する接続プールに関連付けられ、前記データソースは、前記クラスタ化されたデータベースの変化についての通知を受取るように前記通知サービス構成要素に登録するように動作し、前記アプリケーションサーバは、ランタイム時の前記クラスタ化されたデータベースの状態変化に従って、前記クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する、システム。前記クラスタ化されたデータベースの状態変化は、1つ以上のデータベースインスタンスが予定外の機能停止によって停止または除外されたこと、およびデータベースインスタンスが機能停止後に追加または再起動されること、のうちの1つを含む、請求項1に記載のシステム。前記データソースは、データベース高速接続フェイルオーバ機能を準備するように動作し、データベースインスタンスとの前記接続の各々が有効であることを確実にするようにデータベースサービスイベントに応答する、請求項1または2に記載のシステム。前記データソースは、メトリクスを用いて、前記アプリケーションサーバが行なう動作をモニタリングするように動作する、請求項1から3のいずれか1項に記載のシステム。前記データソースは、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの前記接続の組を前記通知サービス構成要素の代替物としてポーリングするように動作する、請求項1から4のいずれか1項に記載のシステム。前記データソースは、ロードバランシングアドバイザリイベントを含む前記通知サービス構成要素から通知を受取るように動作する、請求項1から5のいずれか1項に記載のシステム。前記データソースは、グローバルトランザクションの状況の中のすべてのデータベース動作が同一のデータベースインスタンスに向けられることを確実にするために動作する、請求項1から6のいずれか1項に記載のシステム。前記データソースは、前記クラスタ化されたデータベース内のターゲットデータベースインスタンスのグレースフルシャットダウン動作をサポートするように動作する、請求項1から7のいずれか1項に記載のシステム。前記データソースは、1つ以上の物理的な接続を閉じて再作成する前にいかなる進行中のトランザクションも完了させることができるように動作する、請求項8に記載のシステム。前記データソースは、新たな接続要求が前記クラスタ化されたデータベース内の前記ターゲットデータベースインスタンスに送られないようにアイドル状態の接続を一掃するように動作する、請求項8または9に記載のシステム。アプリケーションサーバとクラスタ化されたデータベースとの接続をサポートするための方法であって、前記クラスタ化されたデータベース内の複数のデータベースインスタンスに関連付けられた通知サービス構成要素を準備するステップを備え、前記通知サービス構成要素は、前記クラスタ化されたデータベースの状態変化を表わす通知を一斉送信するように前記クラスタ化されたデータベースによって用いられ、前記方法はさらに、前記アプリケーションサーバに関連付けられたデータソースを準備するステップを備え、前記データソースは、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの接続の組を含む接続プールに関連付けられ、前記方法はさらに、前記データソースが前記クラスタ化されたデータベースの変化についての通知を受取るように前記通知サービス構成要素に登録することを可能にするステップを備え、前記アプリケーションサーバは、ランタイム時の前記クラスタ化されたデータベースの状態変化に従って、前記クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する、方法。前記クラスタ化されたデータベースの状態変化は、1つ以上のデータベースインスタンスが予定外の機能停止によって停止または除外されたこと、およびデータベースインスタンスが機能停止後に追加または再起動されること、のうちの1つを含む、請求項11に記載の方法。前記データソースが、データベース高速接続フェイルオーバ機能を準備し、データベースインスタンスとの前記接続の各々が有効であることを確実にするようにデータベースサービスイベントに応答するステップをさらに備える、請求項11または12に記載の方法。前記データソースが、メトリクスを用いて、前記アプリケーションサーバが行なう動作をモニタリングするステップをさらに備える、請求項11から13のいずれか1項に記載の方法。前記データソースが、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの前記接続の組を前記通知サービスの代替物としてポーリングするステップをさらに備える、請求項11から14のいずれか1項に記載の方法。前記データソースが、ロードバランシングアドバイザリイベントを含む前記通知サービスから通知を受取るステップをさらに備える、請求項11から15のいずれか1項に記載の方法。前記データソースが、グローバルトランザクションの状況の中のすべてのデータベース動作が同一のデータベースインスタンスに向けられることを確実にするステップをさらに備える、請求項11から16のいずれか1項に記載の方法。前記データソースが、前記クラスタ化されたデータベース内のターゲットデータベースインスタンスのグレースフルシャットダウン動作をサポートするステップをさらに備える、請求項11から17のいずれか1項に記載の方法。前記データソースが、1つ以上の物理的な接続を閉じて再作成する前にいかなる進行中のトランザクションも完了させることができるようにするステップをさらに備える、請求項18に記載の方法。前記データソースが、新たな接続要求が前記クラスタ化されたデータベース内の前記ターゲットデータベースインスタンスに送られないようにアイドル状態の接続を一掃するステップをさらに備える、請求項18または19に記載の方法。1つ以上のコンピュータシステムにロードされ、1つ以上のコンピュータシステムによって実行されると、前記1つ以上のコンピュータシステムに請求項11から20のいずれか1項に記載の方法を実行させるプログラム読取可能命令を備えるコンピュータプログラム。請求項21に記載のコンピュータプログラムを記憶するコンピュータ読取可能記憶媒体を備えるコンピュータプログラム製品。アプリケーションサーバとデータベースシステムとの接続をサポートするためのデータベースシステムであって、前記データベースシステムはクラスタ化されたデータベースであり、前記データベースシステムは、複数のデータベースインスタンスと、前記複数のデータベースインスタンスに関連付けられた通知サービス構成要素とを備え、前記通知サービス構成要素は、前記クラスタ化されたデータベースの状態変化を表わす通知を一斉送信するように前記クラスタ化されたデータベースによって用いられ、前記通知サービス構成要素は、前記クラスタ化されたデータベースの変化についての通知を受取り、ランタイム時の前記クラスタ化されたデータベースの状態変化に従って、前記クラスタ化されたデータベースとの接続を適応的に構築して管理するために、前記アプリケーションサーバに関連付けられたデータソースから当該データベースによる登録を受取る、データベースシステム。前記クラスタ化されたデータベースの状態変化は、1つ以上のデータベースインスタンスが予定外の機能停止によって停止または除外されたこと、およびデータベースインスタンスが機能停止後に追加または再起動されること、のうちの1つを含む、請求項23に記載のシステム。アプリケーションサーバとクラスタ化されたデータベースとの接続をサポートするためのアプリケーションサーバであって、前記クラスタ化されたデータベース内の複数のデータベースインスタンスとの接続の組を管理する接続プールと、前記接続プールに関連付けられた単一のデータソースとを備え、前記データソースは、前記クラスタ化されたデータベースの変化についての通知を受取るように前記クラスタ化されたデータベースの通知サービス構成要素に登録するように動作し、前記アプリケーションサーバは、ランタイム時の前記クラスタ化されたデータベースの状態変化に従って、前記クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する、アプリケーションサーバ。前記データソースは、データベース高速接続フェイルオーバ機能を準備し、データベースインスタンスとの前記接続の各々が有効であることを確実にするようにデータベースサービスイベントに応答する、請求項25に記載のシステム。前記データソースは、メトリクスを用いて、前記アプリケーションサーバが行なう動作をモニタリングするように動作する、請求項25に記載のシステム。前記データソースは、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの前記接続の組を前記通知サービス構成要素の代替物としてポーリングするように動作する、請求項25に記載のシステム。前記データソースは、ロードバランシングアドバイザリイベントを含む前記通知サービス構成要素から通知を受取るように動作する、請求項25に記載のシステム。グローバルトランザクションの状況の中のすべてのデータベース動作が同一のデータベースインスタンスに向けられることを確実にする、請求項25に記載のシステム。前記データソースは、前記クラスタ化されたデータベース内のターゲットデータベースインスタンスのグレースフルシャットダウン動作をサポートする、請求項25に記載のシステム。前記データソースは、1つ以上の物理的な接続を閉じて再作成する前にいかなる進行中のトランザクションも完了させることができる、請求項31に記載のシステム。前記データソースは、新たな接続要求が前記クラスタ化されたデータベース内の前記ターゲットデータベースインスタンスに送られないようにアイドル状態の接続を一掃する、請求項31に記載のシステム。コンピュータプログラムであって、クラスタ化されたデータベース内の複数のデータベースインスタンスに関連付けられた通知サービスを準備するステップをコンピュータシステムに実行させ、前記通知サービスは、前記クラスタ化されたデータベースの状態変化を表わす通知を一斉送信するように前記クラスタ化されたデータベースによって用いられ、前記コンピュータプログラムはさらに、アプリケーションサーバに関連付けられたデータソースを準備するステップをコンピュータシステムに実行させ、データソースは、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの接続の組を含む接続プールに関連付けられ、前記コンピュータプログラムはさらに、前記データソースが前記クラスタ化されたデータベースの変化についての通知を受取るように前記通知サービスに登録することを可能にするステップをコンピュータシステムに実行させ、前記アプリケーションサーバは、ランタイム時の前記クラスタ化されたデータベースの状態変化に従って、前記クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する、コンピュータプログラム。機械読取可能媒体であって、命令を格納しており、前記命令は、実行されると、クラスタ化されたデータベース内の複数のデータベースインスタンスに関連付けられた通知サービス構成要素をシステムに準備させ、前記通知サービス構成要素は、前記クラスタ化されたデータベースの状態変化を表わす通知を一斉送信するように前記クラスタ化されたデータベースによって用いられ、アプリケーションサーバに関連付けられたデータソースをシステムに準備させ、データソースは、前記クラスタ化されたデータベース内の前記複数のデータベースインスタンスとの接続の組を含む接続プールに関連付けられ、前記データソースが前記クラスタ化されたデータベースの変化についての通知を受取るように前記通知サービス構成要素に登録することをシステムに可能にさせ、前記アプリケーションサーバは、ランタイム時の前記クラスタ化されたデータベースの状態変化に従って、前記クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する、機械読取可能媒体。概要:実施例に従って、アプリケーションサーバとクラスタ化されたデータベースとを接続するためのデータソースの使用をサポートするためのシステムおよび方法を提供する。当該クラスタ化されたデータベースは、複数のデータベースインスタンスを含み、通知サービス構成要素に関連付けられる。当該通知サービス構成要素は、当該複数のデータベースインスタンスの状態変化を表わす通知を一斉送信するように当該クラスタ化されたデータベースによって用いられることができる。当該データソースは、当該クラスタ化されたデータベース内の当該複数のデータベースインスタンスとの接続の組を管理する接続プールを含む。当該データソースは、当該クラスタ化されたデータベースの変化についての通知を受取るように当該通知サービス構成要素に登録するように動作し、当該アプリケーションサーバは、ランタイム時の当該クラスタ化されたデータベースの状態変化に従って、当該クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する。本発明の1つの局面に従って、アプリケーションサーバとデータベースシステムとの接続をサポートするためのデータベースシステムであって、当該データベースシステムはクラスタ化されたデータベースであり、当該データベースシステムは、複数のデータベースインスタンスと、当該複数のデータベースインスタンスに関連付けられた通知サービス構成要素とを備え、当該通知サービス構成要素は、当該クラスタ化されたデータベースの状態変化を表わす通知を一斉送信するように当該クラスタ化されたデータベースによって用いられ、当該通知サービス構成要素は、当該クラスタ化されたデータベースの変化についての通知を受取り、ランタイム時の当該クラスタ化されたデータベースの状態変化に従って、当該クラスタ化されたデータベースとの接続を適応的に構築して管理するために、当該アプリケーションサーバに関連付けられたデータソースから当該データベースによる登録を受取る、データベースシステムを提供する。好ましくは、当該クラスタ化されたデータベースの状態変化は、1つ以上のデータベースインスタンスが予定外の機能停止によって停止または除外されたこと、およびデータベースインスタンスが機能停止後に追加または再起動されること、のうちの1つを含む。本発明の別の局面に従って、アプリケーションサーバとクラスタ化されたデータベースとの接続をサポートするためのアプリケーションサーバであって、当該クラスタ化されたデータベース内の複数のデータベースインスタンスとの接続の組を管理する接続プールと、当該接続プールに関連付けられた単一のデータソースとを備え、当該データソースは、当該クラスタ化されたデータベースの変化についての通知を受取るように当該クラスタ化されたデータベースの通知サービス構成要素に登録するように動作し、当該アプリケーションサーバは、ランタイム時の当該クラスタ化されたデータベースの状態変化に従って、当該クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する、アプリケーションサーバを提供する。好ましくは、当該データソースは、データベース高速接続フェイルオーバ機能を準備し、データベースインスタンスとの当該接続の各々が有効であることを確実にするようにデータベースサービスイベントに応答する。好ましくは、当該データソースは、メトリクスを用いて、当該アプリケーションサーバが行なう動作をモニタリングするように動作する。好ましくは、当該データソースは、当該クラスタ化されたデータベース内の当該複数のデータベースインスタンスとの当該接続の組を当該通知サービス構成要素の代替物としてポーリングするように動作する。好ましくは、当該データソースは、ロードバランシングアドバイザリイベントを含む当該通知サービス構成要素から通知を受取るように動作する。好ましくは、グローバルトランザクションの状況の中のすべてのデータベース動作が同一のデータベースインスタンスに向けられることを確実にする。好ましくは、当該データソースは、当該クラスタ化されたデータベース内のターゲットデータベースインスタンスのグレースフルシャットダウン動作をサポートする。好ましくは、当該データソースは、1つ以上の物理的な接続を閉じて再作成する前にいかなる進行中のトランザクションも完了させることができる。好ましくは、当該データソースは、新たな接続要求が当該クラスタ化されたデータベース内の当該ターゲットデータベースインスタンスに送られないようにアイドル状態の接続を一掃する。詳細な説明:本発明は、限定目的ではなく例示目的として添付図面の図に示され、添付図面の図においては、同様の参照番号は同様の要素を指す。なお、本開示の中であるanまたは1つのoneまたはいくつかのsome実施例に言及したとしても、必ずしも同一の実施例であるとは限らず、このような言及は少なくとも1つであることを意味する。さらに、本明細書において行なわれる本発明のさまざまな実施例の説明は、クラスタ化されたデータベース環境の例示的な例としてオラクルリアルアプリケーションクラスタOracleRealApplicationClustersRACデータベースシステムを用いる。他の種類のクラスタ化されたデータベース環境を制限なく用いることができる、ということは当業者に明らかであろう。クラスタ化されたデータベースまたはデータベースクラスタは、まるでエンドユーザおよびアプリケーションに対する1つのサーバであるかのように見える複数の相互接続されたコンピュータまたはサーバを備え得る。データベースとインスタンスとの間に1対1の関係がある単一インスタンスデータベースとは異なり、クラスタ化されたデータベースは、データベースとインスタンスとの間に1対多の関係がある。例えば、オラクルRACデータベースシステムは、複数のサーバを結び付けて単一のシステムとして動作するようにオラクルクラスタウェアインフラストラクチャを用いて、ユーザがオラクルデータベースをクラスタ化することを可能にする。オラクルRACデータベースシステムは、多数のインスタンスを有することができ、それらはすべて1つのデータベースにアクセスする。複数のサーバの処理能力を集約することにより、単一のサーバで得られるスループットおよびスケーラビリティよりも大きなスループットおよびスケーラビリティを提供できる。図1は、実施例に従った、アプリケーションサーバとクラスタ化されたデータベースとを接続するためのマルチデータソースシステムの図である。図1に示されるように、マルチデータソース103は、1つ以上の個々のデータソース131、132および133にわたるデータソースの抽象的概念である。マルチデータソースは、ロードバランシング手法およびフェイルオーバ手法などの特定の手法に従って、メンバデータソースの各々からジャバデータベース接続性JavaDataBaseConnectivityJDBC接続121、122および123を提供する。また、マルチデータソースコンフィギュレーションでは、各メンバデータソースが特定のデータベースインスタンスとの接続を得る必要がある。グリッドリンクデータソース実施例に従って、アプリケーションサーバとクラスタ化されたデータベースとを接続するための、本明細書ではグリッドリンクデータソースと称されるデータソースの使用をサポートするためのシステムおよび方法を提供する。クラスタ化されたデータベースは、複数のデータベースインスタンスを含み、通知サービス構成要素に関連付けられる。通知サービス構成要素は、複数のデータベースインスタンスの状態変化を表わす通知を一斉送信するように、クラスタ化されたデータベースによって用いられることができる。データソースは、クラスタ化されたデータベース内の複数のデータベースインスタンスとの接続の組を管理する接続プールを含む。データソースは、クラスタ化されたデータベースの変化についての通知を受取るように通知サービス構成要素に登録するように動作し、アプリケーションサーバは、ランタイム時のクラスタ化されたデータベースの状態変化に従って、クラスタ化されたデータベースとの接続を適応的に構築して管理するように動作する。実施例によれば、グリッドリンクデータソースは、データベースクラスタをターゲットとしたサービスである単一データソースコンフィギュレーションを用いることができる。グリッドリンクデータソースは、高速接続フェイルオーバ、ランタイム接続ロードバランシングおよびデータベースインスタンスグレースフルシャットダウンを提供するように通知イベントに応答することができる。さらに、グローバルトランザクションIdレベルで分散トランザクションXAアフィニティをサポートすることができる。例えば、オラクルRACデータベースシステムは、データベースクラスタの状態についての情報を広めるようにクライアント通知をサポートすることができる。JDBCデータソースコンフィギュレーションは、サービスURLの仕様を考慮に入れて、RAC接続性を提供する。JDBCデータソースコンフィギュレーションは、RACクラスタとのJDBC接続の統計情報および管理容易性を提供するモニタリングサポートも含む。実施例によれば、グリッドリンクデータソースは、データベースクラスタ通知の機能を活用することによってマルチデータソース解決策の欠点に対処し、その結果、より簡素なコンフィギュレーションで全体的な接続性がよりよくなり、データベースノード障害に対する応答がより素早くなり、データベースクラスタリソースがよりよく利用され、ランタイムモニタリングおよび管理が向上する。さらに、グリッドリンクデータソースおよびマルチデータソースの混成コンフィギュレーションをサポートすることができる。図2は、実施例に従った、アプリケーションサーバとクラスタ化されたデータベースとを接続するためのグリッドリンクデータソースシステムの図である。図2に示されるように、グリッドリンクデータソース203は、アプリケーションサーバ201に関連付けられた単一のデータソースである。グリッドリンクデータソースは、単一データソースアプローチを通じてアプリケーションサーバによるクラスタ化されたデータベース202の使用を簡素化し、これは、クラスタ化されたデータベースの使用に必要なコンフィギュレーションおよび管理の複雑さを軽減する。グリッドリンクデータソースは、データベースクラスタ内の異なるデータベースインスタンス211、212および213との異種の接続221、222および223の組を含む接続プール205を含む。また、図2に示されるように、これらの異なるデータベースインスタンスは共用記憶装置204に接続される。実施例によれば、接続プール内の接続の管理は、最小/最大容量、タイムアウトなどの接続プール上に構築された静的な設定214、および、データベースクラスタ内のいかなる状態変化についてもデータソースにアドバイスする通知サービス構成要素206から受取ったイベントメッセージ210における接続プールについてのリアルタイムの情報に基づく。アプリケーション207、208または209がデータソースに接続を要求すると、好適な接続が接続プールから選択され、接続プールが受取ったロードバランシング情報および使用中の接続の現在の分布に基づいてプールからアプリケーションに供給される。アプリケーションサーバは、データベースイベントメッセージなどの通知を受取るように通知サービス構成要素に登録することができ、そのため、クラスタ化されたデータベース内のいかなる状態変化にもすぐに気付くことができる。これらの状態変化通知イベントを用いて、アプリケーションサーバは、システムが連続的、確実かつ効率的にクラスタ化されたデータベースにアクセスできるようにその接続プールを知的に適合させることができる。実施例によれば、接続ポーリングは、通知サービスが構築されない時または通知サービスが正しく機能していない時に通知サービスの代替物として適用されることができる。接続ポーリングが用いられると、当該システムは、個々の接続に対してSQL動作を行なうことによって、個々のJDBC接続の実行可能性を判断して、クラスタ化されたクラスタのトポロジの変化を検出することができる。通知サービスアプローチと比較して、接続ポーリングアプローチは、さらに他のランタイムオーバーヘッドを犠牲にして成り立つものであり、恐らくはデータベースインスタンスノード障害の検出を遅延させる。また、接続ポーリングアプローチは誤検出の可能性があり、その結果、データソースプールが不必要に無効になり、アプリケーションによって使用中であり得る有効な接続を終了させてしまう恐れがある。図3は、実施例に従った、アプリケーションサーバとクラスタ化されたデータベースによって提供される異なるサービスとを接続するためのグリッドリンクデータソースシステムの図である。図3に示されるように、クラスタ化されたデータベース302は、異なるサービス311、312および313を提供することができ、それらのサービスの各々は、特定のサービス品質を提供するように異なるデータベースインスタンスにわたって割当て可能なデータベース作業負荷の抽象的概念であり得る。また、図3に示されるように、アプリケーションサーバ環境301は、複数のアプリケーションサーバインスタンス303および304を含み得る。各アプリケーションサーバインスタンスは、単一の接続プール307および308を有する単一のデータソース305および306を含み得る。グリッドリンクデータソースシステムは、クラスタ化されたデータベースとより深く統合させるために、クラスタ化されたデータベースとの接続321、322、323、324および325を提供して、制限のない態様でデータベースサービスの消費をサポートする。例えば、オラクルデータベースサービスは、オラクルデータベース内の作業負荷を管理するための論理的な抽象的概念であり得る。データベースサービスは、作業負荷に対する単一のシステムイメージ、作業負荷の優先順位付け、実際のトランザクションに対する性能評価尺度、ならびに性能目標に違反した時の警告および動作を提供することができる。データベースサービスにより、データベース管理者は、作業負荷を構築し、作業負荷を管理し、作業負荷を有効/無効にし、作業負荷を単一の要素として測定することができる。データベースサービスはさらに、作業負荷を論理的に互いに素なグループに分けることができる。各サービスは、共通の属性、サービスレベル閾値および優先度で作業負荷を表わす。図4は、実施例に従った、アプリケーションサーバとクラスタ化されたデータベースとを接続するためにグリッドリンクデータソースを用いるための例示的なフローチャートである。図4に示されるように、ステップ401において、通知サービス構成要素と、クラスタ化されたデータベース内の複数のデータベースインスタンスとを関連付けることができる。また、ステップ402において、データソースと、クラスタ化されたデータベース内の複数のデータベースインスタンスとの接続の組を含む接続プールとを関連付けることができる。ステップ403において、データソースは、クラスタ化されたデータベースの変化についての通知を受取るように通知サービス構成要素に登録することができる。ステップ404において、データソースは、ランタイム時のクラスタ化されたデータベースの状態変化を表わす通知を通知サービスから受取る。次いで、ステップ405において、データソースは、クラスタ化されたデータベースの状態変化に従って、クラスタ化されたデータベースとの接続を適応的に構築して管理する。実施例によれば、グリッドリンクデータソースのコンフィギュレーションは、残り続けるJDBC記述子ビーンJDBCdescriptorbeansを活用することができる。JDBC記述子ビーンは、グリッドリンクデータソースを識別して、データベース通知サービスクライアントコンフィギュレーション情報を特定できる。JDBC記述子ビーンは、XMLファイルを用いて、グリッドリンクデータソース機能を有効にすることができる。以下は、オラクルRACデータベースシステムに接続されるグリッドリンクデータソースを構築するための例示的なXMLファイルである。ロードバランシングアドバイザリイベント実施例によれば、クラスタ化されたデータベースは、スループットをよりよくしてリソースがより効率的に用いられるようにするために、データベース管理者databaseadministratorDBAが設定した性能目標に基づいてデータベースインスタンス中に接続を分散させるようにランタイムロードバランシングサービスを提供することができる。ロードバランシングアドバイザリサービスは、接続をどこに向けるかについてのアドバイスを含むクラスタの現在の状態についてクライアントにアドバイスするイベントを発行する。図5は、実施例に従った、データベースロードバランシングアドバイザリイベントをサポートするグリッドリンクデータソースシステムの図である。図5に示されるように、アプリケーションサーバ501は、クラスタ化されたデータベース502が発行したロードバランシングアドバイザリイベントメッセージ510を受取って、それに従ってデータベースノードまたはインスタンス511、512および513とのデータベース接続521、522および523を調整することができる。当該システムは、ランタイム時にデータソースに対してロードバランシングコンフィギュレーションオプションを実行することができ、データベースから受取ったロードバランシングアドバイザリメッセージに基づいてアプリケーションサーバはデータベース接続を送ることができる。そのため、データベース接続は特定のデータベースノードに向けられて、データベース管理者が設定した性能目標を満たす。ランタイムロードバランシングアドバイザリサービス構成要素506と単一のデータソース503とを併用することにより、初期コンフィギュレーションおよびデータソースの継続的なメンテナンスを簡素化できる。グリッドリンクデータソースシステムを用いると、データベースがロードバランシング動作を指示するので、アプリケーションサーバがロードバランシングをサポートするのにデータベーストポロジ情報は不要である。グリッドリンクデータソースシステムは、中間層を正しく構成するために必要な情報量を減らすことによってデータソースの初期の構築を助ける。さらに、データベース層は時間とともに変化する可能性があり、サービスは新たなまたは異なるデータベースインスタンスに配置し直される可能性があるので、グリッドリンクデータソースシステムは、変化したデータベーストポロジを反映させるためにコンフィギュレーションの変化を必要としない。例えば、図5に示されるように、アプリケーションサーバで受取られたロードバランシングアドバイザリイベントメッセージが、データベースインスタンスAがビジー状態でありデータベースインスタンスCがアイドル状態であることを示す場合、グリッドリンクデータソースシステムは、データベースインスタンスCに新たな接続を割当てることによって接続プール内の接続を再調整して、DBAが設定したロードバランシングターゲットを達成し、負荷をよりよく分散させてスループットを高くすることができる。実施例によれば、ロードバランシング情報に基づいて接続プール内の接続を再調整することに加えて、利用可能なアイドル状態の接続がある場合には、ロードバランシング割合/重みに従って既存の接続をアプリケーション構成要素に与えることができる。データベース状態変化イベント図6は、実施例に従った、データベース状態変化イベントをサポートするグリッドリンクデータソースシステムの図である。図6に示されるように、アプリケーションサーバ601は、通知サービス構成要素606が発行したデータベース状態変化イベントメッセージ610をクラスタ化されたデータベース602から受取ることができる。データベース状態変化イベントは、データベースインスタンスの予期せぬ機能停止または新たなデータベースインスタンスの追加を含み得る。実施例によれば、グリッドリンクデータソースシステムにより、アプリケーションサーバは、予定外の機能停止によって停止または除外されたデータベースインスタンスとの接続を直ちに撤回する、閉じるおよび廃棄することによって、機能停止への対処などのデータベースクラスタの状態変化に適応的に応答することができる。図6に示されるように、アプリケーションサーバで受取られたデータベース状態変化イベントメッセージは、データベースインスタンスB612の機能停止を示し得る。それに対応して、グリッドリンクデータソース603は、データベース接続622を切断するように接続プール605に指示することができ、その結果、グリッドリンクデータソースに関連付けられたアプリケーション607、608または609は、データベースインスタンスA611またはデータベースインスタンスC613などの別のデータベースインスタンスを介してデータベースに再接続することができ、データベースサービスにおける中断を回避する。上記の例に示されるように、データベース状態変化イベントを用いると、グリッドリンクデータソースシステムは、接続が有効であること、または、残存しているノードとの未関与の接続に影響を及ぼしていることを確実にするために接続を定期的にポーリングする必要がない。これにより、接続試験への依存を小さくすることができ、アプリケーションに無効な接続が与えられずにアプリケーションサーバに情報が与えられることが確実になり、不必要な遅延なしに、データベースノード障害のために無効になる接続からアプリケーションをすぐに解放する。予期せぬデータベース機能停止への対処に加えて、グリッドリンクデータソースにより、アプリケーションサーバは、機能停止後に新たなデータベースインスタンスが追加または再起動されるシナリオをサポートするようにその接続の組を事前対応的に再配分することができる。これにより、アプリケーションサーバは、クラスタ化されたデータベース内のリソースを十分に利用できる。さらに、データベースサービスモデルを用いると、当該システムにより、データベース管理者はデータベースサービス/インスタンスの割当てを変更でき、これらの割当ては、次いで、接続プールコンフィギュレーションに対してコンフィギュレーション変更を行なう必要なく、影響を受けたアプリケーションサーバ接続プールを介して途切れなく適用される。また、クラスタ化されたデータベースの専用のインスタンスを表わすために複数のデータソースの複雑な配置を作成する必要がなくなる。さらに、データベース状態変化イベントを用いると、グリッドリンクデータソースは、高速接続フェイルオーバ機能を提供することができ、UP,DOWNイベントなどのクラスタ化されたデータベースサービスおよびノードイベントに応答して、プール内の予備の物理的な接続が有効なデータベースノードを常に指し示していることを確実にする。さらに、グリッドリンクデータソースは、予備の物理的な接続が利用可能なデータベースノード中に確実に十分に分散されるようにする。高速接続フェイルオーバ挙動は、データソースについてのコンフィギュレーション設定として有効にされ得る。データベース通知イベントを受取った時にアプリケーションサーバがそのデータソースに対してどのような動作を行なったかを管理者がモニタリングして検討することができるように、メトリクスを利用できる。分散トランザクションXAアフィニティ実施例によれば、グローバルトランザクションの状況の中でデータベースクラスタに対して行なわれるすべてのデータベース動作が同一のデータベースインスタンスに確実に向けられるようにするために、分散トランザクションXAアフィニティが用いられる。アフィニティは、個々のデータソースの代わりにグローバルトランザクションidに基づいて確立でき、同一のデータベースクラスタのために構築される異なるデータソースから得られた接続がすべて同一のデータベースインスタンスに確実に関連付けられるようにする。二相コミット最適化がグリッドリンクデータソースによってサポートされることができ、XAアフィニティにも関与することができる。図7は、実施例に従った、分散トランザクションXAをサポートするグリッドリンクデータソースシステムの図である。図7に示されるように、グリッドリンクデータソースを用いたアプリケーションサーバ環境701は、クラスタ化されたデータベース702に対して行なわれるグローバルトランザクションのためのすべてのデータベース動作が同一のデータベースインスタンス711に確実に向けられるようにすることによって、グローバルトランザクションをサポートすることができる。一実施例では、XAトランザクションの第1の接続要求721がロードバランスされて、アフィニティコンテキスト720を割当てられる。後続の接続要求722、723および724はすべて、この第1の接続のアフィニティコンテキストを用いて、同一のデータベースインスタンスに送られる。計画的なデータベースグレースフルシャットダウン実施例によれば、データベースノード/サービスがシャットダウン動作をターゲットとしており、シャットダウンを表わすデータベースイベントの対応する発行が要求された場合に、計画的なグレースフルシャットダウンが行なわれる。図8は、実施例に従った、データベースグレースフルシャットダウンをサポートするグリッドリンクデータソースシステムの図である。図8に示されるように、アプリケーションサーバ801は、通知サービス構成要素806が発行したデータベースシャットダウンイベントメッセージ810をクラスタ化されたデータベース802から受取ることができる。そして、データベースシャットダウンイベントメッセージは、データベースインスタンスA811がシャットダウンされる予定であることを表わす。データベースの計画的なグレースフルシャットダウンをサポートするために、アプリケーションサーバは、データベースシャットダウンターゲットがもはや新たな接続を受付けていないことを検出した場合に使用中の接続821を直ちに停止させなくてもよい。その代わりに、グリッドリンクデータソース803は、アクティブなシャットダウンモードにおいて新たな接続要求がデータベースターゲットに送られないようにアイドル状態の接続を一掃しながら、物理的な接続を閉じて再作成する前にいかなる進行中のトランザクションも完了させることができる。データソースは、データベースシャットダウンターゲットに接続されたアクティブな接続を検出し、関連付けられたトランザクションが完了して接続が接続プール805に戻された時にそれらの接続が閉じられて再作成されるようにそれらの接続をマークすることができる。いかなる進行中のトランザクションも完了させることができるようにするために、シャットダウンイベントを受取った時または未許可の接続要求を検出した時に直ちに例外を作成しなくてもよい。さらに、データベースシャットダウンターゲットに接続されたプール内のいかなるアイドル状態の接続もプリエンプティブに閉じることができる。また、当該システムにより、データソースはデータベースシャットダウンターゲットの周りに新たな要求を送ることができ、進行中のトランザクションの完了を実現し、データベースシャットダウン動作を実行中のアプリケーションに対して透過的にすることができる。ユニバーサル接続プールUniversalConnectionPoolUCPライブラリ実施例によれば、アプリケーションサーバとクラスタ化されたデータベースとを接続するために、ユニバーサル接続プールUCPライブラリなどのデータベース接続モジュールを用いることができる。UCPライブラリは、データベースサーバが論理的にはJDBCドライバの延長線上にあるという観点から、クライアント側のライブラリである。データベース接続モジュールは、一般的なJDBC接続プーリングの実現例の提供に加えて、クラスタ化されたデータベースのための高い利用可能性および性能機能をサポートすることができる。図9は、実施例に従った、データベース接続モジュールを用いたグリッドリンクデータソースシステムの図である。アプリケーションサーバ901は、グリッドリンクデータソース903を介してクラスタ化されたデータベース902と接続するためにUCPライブラリ910のクラスタデータベース統合サポートを活用できる。実施例によれば、UCPライブラリが提供するJDBC接続プーリング特性を用いる必要なく、グリッドリンクデータソースは、データベースクラスタに接続でき、高速接続フェイルオーバ、ランタイム接続ロードバランシングおよびXA接続アフィニティなどの、UCPライブラリによってサポートされる他の機能を利用できる。実施例によれば、接続モジュールは、ジャババーチャルマシンJavaVirtualmachinesJVMsなどのリソースをよりよく利用して管理できるように、アプリケーションサーバタイマおよびワークマネージャを利用できる。さらに、APIにより、アプリケーションサーバは、クラスタ化データベースアドバイザリを得て、データベースインスタンス中に接続をより効率的に割当てて、データベースクラスタトポロジの変化によりよく応答することができる。例えば、UCPのRAC機能はリファクタリングされ、RACモジュールAPIの形態でアプリケーションサーバに晒され得る。このAPIは、RACクラスタトポロジの変化、ランタイム接続ロードバランシングについてのアドバイザリおよび接続アフィニティに応答して、コールバック通知を提供することができる。また、APIは、ロギングおよび他の診断目的でアプリケーションサーバが使用可能な通知イベントコールバックも提供する。APIは、RACデータソースランタイムモニタリングに用いられることができるRACクラスタノードについての統計数値および状態情報を表面化し得る。実施例によれば、UCPは、接続プーリングおよびデータベース統合特性を提供するスタンドアロンのジャバライブラリとして設計できる。したがって、UCPライブラリは、それ自体のスレッドおよびタイマを管理できる。UCPは、アプリケーションサーバプロセス内でUCPAPIにアクセスした時にUCPの内部使用を目的としてアプリケーションサーバがアプリケーションサーバタイマおよびワークマネージャのインスタンスに接続できるようにするタイマおよびワークマネージャSPIを提供することができる。これにより、UCPライブラリが使用するスレッドおよびタイマの制御およびランタイム可視性を高めることができる。さらに、同一のおよび別個のアプリケーションサーバインスタンス上で異なるデータソースにアクセスした時でさえグローバルトランザクションIdに基づいて接続を割当てるように、UCPが提供するアフィニティ機能を活用できる。データソース作成ウィザード実施例によれば、データソース作成ウィザードは、オラクルRACデータベースなどのクラスタ化されたデータベースと接続するように構築されたグリッドリンクデータソースの作成をサポートすることができる。グリッドリンクデータソースの作成は、データベースサービスに接続するために必要なデータベースリスナアドレス情報および通知サービスクライアントコンフィギュレーション情報をセットアップすることを含む。例えば、オラクルRACデータベースと接続するために、データソース作成ウィザードは、接続ターゲットを特定する2つの方法を提供することができる。第1のアプローチでは、データソースについての異なるリスナを特定するために、以下のように示されるconnect記述子をJDBCURLフォーマットの中で用いる。第2のアプローチは、ウィザードによって駆動されるアプローチであり、各々のリスナ入力を個々に特定でき、そこから最終的なJDBCURLを最終的に構築できる。ウィザードによって駆動されるアプローチにより、ユーザは、グリッドリンクデータソースを作成して更新するための複数のリスナおよび通知サービスクライアントを特定して試験することができる。図10は、実施例に従った、グリッドリンクデータソースに関連付けられた複数のリスナを構築するためのウィザードページ1000の図である。図10に示されるように、グリッドリンクデータソースは、Inracという名前でデータベースサービスに接続することができる。このグリッドリンクデータソースは、ホストおよびポートタプル:leftp:1521、rightp:1521またはcenterp:1521をそれぞれ用いるように構築された3つのリスナに関連付けられる。接続が有効であることを確認して、特定のリスナに何か問題があればユーザに報告するために、各リスナは別個に試験されることができる。図11は、実施例に従った、グリッドリンクデータソースに関連付けられた通知サービスクライアントを構築するためのウィザードページ1100の図である。図11に示されるように、グリッドリンクデータソースは、ホストおよびポートタプル:leftp:1526を用いるように構築された通知サービスクライアントにさらに関連付けられる。通知サービスクライアントも別個に試験されることができる。さらに、グリッドリンクデータソースは、必要であればさらなる通知サービスクライアントに関連付けられることができる。本発明は、本開示の教示に従ってプログラムされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を含む、1つ以上の従来の汎用または専用デジタルコンピュータ、演算処理装置、マシン、またはマイクロプロセッサを用いて、便利に実現されてもよい。ソフトウェア分野における当業者にとって明らかとなるであろうように、適宜なソフトウェアコーディングは、熟練したプラグラマーによって本開示の教示に基づいて容易に準備され得る。実施例によっては、本発明は、本発明の処理のうち任意のものを行なうようコンピュータをプログラムするために用いることができる命令をその中そこに記憶した記憶媒体またはコンピュータ読取可能媒体複数の媒体であるコンピュータプログラム製品を含む。記憶媒体には、フロッピー登録商標ディスク、光ディスク、DVD、CD-ROM、マイクロドライブ、光磁気ディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気もしくは光カード、ナノシステム分子記憶ICを含むを含む任意の種類のディスク、または、命令および/もしくはデータを記憶するのに好適な任意の種類の媒体もしくは装置が含まれ得るが、これらに限定されない。本発明の上述の説明は、例示および説明を目的としてなされた。網羅的であることまたは本発明を開示されたまさにその通りの形態に限定することを意図するものではない。多くの修正例および変形例が当業者にとって明らかであるだろう。実施例は、本発明の原理およびその実際の用途を最もよく説明することによって、他の当業者が本発明をさまざまな実施例について、企図される特定の用途に好適なさまざまな修正例とともに理解することを可能にするために選択され、記載された。本発明の範囲は、以下の特許請求の範囲およびその等価物によって規定されることが意図される。"