11 トランザクションのチューニング

トランザクションのパフォーマンスを最適化するためのOracle WebLogic Serverのチューニング・ガイドラインを学習します。

XAトランザクション・クラスタ・アフィニティを使用したスループットの向上

XAトランザクション・クラスタ・アフィニティによって、グローバル・トランザクションに参加しているサーバー・インスタンスが、関連するリクエストを他のメンバー・サーバーにロード・バランシングしないで処理できるようになります。

Enable Transaction Affinity=trueの場合、クラスタ・スループットは次のようにすることによって増加します。

  • サーバー間トランザクション調整トラフィックの削減

  • JDBC接続の削減など、リソース使用率の向上

  • トランザクションの非同期処理の単純化

Oracle WebLogic Server管理コンソール・オンライン・ヘルプクラスタの構成に関する項、および『Oracle WebLogic Serverクラスタの管理』XAトランザクション・アフィニティに関する項を参照してください。

ロギング・ラスト・リソース・トランザクションの最適化

JDBCデータ・ソースを通じてロギング・ラスト・リソース(LLR)のトランザクションの最適化を行うと、データベースの挿入、更新、削除などを含む2フェーズ・トランザクションに関するオーバーヘッドを、安全に軽減できます。2フェーズ・トランザクションは、別の2つのリソースが同じグローバル・トランザクション(「XA」または「JTA」トランザクションとも呼ばれる)に参加する場合に発生します。

次のことを考慮してください。

  • JMSアプリケーションでの一般的な2フェーズ・トランザクションには、通常、JMSサーバーとデータベース・サーバーの両方が関与します。LLRオプションを使用するとXAの2倍のパフォーマンスを実現できます。

  • WebLogicをはじめ他のベンダーでも利用できる「最後のエージェント」、「最後の参加者」、「2フェーズ・コミットのエミュレート」といった広く知られたXA最適化に比べ、JDBC LLRオプションは安全性が高くなります。

  • JDBC LLRでは、2フェーズ・トランザクションのレコードをトランザクション・マネージャのログ(TLOG)ではなく、データベース表に保存します。

『Oracle WebLogic Server JTAアプリケーションの開発』ロギング・ラスト・リソース・トランザクションの最適化に関する項を参照してください。

LLRチューニング・ガイドライン

この項では、LLRのチューニングのガイドラインを示します。

  • 『Oracle WebLogic Server JTAアプリケーションの開発』ロギング・ラスト・リソース・トランザクションの最適化に関する項、および『Oracle WebLogic Server JDBCデータ・ソースの管理』LLRデータ・ソースに関するプログラミング上の考慮事項と制限事項に関する項を読んで理解することをお薦めします。LLRを使用すると、管理および設計に重要な影響を与える場合があります。

  • JDBC LLRを使用すると、SQLのupdate、delete、またはinsertを含んだ2フェーズ・トランザクションのパフォーマンスは通常、向上します。

  • LLRを使用すると、SQLがすべて読取り(select)のみの2フェーズ・トランザクションのパフォーマンスは通常、低下します。

  • JDBC LLRのプールはWebLogic JDBCストアに対しパフォーマンス上の利点を持たません。WebLogic JDBCストアはトランザクションに完全に対応していますが、その内部のJDBC接続ではJTA (XA)トランザクションが使用されません。

  • コネクタ用の「最後のエージェント」による最適化や、JDBC接続プール用の「2フェーズ・コミットのエミュレート」オプション(従来の名称は、非XAドライバを使用するプール用の「2フェーズ・コミットを有効化」)といった比較的安全性の低い手法の代わりに、LLRの使用を検討します。

  • OracleデータベースではLLR表を多用すると長期的に断片化が起こる場合があり、未使用範囲の発生につながることがあります。これは、LLR表のデータが一時的な性質を持つことにより発生していると考えられます。この問題を回避するには、LLR表においてPCT_FREEを5、PCT_USEDを95に設定します。または、ALTER TABLESPACE [tablespace-name ] COALESCEコマンドを使用して定期的なデフラグを行います。

読取り専用の1フェーズ・コミットの最適化

Oracle Database (Oracle AQやOracle RACを含む)などのリソース・マネージャが、読取り専用の最適化を提供するとき、Oracle WebLogicは読取り専用の1フェーズ・コミットの最適化を提供します。同一のXAトランザクションの複数接続を有効化するときでさえも、Oracle WebLogicやリソース・マネージャの両方でXAResource.prepareネットワーク呼出しやトランザクション・ログの書込みを削除するなど、これにはかなりのメリットがあります。

『Oracle WebLogic Server JTAアプリケーションの開発』読取り専用の1フェーズ・コミットの最適化に関する項を参照してください。

TLogを使用しないXAトランザクションの構成

XAトランザクションの範囲が単一のトランザクション・マネージャ(TM)である場合、TLogを除去することによりXAトランザクションのパフォーマンスを向上させます。TLogが存在しない場合、トランザクション・リカバリ中はXAトランザクション・リソース(決定子)が使用されます。

『Oracle WebLogic Server JTAアプリケーションの開発』TLogを使用しないトランザクションに関する項を参照してください。