ヘッダーをスキップ
Oracle® Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド
11gリリース2(11.1.2.2.0)
B71702-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

21 Oracle Service Busのパフォーマンス・チューニング

この章では、Oracle Service Busのパフォーマンスをチューニングする方法について説明します。内容は次のとおりです。

21.1 Oracle Service Busについて

SOAフレームワーク内で、Oracle Service Bus (OSB)は、接続性、ルーティング、仲介、管理および一部のプロセス編成機能を提供します。OSBの設計理念は、高いパフォーマンスと2つ以上のアプリケーション間のステートレス(非永続状態)な中間機能を実現することです。ただし、SOA実装のスケールおよび機能の多様性により、OSBアプリケーションには、様々な使用パターン、メッセージ・サイズおよびQOS要件があります。

ほとんどのSOAデプロイメントで、OSBは、2つ以上のアプリケーション(サーバー)の中間機能の役割を果たす大規模なシステムの一部です。通常のOSB構成には、中間バックエンド・サービスの1つ以上のサービス・コールアウトを実行し、レスポンスをクライアントにルーティングする前に宛先バックエンド・システムにリクエストをルーティングする可能性のあるOSBプロキシを起動するクライアントが含まれます。

そのため、OSBが大規模なシステムの一部であり、チューニングの目的が全体のシステム・パフォーマンスの最適化であることを理解する必要があります。これには、スタンドアロン・アプリケーションとしてのOSBのチューニングだけではなく、OSBを使用した調整、リクエストのバッファリング、キャッシュ、優先順位付け、並列処理などのフロー制御パターンの実装が含まれます。

Oracle Service Busの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』を参照してください。

21.2 チューニングに関する基本的な考慮事項

OSBの使用状況およびパフォーマンスの問題に応じて、次の点をチューニングすることを検討してください。

21.2.1 JVMメモリーのチューニング

JVMパラメータは、OSBのパフォーマンスに影響を与える可能性があります。OSBのパフォーマンスを最適化する場合に検討する2つの主なJVMチューニング・パラメータは、ヒープ・サイズとガベージ・コレクションです。JVMのパフォーマンス・チューニングの詳細は、第2.4項「Java仮想マシン(JVM)のチューニング」を参照してください。

21.2.2 WebLogic Serverのチューニング

OSBを最適化するには、次のWebLogic Serverパラメータのチューニングを検討してください。

21.2.2.1 ドメイン・モード

本番環境では、「本番」モードのドメインを作成して、パフォーマンスを最大化します。パラメータは次のとおりです。

-Dweblogic.ProductionModeEnabled=true

WebLogic管理コンソールを使用してWebLogic Server本番モードを有効にするには、『Oracle Fusion Middleware Oracle WebLogic Serverドメイン構成の理解』を参照してください。

21.2.2.2 WebLogic Serverのロギング・レベル

OSBパフォーマンスのテストおよび本番環境では、できるだけ「エラー」や「警告」などの許容されている最も低いロギング・レベルを使用することを検討してください。詳細は、第2.10項「ロギング・レベルの設定」を参照してください。

21.2.2.3 HTTPアクセス・ロギング

OSBパフォーマンスを最適化するには、HTTPアクセス・ロギングをオフにすることを検討してください。詳細は、第6.3.3.1項「アクセス・ロギング」を参照してください。

21.2.2.4 JMSのチューニング

適切な永続性レベルがJava Message Service (JMS)の宛先に設定されていることを確認します。次のシナリオを検討してください。

  • 非永続JMSシナリオの場合

    WebLogic ServerコンソールのJMSサーバーの「一般」タブの「詳細」セクションから「ストアの有効化」フラグの選択を解除して、JMSサーバー・レベルの永続性を明示的にオフにします。また、JMS宛先レベルの永続モードをオーバーライドできます。

  • 永続JMSシナリオの場合

    ファイル・ストアとJDBCストアの2つの選択肢があります。通常、ファイル・ストアの操作は、JDBCストアよりもパフォーマンスが高くなります。複数のJMSサーバーが含まれる場合、個別のディスクに各ストアを作成して、I/Oの競合を少なくします。

JMSサーバー・チューニングの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverパフォーマンスおよびチューニング』のWebLogic JMSのチューニングに関する項を参照してください。

21.2.2.5 接続バックログのバッファリング

追加のリクエストを拒否する前にWebLogic Serverインスタンスが受け入れる接続リクエストの数をチューニングできます。「バックログの受入れ」パラメータには、待機キューにバッファリングできるTransmission Control Protocol (TCP)接続の数を指定します。この固定サイズのキューにTCPスタックが受け取った接続のリクエストが移入されますが、アプリケーションでまだ承認されていません。多くの同時クライアントを処理する場合には、このパラメータをチューニングする必要があります。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverパフォーマンスおよびチューニング』の接続バックログのバッファリングのチューニングに関する項を参照してください。

21.3 OSB操作設定のチューニング

この項では、次のOracle Service Bus操作設定について説明します。

21.3.1 OSBの監視

すぐに使用可能な監視サブシステムは多くのサービスおよびクラスタの複数のノードに対して非常に低いオーバーヘッドおよびスケールになりますが、数千のサービスまたは大規模なクラスタのデプロイメントを処理する場合に監視の有効化を選択すると、ネットワーク・トラフィックを削減できます。ビジネスまたはプロキシ・サービスが作成されると、その特定のサービスの監視がデフォルトで無効になります。詳細は、Oracle Fusion Middleware Oracle Service Bus管理者ガイドのプロキシ・サービスの操作設定の構成に関する項またはビジネス・サービスの操作設定の構成に関する項を参照してください。

個々に監視を有効化または無効化しているすべてのサービスの監視を有効または無効にするには、「操作のグローバル設定」ページの「モニターの有効化」オプションを使用します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のグローバル設定の有効化に関する項を参照してください。

21.3.2 OSBのトレース

Oracle Service Busには、サーバーを停止しないでメッセージをトレースするオプションがあります。これは、1つ以上のプロキシ・サービスのメッセージ・フローを含む問題のデバッグ、診断およびトラブルシューティングを行う開発および本番環境に非常に便利な機能です。

デフォルトのトレースは無効ですが、サービスごとに有効にできます。トレースを有効にすると、ヘッダーおよびメッセージ本文を含む全体のメッセージ・コンテキストも出力されます。大きいメッセージ・サイズおよび高いスループットのシナリオの影響を把握することが重要です。

詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のトレースを有効または無効にする方法に関する項を参照してください。

21.3.3 プロキシ・サービスの実行時データのキャッシュ・チューニング

OSBは、静的および動的セクションの2つのレベルのキャッシュを使用して、プロキシ・サービスの実行時メタデータをキャッシュします。このキャッシュにより、メモリー使用量およびコンパイル・コストのパフォーマンスのトレードオフが導入されます。プロキシ・サービスのキャッシュによってスループットが高くなる場合がありますが、メモリーの使用に影響を与える可能性があります。

静的セクションは、ガベージ・コレクションが実行されない上限のLeast Recently Used (LRU)キャッシュです。プロキシ・サービスが静的セクションから除外される場合、メモリーの不足時にキャッシュのガベージ・コレクションを実行できる動的セクションに降格されます。

システム・プロパティcom.bea.wli.sb.pipeline.RouterRuntimeCache.sizeでサイズを設定して、キャッシュの静的部分のプロキシ・サービスの数をチューニングできます。デフォルト値は100です。多くのプロキシ・サービスの実行時データ処理に十分なメモリーがある場合は、任意の値に増やすことができます。

次に示すように、追加のJava引数としてこのプロパティ値をsetDomainEnv.shファイルに設定できます。

-Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.size={size}

例:

EXTRA_JAVA_PROPERTIES="-Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.size=3000 ${EXTRA_JAVA_PROPERTIES}"

21.4 トランスポート・チューニング(Oracle WebLogic ServerおよびOracle Service Bus)

ポーラー・ベースのトランスポートの待機時間およびスループットは、ソースがポーリングされる頻度およびポーリング・スイープごとに読み込まれるファイルとメッセージの数によって異なります。

次に、チューニングする主なトランスポート構成を示します。

21.4.1 ポーリング間隔

メッセージ・サイズが大きすぎず、CPUが飽和していない高いスループットのシナリオに短いポーリング間隔を使用することを検討してください。追加情報のリンクとともに主なポーリング間隔のデフォルトを次に示します。

ポーリング間隔 デフォルトの間隔 追加情報

ファイル・トランスポート

60秒

『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のファイル・トランスポート構成ページに関する項

FTPトランスポート

60秒

『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のFTPトランスポート構成ページに関する項

MQトランスポート

1000ミリ秒

『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のMQトランスポート構成ページに関する項

SFTPトランスポート

60秒

『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のSFTPトランスポート構成ページに関する項

JCAトランスポート

60秒

『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のJCAトランスポート構成ページに関する項

第18.3.1項「JCAアダプタのチューニングに関する基本的な考慮事項」も参照してください。


21.4.2 読取り制限

読取り制限は、ポーリング・スイープごとに読み込まれるファイルまたはメッセージの数を決定します。ファイルおよびFTPトランスポートに使用されるこのデフォルトは10です。0を設定して無制限を指定できます。この値を任意の同時実行性に設定してください。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のファイル・トランスポート構成ページに関する項を参照してください。


注意:

読取り制限を高い値、ポーリング間隔を小さい値に設定すると、多くのメッセージがメモリーに同時に読み込まれる場合があります。メッセージ・サイズが大きい場合、OOM(メモリー不足エラー)が発生する可能性があります。


21.5 プロキシ・アプリケーションの設計時の考慮事項

OSBの使用およびユースケース・シナリオに基づいて、プロキシ・アプリケーションの次の設計の構成を検討してください。

21.6 XQueryチューニングの設計の考慮事項

OSBは、割当て、置換、ルーティング表などの様々なアクションに幅広くXQueryおよびXPathを使用します。次のXML構造($body)を使用して、XQueryおよびXPathチューニングの概念を説明します。

<soap-env:Body>
<Order>
<CtrlArea>
<CustName>Mary</CustName>
</CtrlArea>
<ItemList>
<Item name="ACE_Car" >20000 </Item>
<Item name=" Ext_Warranty" >1500</Item>
…. a large number of items
</ItemList>
<Summary>
<Total>70000</Total>
<Status>Shipped</Status>
<Shipping>My Shipping Firm </Shipping>
</Summary>
</Order>
</soap-env:Body>