連載
» 2008年08月07日 00時00分 公開

WebSphereサーバ・チューニング入門(7):Javaのメッセージング・サービスを速くするには? (1/4)

[上野憲一郎,日本アイ・ビー・エム]

本連載は、Javaアプリケーション・サーバの1つである、IBM WebSphere Application Server(以下、WAS)についてのパフォーマンス・チューニングに関する入門記事です。チューニングといっても、実施するエンジニアによって、その方法は異なりますが、本連載はWASを前提とし、かつ80%のケースをカバーすることを目標とします(編集部注:WASのインストールから学びたい読者は、「バージョン別セットアップマニュアル一覧」のWebSphere Application Serverを参照してください)


 今回は、JMS(Java Message Service)をサポートするランタイムのパフォーマンス・チューニングについて解説します。WASは、「デフォルトJMSプロバイダー」と呼ばれるJMS実装ランタイムを提供しています。JMS実装ランタイムのパフォーマンス・チューニングのポイントは以下のとおりです(下記リストはインデックスになっています)。

 以下、それぞれのチューニング・ポイントについて解説を行います。

【1】JMSデリバリー・モード

 JMS 1.1は、「NON_PERSISTENT」と「PERSISTENT」の2つのデリバリー・モードを規定しています。WASのデフォルトJMSプロバイダーは、2つのデリバリー・モードに対して以下の5つの信頼性オプション(「デリバリー・オプション」とも呼ばれます)をサポートしています(表1)。

表1 信頼性レベルとパフォーマンス性能 表1 信頼性レベルとパフォーマンス性能

 信頼性とパフォーマンスは、トレードオフの関係にあるので、要件に応じて、適切なオプションを選択することになります。信頼性オプションの詳細については、InfoCenter「メッセージ信頼性レベル」を参照してください。

デリバリー・モードの設定

 デリバリー・モードの設定は、以下の4カ所で行うことができます。

  1. JMSクライアント
  2. デフォルトJMSプロバイダーあて先リソース
  3. JMSプロバイダー・接続ファクトリにおけるJMSデリバリー・モードと信頼性レベルの対応付け
  4. バスあて先

 以下にそれぞれの設定方法について説明します。

1.JMSクライアントによるデリバリー・モード設定

 以下のAPIを使用して、メッセージ・プロデューサー(JMS接続ファクトリ)のデフォルトのデリバリー・モードを設定(PERSISTENTがデフォルト値)できます。

  • javax.jms.MessageProducer.setDeliveryMode(int deliveryMode)

 上記APIの設定を、「MessageProducer.send()」メソッドで、デリバリー・モードを上書き可能です。

  • javax.jms.MessageProducer.send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive)

 また、以下のいずれかの値をセットすることにより、デリバリー・モードを指定することもできます。

  • Static int javax.jms.DeliveryMode.PERSISTENT
  • Static int javax.jms.DeliveryMode.NON_PERSISTENT

 詳細は、JMS 1.1 APIJSR 914を参照してください。

2.デフォルトJMSプロバイダーあて先リソースによるデリバリー・モード設定

 JMSプロバイダーのあて先リソースごとにデリバリー・モードを指定します。「アプリケーション」を選択すると、JMSクライアントにおけるデリバリー指定が使用されます。「非パーシスタント」あるいは「パーシスタント」を選択すると、このJMSあて先に対するデリバリー・モードの指定が使用されます(図1)。

図1 宛先リソースのデリバリー・モード設定 図1 あて先リソースのデリバリー・モード設定

3.JMS接続ファクトリ設定におけるJMSデリバリー・モードとWASメッセージングの信頼性モードとの対応付け

 JMS接続ファクトリごとに、JMSデリバリー・モード(非パーシスタントおよびパーシスタント)と信頼性モード(ベストエフォート非パーシスタント、高速非パーシスタント、高信頼性非パーシスタント、高信頼性パーシスタント、保障パーシスタント)の対応付けが必要になります(図2)。

図2 「JMSデリバリー・モード」と「信頼性レベル」の対応付け 図2 「JMSデリバリー・モード」と「信頼性レベル」の対応付け

 デフォルト設定は、非パーシスタント・デリバリーモードが「高速非パーシスタント」、パーシスタント・デリバリーモードが「高信頼性パーシスタント」に結び付いています(図3)。

図3 JMS接続ファクトリーにおけるサービス品質設定 図3 JMS接続ファクトリにおけるサービス品質設定

4.バスあて先による指定

 デフォルト設定として、「プロデューサーによるデフォルトの信頼性のオーバーライドを可能にする」が指定されています。これによりメッセージ・プロデューサーの指定よりも、バスあて先で指定された信頼性オプションが優先されます(図4)。

図4 バス宛先におけるサービス品質設定 図4 バスあて先におけるサービス品質設定
       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。