Oracle® Fusion Middleware Oracle WebLogic Serverのパフォーマンスのチューニング 12c (12.1.2) E48078-03 |
|
![]() 前 |
![]() 次 |
この章では、WebLogicデータ・ソースのパフォーマンスを最大にする方法のヒントを示します。
『Oracle WebLogic Server JDBCデータ・ソースの管理』のデータ・ソース接続プール・オプションのチューニングに関する項には、データ・ソースのパフォーマンスを向上させるための提案が多く記載されています。簡単なサマリーを次に示します:
文の準備に伴う処理オーバーヘッドを回避するには、文キャッシュを使用します。
予約時の接続テストは、アプリケーションで無効な接続の発生を回避するために重要です。ただし、オーバーヘッドを軽減するには、Seconds to Trust an Idle Pool Connection
などのオプションを使用してください。データ・ソースが一時停止した際の制御に役立つ関連パラメータがあります。
データベース接続を取得するスレッド間の競合を排除してパフォーマンスを向上させるには、Pinned-to-Thread
を使用します。
Oracleデータ型のラッピングを無効にします。
接続は、使い終えた時点でアプリケーションで明示的に閉じることをお薦めしますが、接続リークの検出を有効にすると、接続を自動的にプールに戻すことができます。
リソースの浪費を回避することも、パフォーマンスを向上させる簡単な方法の一つです。次のような状況で、JDBC関連のリソースの浪費を回避できます。
JNDIルックアップは比較的コストがかかるため、クライアント・コードまたはアプリケーション・コードでルックアップを要求したオブジェクトをキャッシュしておくと、パフォーマンスに何度も影響を与えることがなくなります。
クライアントまたはアプリケーション・コードで接続を取得したら、接続を閉じて新しい接続を再取得する代わりに、その接続をできる限り再利用します。既存の接続を取得して戻すと、新しい接続を作成する場合よりもコストが抑えられますが、取得とプールへの返却を過度に行うと、接続プールに競合が発生して、アプリケーションのパフォーマンスが低下します。
注意: Active GridLink (AGL)データ・ソースを使用する際は、接続を長期間保持することによって、ランタイム・ロード・バランシング(RLB)を回避できます。 |
作業の実行に必要な時間よりも長く接続を保持しません。接続を一度取得して必要な作業をすべて完了したら、できるだけ早く接続を戻すようにすると、全体的なパフォーマンスのバランスが最適になります。
WebLogic Serverの負荷が重くなる(CPU使用率が高い)一部の状況では、データベース・リスナーがタイムアウトし、新規接続の作成中に例外をスローする場合があります。この問題を解決するには、データベース・サーバー上でリスナー・タイムアウトを増進します。次の例は、オラクル社のドライバおよびデータベースの例です。
スローされた例外はResourceDeadException
で、ドライバの例外はソケット読取りは時間切れ
でした。
解決するには、次を使用してデータベース・サーバーのタイムアウトを増進します。
sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=180
Oracleドライバとデータベースを使用する場合にデータ・ソースとドライバのパフォーマンスを向上させる詳細構成オプションが用意されています。オプションには、Oracle Proxy Authentication、Active GridLink、データベース常駐接続プーリングなどがあります。Active GridLinkを使用すると、トランザクションとWebセッションの緊密な連携が可能となり、パフォーマンスが向上します。『Oracle WebLogic Server JDBCデータ・ソースの管理』のOracleドライバとデータベースの詳細構成に関する項を参照してください。
Oracleには、その他の高度な機能があります。
アプリケーションの初期化が高負荷な場合は、接続ラベリングを使用することで、接続を予約する際のパフォーマンスが大幅に向上します。『Oracle WebLogic Server JDBCデータ・ソースの管理』の接続のラベリングに関する項を参照してください。
接続プールのより高度な制御が必要なアプリケーションに関しては、『Oracle WebLogic Server JDBCデータ・ソースの管理』の接続の収集に関する項を参照してください。
データベース・アプリケーションのパフォーマンスの良し悪しはほとんどの場合、アプリケーション言語ではなく、アプリケーションがどのように設計されているかによって決定されます。クライアントの数と場所、DBMS表および索引のサイズと構造、および問合せの数とタイプは、すべてアプリケーションのパフォーマンスに影響を与えます。『Oracle WebLogic Server JDBCアプリケーションの開発』のベスト・パフォーマンスのためのアプリケーションの設計に関する項を参照してください。