JMSアクティベーション・スペックの設定で、MDBの並列度の調整(同時稼働MDBインスタンス数の調整)が可能です(デフォルト値:10)。[管理コンソール]→[リソース]→[JMSプロバイダー]→[Default messaging provider]→[アクティベーション・スペック]→「MDB名」→[最大並行エンドポイント数]で指定します(図19)。
「最大並行エンドポイント数」の値は、MDBインスタンスの同時稼働数を制限します。この値を超えた同時リクエストをMDBは受け付けできません。
「Tivoli Performance Viewer」を利用し、[管理コンソール]→[Performance Modules]→[SIBサービス]→[SIBメッセージング・エンジン]→「メッセージング・エンジン名」→[Destinations]→[Queues]→「キュー名」で、「AvailableMessageCount」をモニターすることにより、キューに対する負荷を把握できます。
「AvailableMessageCount」の値が大きい場合(queue depthが深い場合)、該当するMDBによるメッセージの処理が追い付いていない可能性があります(JMSクライアントから送られてくるリクエストメッセージをMDBが処理し切れていない)。その場合は、[最大並行エンドポイント数]の値を増加させて、MDBの同時並行稼働インスタンスを増やすことにより、改善が見られる可能性があります(注意:メッセージの順序保障をWASが実施する必要がある場合には(アプリケーションではメッセージ順序の確認や順序変更を行わない場合)、[最大並行エンドポイント数]の値を「1」にする必要があります)。
「最大バッチ・サイズ」(デフォルト値は、「1」)を指定することにより、1つのエンドポイントが同時に受け取るメッセージ数を決定できます(図19)。
例えば、「最大並行エンドポイント数」が「10」で、「最大バッチ・サイズ」が「3」の場合、最大で「30」メッセージがMDBに渡されます。「Available message count」が大きい場合には、「最大バッチ・サイズ」の値を調整することにより、パフォーマンス向上が期待できます。
すべてのMDB合計の並列度は、「SIB JMS Resource Adapter」に割り当てられているスレッド・プール(「Default」スレッド・プール)のサイズに制限されます。なお、「Default」スレッド・プールはほかの用途でも使用されます。
[管理コンソール]→[リソース]→[リソース・アダプター]→[有効範囲]を選択し、さらに、[設定]を拡張し、[組み込みリソースの表示]を選択し、[適用]をクリックすると、「ユーザー設定が変更されました。」というメッセージが表示され、[SIB JMS Resource Adapter]が表示されます(図20)。
[SIB JMS Resource Adapter]を選択し、「スレッド・プール別名」を確認します(図21)。
「Default」スレッド・プールの最小値は「5」、最大値は「20」です(図22)。
独自にスレッド・プールを定義し、それを[SIB JMS Resource Adapter]に割り当てることも可能です。その場合は、そのスレッド・プールはMDB(SIB JMS Resource Adapter)にのみ利用されます。
[JMS Resource Adapter]で、独自のスレッド・プールを使用する場合には、[スレッド・プール別名]で指定したスレッド・プールを新規作成します。Defaultスレッド・プールは、ほかのコンポートントも使用しているため、独自のスレッド・プールを使用した方が、チューニングに適しています。
今回は、JMS関連のチューニングについて解説を行いました。要点をまとめますと、以下の4項目を検討することになります。
1および2は、システム要件およびシステム基盤構成に関係するためパフォーマンス性能以外の側面も含めて検討が必要となります。3および4の調整については、システム・リソースとの兼ね合いを見ながら、「Tivoli Performance Viewer」「Service Integration Bus Explorer(SIB Explorer)」(連載第1回参照)を利用して調整を行います。
今回をもちまして、WebSphereサーバ・チューニング入門の連載は終了いたします。
これまで取り上げた内容としては、「チューニング前にやること」「パフォーマンス解析・チューニングのツール」「WAS高速化のためのポイント」「トランスポート・チャネルのチューニング」「JVMチューニング」「DB連携チューニング」「EJBチューニング」「JMSチューニング」などです。システムごとにチューニングが必要となる個所は異なりますが、連載第3回あるいは第4回までの内容は、ほぼすべてのWebアプリケーション・サイトで共通するチューニング事項といえるでしょう。
連載第2回で紹介した「WAS高速化のための主要12項目」の中でも、「HTTPSession」「動的キャッシング」については解説できませんでした。「HTTPSession」は、多くのWebアプリケーション・サイトで利用されている技術であり、システム全体の性能に影響を与える可能性が高いので、設計およびチューニングは十分に検討するようにしましょう。「動的キャッシング」は、アプリケーションに依存しますが、利用可能な場合にはパフォーマンス向上が期待できますので、利用を検討する価値はあるでしょう。
また残念ながら、「セキュリティ」「Webサービス」「XML」といったトピックや、「SIP」「EJB 3.0」「Web 2.0」といった新しい技術についても触れることができませんでした。WASおよびそのベースとなるJVMもリリースを重ねるごとにパフォーマンス性能が向上されており、今後も継続的に機能拡張および性能向上がなされます。
別の機会があれば、上記のような本連載で触れられなかったチューニング情報や「WAS v7」といった最新リリースに関する情報を提供するようにいたします。約1年半にわたる連載にお付き合いいただき、本当にありがとうございました。
@IT関連記事
Java開発者のためのFAQ集
Java開発者が 最低限押さえておくべきJavaに関する基礎知識、実際のソリューション構築の場面で定石とされるノウハウ、プログラミングTIPSなどのFAQをご紹介していきます
エンタープライズへの適用
・JMSの役割を教えてください
・Webアプリケーションとホストを連携した事例を教えてください
・Webアプリケーションとホストを連携する手法を教えてください
・なぜホスト資産とWebシステムを連携させるのですか?
J2EEと外部システムを連携する方法
[連載]Java初心者のためのWebシステム入門(7) J2EEがサポートする接続方法は多様だ。今回はJ2EEと外部のシステムとの連携方法を解説する
「Java Solution」フォーラム 2002/7/23
日本アイ・ビー・エム 東京基礎研究所 アドバイザリー・リサーチャー
上野 憲一郎(うえの けんいちろう)
kenueno@jp.ibm.com
日本アイ・ビー・エムに入社後、システム・エンジニアとして10年ほど活動した後、米国IBMへ赴任。米国IBM Raleighソフトウェア開発研究所にて、WebSphere Application Server開発部門のパフォーマンス専門グループのメンバーとして活動。2003年に帰国後、IBM東京基礎研究所にて、XML、Web サービス、SOA関連技術の研究開発に従事。WebSphere Application Serverパフォーマンス専門家として、セミナーなどで講演も実施。
主な著書
「WebSphere V3.5 Handbook」(Prentice Hall)
主な訳書
「Webサービスプラットフォームアーキテクチャ」(エスアイビーアクセス)
Copyright © ITmedia, Inc. All Rights Reserved.