アウトバウンドのMQアダプタでMQメッセージを送信する場合のチューニングについて説明します。
ISIサーバからアウトバウンドMQアダプタを呼び出す場合の同時呼出し数を定義します。アダプタの同時呼出し数として、以下が設定できます。
最大プールサイズ
最大待ち時間
アウトバウンドMQアダプタの同時呼出し数は、asadmin setコマンドで設定します。asadminコマンドの詳細は、“Interstage Application Server Java EE運用ガイド(Java EE 6編)”の“コネクタ接続プールの定義項目”を参照してください。
実行例
<Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin set resources.connector-connection-pool.esimqadapter-Unit01.max-pool-size=64 <Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin set resources.connector-connection-pool.esimqadapter-Unit01.max-wait-time-in-millis=120000
/opt/FJSVisje6/glassfish/bin/asadmin set resources.connector-connection-pool.esimqadapter-Unit01.max-pool-size=64 /opt/FJSVisje6/glassfish/bin/asadmin set resources.connector-connection-pool.esimqadapter-Unit01.max-wait-time-in-millis=120000
※Unit01:ISI実行環境名
設定項目の詳細については、“Interstage Application Server Java EE運用ガイド(Java EE 6編)”の“コネクタのチューニング”の“プール内の接続数”を参照してください。
アウトバウンドのMQアダプタが1つのMQキューへ同時に送信できるメッセージ数を定義します。アウトバウンドのMQアダプタの同時処理数については、以下が設定できます。
最小プールサイズ
最大プールサイズ
アイドルタイムアウト
アウトバウンドのMQアダプタの同時処理数は、asadmin setコマンドで設定します。asadminコマンドの詳細は、“Interstage Application Server Java EE運用ガイド(Java EE 6編)”の“スレッドプールの定義項目”を参照してください。
実行例
<Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin set ISIMQO_000.thread-pools.thread-pool.ESIMQSendBean-ISIMQO_000.min-thread-pool-size=2 <Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin set ISIMQO_000.thread-pools.thread-pool.ESIMQSendBean-ISIMQO_000.max-thread-pool-size=200 <Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin set ISIMQO_000.thread-pools.thread-pool.ESIMQSendBean-ISIMQO_000.idle-thread-timeout-seconds=900
/opt/FJSVisje6/glassfish/bin/asadmin set ISIMQO_000.thread-pools.thread-pool.ESIMQSendBean-ISIMQO_000.min-thread-pool-size=2 /opt/FJSVisje6/glassfish/bin/asadmin set ISIMQO_000.thread-pools.thread-pool.ESIMQSendBean-ISIMQO_000.max-thread-pool-size=200 /opt/FJSVisje6/glassfish/bin/asadmin set ISIMQO_000.thread-pools.thread-pool.ESIMQSendBean-ISIMQO_000.idle-thread-timeout-seconds=900
※ISIMQO_000:インバウンドのMQアダプタのIJServerクラスタ名
設定項目の詳細については、“Interstage Application Server Java EE運用ガイド(Java EE 6編)”の“EJBコンテナのチューニング”の“スレッドプーリング”を参照してください。
送信するメッセージのサイズが大きくアウトバウンドのMQアダプタでメモリ不足が発生する場合、MQアダプタのJava VMヒープ領域をチューニングすることで、メモリ不足を解消できます。ヒープ領域サイズの見積もりについては、“ISI Java EE導入ガイド”の“メモリ容量の見積り”を参照してください。
アウトバウンドのMQアダプタのJava VMヒープサイズは、asadmin create-jvm-optionsコマンドで設定します。asadminコマンドの詳細は、“Interstage Application Server Java EE運用ガイド(Java EE 6編)”の“Java VMの定義項目”を参照してください。
実行例
<Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin create-jvm-options --target ISIMQO_000 \-Xmx256m:\-XX\:MaxPermSize=128m
/opt/FJSVisje6/glassfish/bin/asadmin create-jvm-options --target ISIMQO_000 \\-Xmx256m:\\-XX\\:MaxPermSize=128m
※ISIMQO_000:ISIサーバのIJServerクラスタ名
アウトバウンドのMQアダプタにサーバーインスタンスを追加することで、同一のMQキューに対し、複数のプロセスでメッセージ送信を行うことができます。
サーバーインスタンスの追加と削除の手順は、以下のとおりです。以下の手順で使用するasadminコマンドの詳細は、“Interstage Application Server Java EE運用ガイド(Java EE 6編)”の“asadmin”を参照してください。
サーバーインスタンスを追加する場合
アウトバウンドのMQアダプタの停止
アウトバウンドのMQアダプタを停止します。詳細は、“1.1.2 停止”の“アウトバウンドのMQアダプタの停止”を参照してください。
サーバーインスタンスの追加
asadmin create-local-instanceコマンドを実行し、アウトバウンドのMQアダプタのIJServerクラスタにサーバーインスタンスを追加します。
実行例
<Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin create-local-instance --cluster ISIMQO_000 ISIMQO_000i2
/opt/FJSVisje6/glassfish/bin/asadmin create-local-instance --cluster ISIMQO_000 ISIMQO_000i2
※ISIMQO_000:アウトバウンドのMQアダプタのIJServerクラスタ名
※ISIMQO_000i2:追加するサーバーインスタンス名
ホスト名/ポート番号の編集
以下のファイルの“com.fujitsu.esi.mq.apserver.iiop_endpoint”に、追加したサーバーインスタンスのホスト名とIIOP_LISTENER_PORTのポート番号を追加します。
ファイル名
<INSDIR>\etc\jee\server\ISI実行環境名\resource\MQアダプタ名\config.properties
/opt/FJSVesi/etc/jee/server/ISI実行環境名/resource/MQアダプタ名/config.properties
例
com.fujitsu.esi.mq.apserver.iiop_endpoint=localhost:29700,localhost:29701
ポイント
IIOP_LISTENER_PORTのポート番号は、以下のどちらかで確認できます。
asadmin create-local-instanceコマンドの実行結果
asadmin list-system-propertiesコマンド
サーバーインスタンスを削除する場合
アウトバウンドのMQアダプタの停止
アウトバウンドのMQアダプタを停止します。詳細は、“1.1.2 停止”の“アウトバウンドのMQアダプタの停止”を参照してください。
ホスト名/ポート番号の編集
以下のファイルの“com.fujitsu.esi.mq.apserver.iiop_endpoint”から、削除するサーバーインスタンスのホスト名とIIOP_LISTENER_PORTのポート番号を削除します。
ファイル名
<INSDIR>\etc\jee\server\ISI実行環境名\resource\MQアダプタ名\config.properties
/opt/FJSVesi/etc/jee/server/ISI実行環境名/resource/MQアダプタ名/config.properties
ポイント
IIOP_LISTENER_PORTのポート番号は、asadmin list-system-propertiesコマンドで確認できます。
サーバーインスタンスの削除
asadmin delete-local-instanceコマンドを実行し、サーバーインスタンスを削除します。
実行例
<Interstageインストールディレクトリ>\F3FMisje6\glassfish\bin\asadmin delete-local-instance ISIMQO_000i2
/opt/FJSVisje6/glassfish/bin/asadmin delete-local-instance ISIMQO_000i2
※ISIMQO_000i2:削除するサーバーインスタンス名
サーバーインスタンスの数は、以下を考慮して設計します。
業務リクエストを受信するJava VMプロセスがダウンした場合でも、他のプロセスで運用を継続できます。
メモリを多く使用するようなメッセージを受信する場合、1プロセスあたりのメモリ使用量を削減できる可能性があります。なお、サーバーインスタンスを増やすと、システム全体のメモリ使用量が増加する場合があるため注意してください。
高負荷状況では、サーバーインスタンスを増やすことでスループットが向上する場合があります。
注意
設定値の妥当性は、必ず負荷試験を実施して確認してください。
サーバーインスタンスを追加する場合は、物理メモリなどのシステム資源が十分かどうか確認してください。
デフォルトで作成されているサーバーインスタンス(アウトバウンドMQアダプタ名i)は削除しないでください。
以下のファイルの“com.fujitsu.esi.mq.apserver.iiop_endpoint”に記載されている、デフォルトで作成されているサーバーインスタンスのホスト名とIIOP_LISTENER_PORTのポート番号の値は削除しないでください。
<INSDIR>\etc\jee\server\ISI実行環境名\resource\MQアダプタ名\config.properties
/opt/FJSVesi/etc/jee/server/ISI実行環境名/resource/MQアダプタ名/config.properties
デフォルトで作成されているサーバーインスタンスや追加したサーバーインスタンスの、IIOPリスナーのポート番号を変更する場合は、ポート番号を変更したあとに、以下のファイルを編集する必要があります。
“com.fujitsu.esi.mq.apserver.iiop_endpoint”のポート番号を、変更後のIIOPリスナーのポート番号に修正してください。
ファイル名
<INSDIR>\etc\jee\server\ISI実行環境名\resource\MQアダプタ名\config.properties
/opt/FJSVesi/etc/jee/server/ISI実行環境名/resource/MQアダプタ名/config.properties
例
com.fujitsu.esi.mq.apserver.iiop_endpoint=localhost:29701