業務処理開始アプリケーション動作環境定義は、キューへの事前コネクトやフロー定義の事前読込みなどによる性能向上を行うための定義を行います。本定義を使用することで、業務処理開始アプリケーションにおけるメッセージの送受信時間が短縮されます。
キューへの事前コネクトやフロー定義の事前読込みが必要ない場合は、定義を行う必要はありません。
■業務処理開始アプリケーション動作環境定義の利用
業務処理開始アプリケーション動作環境定義の利用には、以下を実施する必要があります。
定義ファイルの記述
定義ファイルの配置
定義ファイルの読込み処理の実装
◆定義ファイルの記述
業務処理開始アプリケーションの動作環境を定義することで、以下の機能を使用して業務処理開始アプリケーションにおけるメッセージの送受信時間を短縮することができます。
業務処理開始アプリケーションでメッセージを送信するキューに対して事前に接続を行います。対象のキューはdestinationタグで記述します。
業務処理開始アプリケーションでは、定義読込み時に、定義されたキューに対して以下の処理を行います。
送信キューの場合
キューに対して通信を行い、初回のメッセージ送信時の性能を向上します。
キューへの事前コネクトを行い、メッセージ送信時の性能を向上します。
受信キューの場合
キューに対して通信を行い、初回のメッセージ受信時の性能を向上します。
業務処理開始アプリケーションで起動するフロー定義を事前に読み込みます。対象のフロー定義はflowDefinitionタグで記述します。
業務処理開始アプリケーションでは、定義読込み時に、定義されたフロー定義の事前読込みを行い、初回のメッセージ送受信の性能を向上します。
以下に記述例を示します。
記述内容の詳細は“Interstage Business Application Server リファレンス”の“業務処理開始アプリケーション動作環境定義ファイルリファレンス”を参照してください。
<?xml version="1.0" encoding="UTF-8"?> <clientConfig> <config> <version>8.0</version> </config> <!-- スレッド多重数 --> <thread number="5"/> <!-- フロー定義DB --> <databaseResource name="FLOWDB"> <flowDefinition name="FLOW"/> </databaseResource> <!-- キューコネクションファクトリ --> <queueConnectionFactory name="APFWQCF"/> <!-- キュー --> <destination name="DEST1" attribute="SEND" connect="5"/> <destination name="DEST2" attribute="RECV"/> </clientConfig> |
以下に、業務処理開始アプリケーション動作環境定義ファイルのサンプルファイルが格納されています。必要に応じてサンプルファイルをコピーし、編集して使用してください。
/opt/FJSVibs/sample/client/flowclient.conf |
注意
定義ファイルに不正なタグが定義されている場合、業務処理開始アプリケーション用APIは不正なタグを無視して動作します。initメソッドを使用しているにもかかわらず性能が向上しない場合は、業務処理開始アプリケーション動作環境定義に正しいタグが定義されていることを確認してください。
◆定義ファイルの配置
作成した定義ファイルは、以下のディレクトリに任意のファイル名で配置します。
ファイル名は業務処理開始アプリケーションで定義ファイルを読み込む際に指定します。
/opt/FJSVibs/etc/client/ |
◆定義ファイルの読込み処理の実装
業務処理開始アプリケーションでcom.fujitsu.interstage.apfw.client.FlowClientクラスの以下のメソッドを使用して、定義ファイルを読み込みます。
APIの詳細については、“Interstage Business Application Server リファレンス”の“アプリケーションインタフェース(Java)”を参照してください。
メソッド | 内容 |
---|---|
init(java.lang.String) | 業務処理開始アプリケーション動作環境定義ファイルを読み込みます。 |
term() | initメソッドで獲得した資源を解放します。 |
定義ファイルのファイル名を“flowclient.conf”として、業務処理開始アプリケーション動作環境定義を利用する場合の記述例を以下に示します。
// 定義ファイルを読み込みます。 |
ポイント
initメソッド、およびtermメソッドはそれぞれIJServerの起動時に呼び出す起動時実行クラス、停止時に呼び出す停止時実行クラスに実装することを推奨します。起動時実行クラス、停止時実行クラスについては“Interstage Application Server J2EEユーザーズガイド(旧版互換)”を参照してください。
注意
initメソッド実行時に定義ファイルで記述したキューが停止している場合、または閉塞している場合、エラーとなります。
initメソッドを実行した場合は、必ずtermメソッドを実行してください。termメソッドを実行しない場合は、initメソッドで獲得したキューへの接続が残存する可能性があります。
不揮発キューを使用している場合、termメソッド実行時に定義ファイルで記述したキューが停止していることがないようにしてください。
キューが停止している場合、syslogに“jms2560”のメッセージが出力されますが、termメソッドは正常終了します。この場合、initメソッドで獲得したキューへの接続が残存する可能性があります。
termメソッド実行時に“jms2560”が出力された場合、esmonitorchnlコマンドでキューの接続情報を確認し、不要な接続を回収してください。esmonitorchnlコマンドについては、“Interstage Application Server リファレンスマニュアル(コマンド編)”を参照してください。