WebLogic JDBC のコンフィグレーションと管理

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

WebLogic JDBC リソースの管理

Administration Console、JMX プログラム、または WebLogic Scripting Tool (WLST) スクリプトを使用して、ドメイン内の JDBC データ ソースを管理できます。この節の内容は、以下のとおりです。

 


データ ソースおよびデータベース接続のテスト


JDBCDataSourceRuntimeMBean.testPool

データ ソース内のデータベース接続が正常な状態であることを確認するには、接続を定期的にテストする必要があります。WebLogic Server では、2 種類の基本的なテストが行われます。データ ソース上で属性を使ってコンフィグレーションする自動テストと、データ ソースのトラブルシューティングに利用できる手動テストです。

WebLogic Server がプール接続の一貫性を自動的に保てるようにすることで、DBMS 接続に関する問題の大半は防げるはずです。自動接続テストのコンフィグレーションの詳細については、「データソースの接続テスト オプション」を参照してください。

データ ソースからの接続の手動テストには、Administration Console の [JDBC データ ソース : モニタ : テスト] ページの [データ ソースのテスト] 機能 (「JDBC データ ソースのテスト」を参照) または JDBCDataSourceRuntimMBeantestPool() メソッドを使用できます。データ ソースからのデータベース接続をテストするには、データ ソースのコンフィグレーションで [予約時に接続をテスト] を有効化し、[テスト対象のテーブル名] を定義しておく必要があります。どちらも、Administration Console を使用してデータ ソースを作成した場合には、デフォルトで定義されます。

データ ソースをテストする際、WebLogic Server は接続を予約し、[テスト対象のテーブル名] で定義したクエリを使用してそれをテストし、その後、接続を解放します。

 


データ ソースのステートメント キャッシュの管理

システム内のデータ ソースにおける各接続について、WebLogic Server はステートメント キャッシュを作成します。接続でプリペアド ステートメントまたは呼び出し可能ステートメントが使用されると、WebLogic Server はその文をキャッシュして、再利用できるようにします。ステートメント キャッシュの詳細については、「ステートメント キャッシュによるパフォーマンスの向上」を参照してください。

データ ソースの各接続には、独自のステートメント キャッシュがありますが、コンフィグレーションの設定はデータ ソース内のすべての接続に対して行われます。Administration Console を使用して、データ ソース内のすべての接続についてステートメント キャッシュをクリアすることも、プログラムを介して個々の接続についてステートメント キャッシュをクリアすることもできます。

データ ソースのステートメント キャッシュのクリア


JDBCDataSourceRuntimeMBean.clearStatementCache

データ ソース内のすべての接続についてステートメント キャッシュを手動でクリアするには、Administration Console を使用する (「 JDBC データ ソース内のステートメント キャッシュのクリア」を参照) か、または JDBCDataSourceRuntimeMBeanclearStatementCache() メソッドを使用します。

単一接続用のステートメント キャッシュをクリアする

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 文と、必要に応じて結果セット パラメータ (タイプおよび同時実行性オプション) に基づいて格納 (キー化) されます。個々のプリペアド ステートメントまたは呼び出し可能ステートメントをクリアする場合は、適切な結果セット パラメータを取るメソッドを使用する必要があります。たとえば、resSetTypeResultSet.TYPE_SCROLL_INSENSITIVEresSetConcurrencyResultSet.CONCUR_READ_ONLY のキャッシュ内に呼び出し可能ステートメントがある場合は、結果セット パラメータを取るメソッドを使用することが必要です。

clearCallableStatement(java.lang.String sql,int resSetType,int resSetConcurrency)

パラメータとして SQL 文字列のみを取るメソッドを使用する場合は、メソッドは文を見つけられず、キャッシュからクリアされるものはありません。メソッドは false を返します。

現在アプリケーションによって使用中の文をクリアする場合、WebLogic Server はその文をキャッシュから削除しますが、閉じはしません。現在使用中でない文をクリアする場合、WebLogic Server はキャッシュからその文を削除して閉じます。

これらのメソッドの詳細については、WLConnection の Javadoc を参照してください。

 


データ ソースの縮小


JDBCDataSourceRuntimeMBean.shrink

データ ソースは、プール内の接続の初期数と最大数を定義する一連のプロパティ (initialCapacitymaxCapacity) と、接続がすべて使用中のときにプールに追加される接続の数を定義するプロパティ (capacityIncrement) を備えています。プールがその最大容量に達すると、最大数の接続が開くことになり、データ ソースで自動縮小を有効化するか、shrink() メソッドを使って手動でデータ ソースを縮小しない限り、それらの接続は開いたままになります。

接続の使用がピークを過ぎれば、データ ソースから接続をいくつか削除して、WebLogic Server と DBMS のリソースを解放してもかまいません。Administration Console の [JDBC データ ソース : 制御] ページの [縮小] オプション (「JDBC データ ソース内の接続プールの縮小」を参照)、または JDBCDataSourceRuntimeMBeanshrink() メソッドを使用できます。データ ソースを縮小するとき、WebLogic Server はプール内の接続の数を、初期容量と現在使用中の接続数の、いずれか大きいほうの数まで低減します。

 


データ ソースのリセット


JDBCDataSourceRuntimeMBean.reset

データ ソースの利用可能なすべてのデータベース接続を閉じて再作成するには、Administration Console の [ JDBC データ ソース : 制御] ページの [リセット] オプション (「 JDBC データ ソース内の接続のリセット」を参照)、または JDBCDataSourceRuntimeMBeanreset() メソッドを使用できます。これは、たとえば、DBMS が再起動された後に必要になることがあります。データ ソース内の 1 つの接続が失敗した場合は、プール内のすべての接続が不良であることが往々にしてあります。

 


データ ソースの中断


JDBCDataSourceRuntimeMBean.suspend

JDBCDataSourceRuntimeMBean.forceSuspend

データ ソースを中断するには、Administration Console の [ JDBC データ ソース : 制御] ページの [中断] オプションと [強制中断] オプション (「 JDBC データ ソースの中断」を参照)、または JDBCDataSourceRuntimeMBeansuspend() メソッドと forceSuspend() メソッドを使用できます。

データ ソースを中断 (強制中断ではない) する場合、データ ソースは無効化されたものとしてマークされ、アプリケーションではプールからの接続を使用できません。中断されたデータ ソースからの接続をすでに予約していたアプリケーションは、その接続を使用しようとしたときに例外を受け取ります。データ ソース内のすべての接続は、データ ソースが中断される前の状態のままで保持されます。

データ ソースを強制中断する場合、WebLogic Server はデータ ソースを無効化されたものとしてマークし、現在接続を使用中のアプリケーションの接続を強制的に解除し、データ ソースが中断された時点で使用中だった接続を再作成します (閉じてから再び開きます)。閉じられる接続上のトランザクションはすべてロールバックされます。WebLogic Server は、他の接続をすべて、データ ソースが中断される前の状態のままで保持します。

 


データ ソースの再開


JDBCDataSourceRuntimeMBean.resume

中断したデータ ソースを再有効化するには、Administration Console の [ JDBC データ ソース : 制御] ページの [再開] オプション (「 中断されている JDBC データ ソースの再開」を参照)、または JDBCDataSourceRuntimeMBeanresume() メソッドを使用できます。データ ソースを再開する場合、WebLogic Server はデータ ソースを有効化されているものとしてマークし、アプリケーションでデータ ソースからの接続が使用できるようにします。データ ソースを中断 (強制中断ではない) した場合、すべての接続が、中断前とまったく同じ状態で保存されます。データ ソースの中断前に接続を予約してあったクライアントは、中断した箇所とまったく同じところから JDBC 処理を続行できます。データ ソースを強制中断した場合、中断の時点で使用中ではなかった接続が、中断前とまったく同じ状態で保存されます。使用中だった接続は、閉じられ、再び開かれます。接続を予約してあったクライアントには、有効な JDBC コンテキストがなくなっています。

注意 : たとえばデータベース サーバが利用できない場合などの、正しく起動しなかったデータ ソースは再開できません。

 


データ ソースの停止


JDBCDataSourceRuntimeMBean.shutdown

JDBCDataSourceRuntimeMBean.forceShutdown

データ ソースを停止するには、Administration Console の [ JDBC データ ソース : 制御] ページの [停止] オプションと [強制停止] オプション (「 JDBC データ ソースの停止」を参照)、または JDBCDataSourceRuntimeMBeanshutdown() メソッドと forceShutdown() メソッドを使用できます。

データ ソースを停止する (強制停止ではない) 場合、WebLogic Server はデータ ソース内のデータベース接続を閉じ、データ ソースを停止します。データ ソースのいずれかの接続が使用中の場合、このオペレーションは失敗します。

データ ソースを強制停止する場合、WebLogic Server はデータ ソース内のデータベース接続を閉じ、データ ソースを停止します。現在の接続ユーザはすべて強制的に接続解除されます。

 


データ ソースの起動


JDBCDataSourceRuntimeMBean.start

データ ソースを停止後、Administration Console の [ JDBC データ ソース : 制御] ページの [起動] オプション (「 JDBC データ ソースの起動」を参照)、または JDBCDataSourceRuntimeMBeanstart() メソッドを使用できます。起動処理を呼び出すと、データ ソースが再初期化され、接続が作成され、データ ソースが [実行中] 状態に遷移します。


ページの先頭       前  次