X

An Oracle blog about WebLogic Channel

「解説!JDBCデータソースと接続プール」レポート

WebLogic勉強会 通信

WebLogic Serverファンの皆様、こんにちは、WebLogic Server勉強会通信です。
2014年2月12日に大阪で開催された
「WebLogic Server勉強会@大阪 第119回 夜な夜な! なにわオラクル塾 -WebLogic Serverを基礎から学ぶシリーズ第2弾 解説!JDBCデータソースと接続プール」
(講師:日本オラクル Fusion Middleware事業統括本部 ソリューション本部 野邊 哲男)をレポートします(資料)。データソースはこれまでのWebLogic Server勉強会でも度々取り上げて来たトピックスです。初めに復習を兼ねてQuizを2問出題しますのでぜひトライしてください。今回はWebLogic Server 12.1.2の新機能などを中心に説明します。WebLogic Serverとデータベース連携の仕組みを理解することはアプリケーションの運用管理を行う上で非常に重要です。この機会にマスターしてぜひ現場で実践してください。(日本オラクル Fusion Middleware事業統括本部 佐々木 政和)

JDBCデータソースと接続プールの基本をマスターしよう!

WebLogic Serverが提供する機能の中でもJDBCデータソースは性能や信頼性の面で重要な機能の一つです。
JDBCデータソースの役割は、データベースをアクセスするアプリケーションプログラムをできるだけ
シンプルに開発できるようにすること、高性能で高信頼性のアプリケーションを提供するためにデータベースへの
接続や切断のオーバーヘッドを削減したり、接続のテストや切れた時のリカバリー対応を行うことなどです。

アプリケーション開発の視点では、JNDIでデータソースをルックアップし、次にgetConnection()を呼び出すことで、
データソースからデータベース接続を取得します。接続の使用が終わったら、アプリケーションは
できるだけ早くconnection.close()を呼び出して、データベース接続をプールに戻し、
他のアプリケーションが使用できるようにする必要があります。また、管理コンソールやMBeanを活用したWLSTを用いて
データソースや接続プールを監視・管理することで
WebLogic Serverとデータベースの動作状況を把握したり制御することができます。

データソース復習Quiz1

解答:3

間違っているのは、「3. データベース接続はコンフィグレーションウィザード実行時に作成される。」です。
データベース接続は、データソース・インスタンスの作成、つまりデータソースを作成しターゲットを指定しアクティブ化
する時か、サーバー起動時に作成されます。
また
データベースを起動する前にWebLogic Serverを
起動した場合はデータベース接続の初期化に失敗しますが、
アプリケーションは起動されます。

データソース復習Quiz2

解答:2


正しいものは、「2:データベース接続をプールに戻す。データベース側では接続可能数は変わらない。」です。
データベース接続プールの機能によりクローズされた接続はプールに戻され、他のアプリケーションが使用できます。
データベース側では接続可能数は変わりません。

過去の「データソース特集」情報

上の2問にいまひとつ納得感が持てない方がいらっしゃいましたら、WebLogic Server勉強会で過去に取り上げた「データソース特集」セッションの資料やレポートをご参考にしてください。


  • WebLogic Serverとデータベース接続の基礎から応用

  • クイズで確認!WebLogic Serverのデータソース徹底活用
  • WebLogic Server 12.1.2新機能:Application Continuityとは

    Application Continuityは、データベース障害時にアプリケーションのデータベース処理の
    フェイルオーバー(Replay)を透過的に実行する機能です。
    これは、Oracle Database12cとOracle JDBC Driver 12cにより提供される機能で、
    JDBCを使用するアプリケーションやWebLogic Server 12.1.2上で動作するアプリケーションに適用できます。
    アプリケーションがデータベースに対して処理を実行している最中にデータベースに障害が発生した場合でも、
    その復旧後や、RACであれば残存インスタンスにフェイルオーバーして処理を継続することができます。
    特にアプリケーション側で特別なコードを記述する必要はないため、既存のアプリケーションのデータベース
    処理の可用性を容易に向上することができます。

    データソースの接続プール属性(接続テスト・オプション)を学ぶ

    WebLogic Serverは、データソース内のデータベース接続が常に正常であるように、
    接続を定期的にテストする機能を提供しています。データベースやネットワークが不安定な環境では
    WebLogic Server 12.1.2から登場した「接続プールの接続再作成失敗時に対応した制御機能」
    (フラッシュされるまでのテストの失敗数、無効化されるまでリフレッシュに失敗した接続の数)を
    適切に使用することが有効な場合があります。

    管理コンソールまたはWLSTでアクセス可能なJDBCConnectionPoolParamsBeanオプションの中で
    主要な属性を説明します。

    テスト頻度—(JDBCConnectionPoolParamsBean内のTestFrequencySeconds):


    WebLogic Serverが未使用の接続に対してテスト接続を試みる間隔(秒数)を指定する。
    テストが失敗した場合は一旦クローズして物理接続を再確立するために再オープンする。

    予約時に接続をテスト—(JDBCConnectionPoolParamsBean内のTestConnectionsOnReserve):

    このオプションが有効な場合は要求元からの接続リクエストに対して接続を渡す前にWebLogic Serverが接続テストを行う。
    リクエストへの応答が若干遅れるが、要求元に返す接続は正常であることが保証される。

    テスト対象の表名—(JDBCConnectionPoolParamsBean内のTestTableName):

    接続テストで使用する表名の指定に使用する。また、SQLと入力してスペースを1つ続け、
    テストとして実行するSQLコードを入力することによって、標準テストのかわりに実行するSQLコードを指定することもできる。

    アイドル・プール接続を信頼する秒数—(JDBCConnectionPoolParamsBean内のSecondsToTrustAnIdlePoolConnection):


    このオプションは、接続がアプリケーションに渡される前、または定期的な接続テストの処理中に、
    WebLogic Serverがその接続がまだ有効であり接続テストをスキップすることができると信頼する秒数を指定する。
    これは、特に大量のトラフィックが発生している場合に接続テストがパフォーマンスに及ぼす影響を最小限に抑える
    最適化オプションです。デフォルトは10秒。

    フラッシュされるまでのテストの失敗数—(JDBCConnectionPoolParamsBean内のCountOfTestFailuresTillFlush):

    (WebLogic Server 12.1.2で提供された機能)
    さらなる
    データベースへの接続テストによって発生する遅延を最小限に抑えるために
    WebLogic Serverが接続プール内のすべての接続をクローズするまでの
    接続テストの失敗数を指定する。デフォルトは2。

    無効化されるまでリフレッシュに失敗した接続の数—(JDBCConnectionPoolParamsBean内のCountOfRefreshFailuresTillDisable):

    (WebLogic Server 12.1.2で提供された機能)
    データベースの異常終了によって発生する接続リクエストの処理の遅延を
    最小限に抑えるためにWebLogic Serverが接続プールを無効にするまでの
    接続テストの失敗数を指定する。デフォルトは2。

    主要なJDBCDataSourceRuntimeMBeanを覚える


    データソースの実行時の状況は、管理コンソールまたはJBCDataSourceRuntimeMBeanを使用して
    アクセスできます。JDBCDataSourceRuntimeMBeanは、データソースの現在の状態を取得するためのメソッド
    およびアクティブな接続の平均数、アクティブな接続の現在の数、アクティブな接続の最大数など、
    データソースに関する統計を取得するためのメソッドを提供しています。

    まとめ

    今回はWebLogic Serverのデータソースの機能を説明しました。アプリケーションの要件や環境によっては
    WebLogic Server 12.1.2で新たに加わったApplication Continuity機能やJDBCConnectionPoolParamsBean内の
    CountOfTestFailuresTillFlush、CountOfRefreshFailuresTillDisable属性などの新オプションが
    効果を発揮します。もう一度、(「解説!JDBCデータソースと接続プール」資料)を
    レビューしてください。

    次回の大阪開催はWebLogic Serverを基礎から学ぶシリーズ第3弾です。5月14日(参加申し込み開始は4月中旬)を予定しています。皆様のご参加をお待ちしています。




    Be the first to comment

    Comments ( 0 )
    Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.