Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理の構成と管理 11gリリース1 (10.3.6) B60997-10 |
|
前 |
次 |
この章では、管理コンソール、コマンドライン、JMXプログラムまたはWebLogic Scripting Tool (WLST)スクリプトを使用して、ドメイン内のJDBCデータ・ソースを管理する方法について説明します。
JDBCDataSourceRuntimeMBean.testPool
データ・ソースのデータベース接続が常に正常であるように、接続を定期的にテストすることをお薦めします。WebLogic Serverでは、2種類の基本的なテストを使用できます。データ・ソースの属性を使用して構成する自動テストと、データ・ソースをトラブルシューティングするために実行できる手動テストです。
WebLogic Serverがプール接続の一貫性を自動的に維持できるようにすることで、DBMS接続のほとんどの問題を防止できます。自動接続テストの構成の詳細は、「データ・ソースの接続テスト・オプション」を参照してください。
データ・ソースからの接続を手動でテストするために、管理コンソールの「JDBCデータ・ソース: 監視: テスト」ページの「データ・ソースのテスト」機能(JDBCデータ・ソースのテストに関する項を参照)、またはJDBCDataSourceRuntimMBean
のtestPool()
メソッドを使用できます。データ・ソースからのデータベース接続をテストするには、データ・ソース構成で「予約された接続のテスト」を有効にし、「テスト対象の表名」を定義する必要があります。どちらも、管理コンソールを使用してデータ・ソースを作成した場合には、デフォルトで定義されます。
データ・ソースをテストする場合、WebLogic Serverは接続を予約し、「テスト対象の表名」で定義した問合せを使用してそれをテストし、その後、接続を解放します。
システムのデータ・ソース内の接続ごとに、WebLogic Serverは文キャッシュを作成します。接続でプリコンパイルされた文または呼び出し可能文が使用されると、WebLogic Serverはその文をキャッシュして、再利用できるようにします。文キャッシュの詳細は、「文キャッシュによるパフォーマンスの向上」を参照してください。
データ・ソース内の接続ごとに専用の文キャッシュがありますが、構成設定はデータ・ソース内のすべての接続に対して行われます。管理コンソールを使用してデータ・ソースのすべての接続について文キャッシュをクリアすることも、プログラムを介して個々の接続について文キャッシュをクリアすることもできます。
JDBCDataSourceRuntimeMBean.clearStatementCache
データ・ソース内のすべての接続について文キャッシュを手動でクリアするには、管理コンソールを使用するか(「JDBCデータ・ソース内の文キャッシュのクリア」を参照)か、JDBCDataSourceRuntimeMBean
のclearStatementCache()
メソッドを使用します。
weblogic.jdbc.extensions.WLConnection.clearStatementCache() weblogic.jdbc.extensions.WLConnection.clearCallableStatement(java.lang. String sql) weblogic.jdbc.extensions.WLConnection.clearCallableStatement(java.lang. String sql,int resType,int resConcurrency) weblogic.jdbc.extensions.WLConnection.clearPreparedStatement(java.lang. String sql) weblogic.jdbc.extensions.WLConnection.clearPreparedStatement(java.lang. String sql,int resType,int resConcurrency)
weblogic.jdbc.extensions.WLConnection
インタフェースのメソッドを使用すると、単一の接続用の文キャッシュをクリアすることや、キャッシュから個々の文をクリアすることができます。これらのメソッドは、処理が正常に実行されるとtrue
を返し、文が見つからなかったために処理が失敗するとfalse
を返します。
プリコンパイルされた文と呼び出し可能文がキャッシュに格納されると、それらは、正確なSQL文に基づき、および結果セット・パラメータ(タイプおよび同時実行性オプション)がある場合はそれらに基づき格納(キー化)されます。個々のプリコンパイルされた文または呼び出し可能文をクリアする場合、適切な結果セット・パラメータを受け取るメソッドを使用する必要があります。たとえば、resSetType
がResultSet.TYPE_SCROLL_INSENSITIVE
でresSetConcurrency
がResultSet.CONCUR_READ_ONLY
のキャッシュ内に呼び出し可能文がある場合、結果セット・パラメータを受け取るメソッドを使用する必要があります。
clearCallableStatement(java.lang.String sql,int resSetType,int resSetConcurrency)
パラメータとしてSQL文字列のみを受け取るメソッドを使用する場合、メソッドは文を見つけられず、キャッシュからは何もクリアされず、メソッドはfalse
を返します。
アプリケーションにより現在使用されている文をクリアすると、WebLogic Serverはその文をキャッシュから削除しますが閉じません。現在使用されてない文をクリアすると、WebLogic Serverはキャッシュからその文を削除して閉じます。
これらのメソッドの詳細は、WLConnectionのJavadocを参照してください。
JDBCDataSourceRuntimeMBean.shrink
データ・ソースには、プール内の接続の初期数、最小数および最大数を定義する一連のプロパティ(initialCapacity
、minCapacity
およびmaxCapacity
)があります。すべての接続が使用されると、データ・ソースにより、プールに接続が1つ自動的に追加されます。プールがmaxCapacity
に達すると、最大数の接続が開くことになり、データ・ソースで自動縮小を有効化するか、shrink()
メソッドを使用してデータ・ソースを手動で縮小しないかぎり、それらの接続は開いたままになります。
接続の使用がピークを過ぎた後、データ・ソースから接続をいくつか削除して、WebLogic ServerとDBMSのリソースを解放できます。管理コンソールの「JDBCデータ・ソース: 制御」ページの「縮小」オプション(Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソース内の接続プールの縮小に関する項を参照)、またはJDBCDataSourceRuntimeMBean
のshrink()
メソッドを使用できます。データ・ソースを縮小すると、WebLogic Serverは、プール内の接続の数を、minCapacity
と現在使用中の接続数のうち、大きい方の数まで削減します。
JDBCDataSourceRuntimeMBean.reset
データ・ソース内の使用可能なすべてのデータベース接続を閉じて再作成するために、管理コンソールの「JDBCデータ・ソース: 制御」ページの「リセット」オプション(Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソース内の接続のリセットに関する項を参照)、またはJDBCDataSourceRuntimeMBean
のreset()
メソッドを使用できます。これは、たとえば、DBMSが再起動された後に必要になることがあります。データ・ソース内の1つの接続が失敗したとき、多くの場合、プール内のすべての接続が不良です。
JDBCDataSourceRuntimeMBean.suspend JDBCDataSourceRuntimeMBean.forceSuspend
データ・ソースを中断するために、管理コンソールの「JDBCデータ・ソース: 制御」ページの「中断」および「強制中断」オプション(Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソースの中断に関する項を参照)、またはJDBCDataSourceRuntimeMBean
のsuspend()
およびforceSuspend()
メソッドを使用できます。
データ・ソースを中断すると(強制中断ではない)、データ・ソースは無効とマークされ、アプリケーションはプール内の接続を使用できません。データ・ソース中断時にそのデータ・ソースからの接続をすでに予約していたアプリケーションは、その接続を使用しようとしたときに例外を受け取ります。データ・ソース内のすべての接続は、データ・ソースが中断される前とまったく同じ状態で保持されます。
データ・ソースを強制中断すると、すべてのプール接続が破棄され、予約した接続を使用する以後の操作はすべて失敗します。クローズされた接続上のトランザクションはすべてロールバックされます。
JDBCDataSourceRuntimeMBean.resume
中断したデータ・ソースを再有効化するために、管理コンソールの「JDBCデータ・ソース: 制御」ページの「再開」オプション(Oracle WebLogic Server管理コンソール・ヘルプの中断したJDBCデータ・ソースの再開に関する項を参照)、またはJDBCDataSourceRuntimeMBean
のresume()
メソッドを使用できます。データ・ソースを再開すると、WebLogic Serverはデータ・ソースを有効とマークし、アプリケーションはデータ・ソースからの接続を使用できます。データ・ソースを中断した場合(強制中断ではない)、すべての接続が、中断前とまったく同じ状態で保持されます。データ・ソースの中断前に接続を予約していたクライアントは、中断が発生した時点の状態から作業を継続できます。データ・ソースを強制中断した場合、クライアントは、続行するために新しい接続を予約する必要があります。
注意: たとえば、データベース・サーバーが使用不可の場合など、正しく起動しなかったデータ・ソースは再開できません。 |
JDBCDataSourceRuntimeMBean.shutdown JDBCDataSourceRuntimeMBean.forceShutdown
データ・ソースを停止するために、管理コンソールの「JDBCデータ・ソース: 制御」ページの「停止」および「強制停止」オプション(Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソースの停止に関する項を参照)、またはJDBCDataSourceRuntimeMBean
のshutdown()
およびforceShutdown()
メソッドを使用できます。
データ・ソースを停止すると(強制停止ではない)、WebLogic Serverはデータ・ソース内のデータベース接続を閉じ、データ・ソースを停止します。データ・ソースのいずれかの接続が使用中の場合、この操作は失敗します。
データ・ソースを強制停止すると、WebLogic Serverはデータ・ソース内のデータベース接続を閉じ、データ・ソースを停止します。現在の接続ユーザーはすべて強制的に接続解除されます。
JDBCDataSourceRuntimeMBean.start
データ・ソースを停止した後、管理コンソールの「JDBCデータ・ソース: 制御」ページの「開始」オプション(Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソースの起動に関する項を参照)、またはJDBCDataSourceRuntimeMBean
のstart()
メソッドを使用できます。「開始」操作を呼び出すと、データ・ソースが再初期化され、接続が作成され、データ・ソースのヘルス状態が「実行中」に遷移します。
-Dweblogic.resourcepool.max_test_wait_secs=xx
ここで、xx
は時間(秒)であり、WebLogic Serverは、接続テストが失敗したと見なす前に接続テストを待機します。デフォルトでは、サーバー・インスタンスに10秒の値が割り当てられます。
このコマンド行フラグにより、接続テストおよびアプリケーションを長期間(たとえば、10分)ハングさせるDBMSネットワーク障害などの障害が管理されます。割り当てられた期間がすぎると、サーバー・インスタンスはプールをパージおよび無効化(すべての接続をクローズして追加の予約をブロック)し、再接続するとすぐにプールを再有効化します。
DBMSがクライアントへの応答を一時的に停止し、既存の接続でサービスを再開する可能性がある場合、10秒という値により、ピーク時の負荷を許容する適切な時間が提供されます。ただし、待機時間が長すぎる場合、または短すぎる場合、サーバーを起動するために使用されるstartWebLogic
スクリプトに、環境に合わせた値を含むフラグを追加します。時間の値をゼロ(0)秒に設定すると、サーバーは無限に待機します。