ISIの機能をチューニングする場合、ISIサーバのチューニングを行う箇所と内容を、以下に示します。
チューニングの設定は、Interstage管理コンソールから設定します。なお、チューニング方法の詳細については、“Interstage Application Server チューニングガイド”を参照してください。
ISIサーバ分離構成のセットアップを行い、ISIサーバ、SOAPサーバ、CORBA受信サーバを追加している場合、それぞれのワークユニット名に識別子が追加された名前に読み替えてください。
図2.1 ISIサーバのチューニング箇所
ISIサーバに対して、同時に要求を発行できるWebサービスクライアントの数を定義します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [サービス] > [Webサーバ] > [FJapache] > [環境設定]の[詳細設定]の [クライアントの同時接続数]で指定します。
初期値は、「50」です。
SOAPメッセージの受信機能を利用する場合に、ISIサーバが同時に処理できるWebサービスクライアントからのリクエスト数を定義します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESISOAPServer] > [環境設定] > [Servletコンテナ設定]の[Servletコンテナ]の[同時処理数]を指定します。
「(1)Webサービスクライアントの同時接続数」以上の値を指定します。
初期値は、同時処理数の初期値「16」、最大値「64」です。
インバウンドキューおよびアウトバウンドキューに格納されているメッセージを同時に取り出して処理する数を定義します。
インバウンドキューの同時処理数
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [ESIInboundQueue.jar] > [ESIInboundQueue] > [アプリケーション環境定義]の[Message-driven Bean拡張情報]の[初期起動インスタンス数]を指定します。
アウトバウンドキューの同時処理数
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer_Outbound] > [ESISendQueue.jar] > [ESISendQueue] > [アプリケーション環境定義]の[Message-driven Bean拡張情報]の[初期起動インスタンス数]を指定します。
互換モードのISIサーバを運用している場合は以下を設定してください。
インバウンドキューの同時処理数
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [ESIServer.ear] > [esiejb.jar] > [ESIInboundQueue] > [アプリケーション環境定義]の[Message-driven Bean拡張情報]の[初期起動インスタンス数]を指定します。
アウトバウンドキューの同時処理数
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [ESIServer.ear] > [esiejb.jar] > [ESISendQueue] > [アプリケーション環境定義]の[Message-driven Bean拡張情報]の[初期起動インスタンス数]を指定します。
順番保証をする場合は、必ず「1」を指定してください。
初期値は、「1」です。
サービスエンドポイントの通信方式が非同期である場合、シーケンスのリトライ回数はInterstage Application Serverの“異常時のメッセージ退避機能”のリトライカウントで設定します。リトライカウントは以下の2箇所を指定してください。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [ESIInboundQueue.jar] > [ESIInboundQueue] > [アプリケーション環境定義]の[異常時メッセージ退避定義]の[リトライカウント]を指定します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer_Outbound] > [ESISendQueue.jar] > [ESISendQueue] > [アプリケーション環境定義]の[異常時メッセージ退避定義]の[リトライカウント]を指定します。
また、互換モードのISIサーバを運用している場合、シーケンスのリトライ回数はシーケンス定義で指定してください。指定方法の詳細については“ISI Studio ヘルプ”の“シーケンス情報を設定する”を参照してください。
ISIサーバが同時に処理するリクエスト数を定義します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [環境設定]の[EJBコンテナ設定]の [IIOP呼び出しの同時処理数]を指定します。
初期値は、最小値「16」、最大値「64」です。
ISIサーバのJava VMヒープ領域サイズを定義します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [環境設定]の[ワークユニット設定]の[JavaVMオプション]で指定します。
非同期メッセージング構成で運用している場合、上記に加えて以下を指定してください。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer_Outbound] > [環境設定]の[ワークユニット設定]の[JavaVMオプション]で指定します。
初期値は、「256」Mバイトです。
Java VMヒープ領域サイズのチューニングの詳細は、“Interstage Application Server/Interstage Web Server チューニングガイド”の“JavaVMのヒープ領域サイズ”を参照してください。
CORBA受信が同時に処理できるCORBAクライアントからのリクエスト数を定義します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESICORBARcv] > [ESICORBARcv] > [環境設定]の[詳細設定]の [CORBAアプリケーション]の [処理スレッド数]を指定します。
初期値は、最小値「16」、最大値「16」です。
「(4)ISIサーバの同時処理数」にあわせて初期値を変更してください。
JMS-Rメッセージを格納するDBのチューニング項目を、以下に示します。
DSIのメモリ常駐化
JMS-Rメッセージを格納するDBのDSIをメモリ上に常駐化できます。JMS-Rキューで使用するDSI名を取得する方法を以下に説明します。
また、以下のDSIをすべてのJMS-Rキューで共通で使用します。
DSI_MSG_APFW_CHANNELINFOTBL IXDSI_MSG_APFW_CHANNELINFOTBL01 IXDSI_MSG_APFW_CHANNELINFOTBL02 DSI_APFW_MSG_DBINFOTBL IXDSI_APFW_MSG_DBINFOTBL01 IXDSI_APFW_MSG_DBINFOTBL02 IXDSI_APFW_MSG_DBINFOTBL03
apfwdspmsgtblコマンドを使用して対象のJMS-Rキューのテーブル情報を取得します。
コマンドの実行例
apfwdspmsgtbl -e
rdbprtコマンドを使用して、apfwdspmsgtblコマンドで取得したテーブル名を指定し、DSI情報を取得します。DSOごとに出力されるため、“DSI information”で出力されるすべてのDSIを抽出してください。
コマンドの実行例
rdbprt -d ESIMESSAGEDB -m DEF -f rdbprt.txt
rdbprtコマンドを実行するためのテーブル名を記載した設定ファイル「rdbprt.txt」を作成します。
テーブル名はapfwdspmsgtblコマンドで取得したテーブル名を設定してください。
設定ファイル(rdbprt.txt)の記載例
TABLE(APFW001.MSGINFOTBL0000000001 APFW001.WAITTBL0000000001)
rdbresidentコマンドを実行し、メモリを常駐します。
コマンドの実行例
rdbresident -mon -f <rdbresident.txt>
rdbresidentコマンドを実行するためのDSI名を列記した設定ファイル「rdbresident.txt」を作成します。
設定ファイル(rdbresident.txt)の記載例
ESIMESSAGEDB.ITMIAPFW0010000000001 ESIMESSAGEDB.IIM1APFW0010000000001 ESIMESSAGEDB.IIM2APFW0010000000001 ESIMESSAGEDB.IIM3APFW0010000000001 ESIMESSAGEDB.ITWAAPFW0010000000001 ESIMESSAGEDB.IIW1APFW0010000000001 ESIMESSAGEDB.IIW2APFW0010000000001 ESIMESSAGEDB.DSI_MSG_APFW_CHANNELINFOTBL ESIMESSAGEDB.IXDSI_MSG_APFW_CHANNELINFOTBL01 ESIMESSAGEDB.IXDSI_MSG_APFW_CHANNELINFOTBL02 ESIMESSAGEDB.DSI_APFW_MSG_DBINFOTBL ESIMESSAGEDB.IXDSI_APFW_MSG_DBINFOTBL01 ESIMESSAGEDB.IXDSI_APFW_MSG_DBINFOTBL02 ESIMESSAGEDB.IXDSI_APFW_MSG_DBINFOTBL03
常駐化するDSIサイズは、ISI導入時のモデルケース(small、moderate、large、super)によって異なります。モデルケース選択時に算出したキュー容量を、参考にしてください。
モデルケースの詳細については、“ISI 導入ガイド”を参照してください。
データソースの事前コネクト数の設定
JMS-Rメッセージを格納するDBで使用するデータソースのDBコネクションを、事前に接続する数を指定します。「(4)ISIサーバの同時処理数」と同じ数を指定します。
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ESIServer] > [環境設定]の[DBコネクション設定] のesimsgdbのデータソースを選択し、[事前コネクト数]を必要な値に変更します。
初期値は、「0」です。
JNDIキャッシュの有効化
JMS-Rメッセージングで使用するJNDI名を事前にメモリ上に割り当てて保持します。JNDI名をキャッシュすると、JMS-Rを使用した非同期メッセージの性能向上が期待できます。
以下の定義ファイルを編集します。
<Interstageインストールディレクトリ>\EJB\etc\FJEJBconfig.properties
設定ファイル(FJEJBconfig.properties)の記述例
: LookupCache = 1 ……追加する :
メッセージ蓄積データベースを使用する場合は、メッセージ蓄積データベースの自動拡張容量を変更します。
メッセージ蓄積データベースは、空き容量が少なくなると自動的に拡張されます。運用中に頻繁に自動拡張が動作し、処理性能に悪化が見られる場合は、自動拡張契機と拡張容量を変更することで性能劣化が解消します。
DB容量に合わせて事前に拡張容量を大きく確保しておくと、自動拡張が動作する契機が少なくなり、性能への影響を小さくできます。
rdbalmdsiコマンドを実行し、自動の拡張契機と容量を変更します。
rdbalmdsi -i ESIMESSAGEDB.DSI名 -c 拡張契機残容量 -e 拡張容量 -p ESIMESSAGEDB.ESIMESSAGEDBSPACE
DSI名 | 格納データ | 拡張契機残容量 | 拡張容量 |
---|---|---|---|
INDATA_DSI_01 | インバウンドデータ | 256K | 10M |
OUTDATA_DSI_01 | アウトバウンドデータ | 256K | 10M |
コマンドの実行例
rdbalmdsi -i ESIMESSAGEDB.INDATA_DSI_01 -c 1M -e 10M -p ESIMESSAGEDB.ESIMESSAGEDBSPACE