複数メッセージの受信処理性能を向上させる方法
トランザクション連携を行う非同期メッセージングモデルの場合に、一般的に受信アプリケーションが受信メッセージの通番管理を行うために従来では未サポートだった、Message-driven Beanを利用したトランザクションと連携した同時多重スレッドでのメッセージ受信についてサポートします。
受信対象種別がリソースアダプタの場合、もしくは受信対象種別がJMSでPoint-To-Pointメッセージングモデルの場合に、以下の機能が使用できます。
プロセス起動多重
Message-driven Beanをプロセス多重で起動します
スレッド多重でのメッセージ受信
トランザクションと連携した同時多重スレッドでのメッセージ受信ができます
上記により、トランザクションと連携してメッセージ受信を行う以下のMessage-driven Beanの、複数メッセージ受信処理性能が向上します。
トランザクション管理種別にBeanを指定したMessage-driven Bean
トランザクション属性にContainerを指定、およびトランザクション属性にRequiredを指定したMessage-driven Bean
プロセス起動多重
以下の表に、受信対象種別がJMSの場合のメッセージングモデルとトランザクション種別におけるプロセス起動多重の使用可否を説明します。受信対象種別がリソースアダプタの場合には特に制約はありません。
メッセージングモデル | トランザクション種別 | 使用可否 |
---|---|---|
分散トランザクションを使用しない | ○ | |
| - | |
分散トランザクションを使用しない | × | |
| - |
注) IJServerのプロセス多重を行うことはできません。
Interstage管理コンソールの[システム] > [ワークユニット]からIJServerを選択し、環境設定画面のワークユニット設定でプロセス多重度を設定してください。
isj2eeadminコマンドを使用して、変更することもできます。詳細は“リファレンスマニュアル(コマンド編)”の“isj2eeadmin”を参照してください。
スレッド多重でのメッセージ受信
以下の表にトランザクション管理種別と、トランザクション属性における使用可否を説明します。受信対象種別がリソースアダプタの場合には特に制約はありません。
トランザクション管理種別 | トランザクション属性 | ||
---|---|---|---|
Bean | - | ○ | × |
Container | NotSupported | ○ | ○ |
Required | ○ | × |
使用できないアプリケーションは以下で説明する初期起動インスタンス数の設定に関係なく、初期起動インスタンス数は1で動作し、1メッセージずつ処理されます。
メッセージの受信処理を同時に行う最大数を[ワークユニット] > [IJServer名] > [EJBアプリケーション] > [アプリケーション環境定義]の[初期起動インスタンス数]の項目に設定します。詳細は、Interstage管理コンソールのヘルプを参照してください。
Interstage管理コンソールの[EJBアプリケーション環境定義] > [Message-driven Bean拡張情報]で、初期起動インスタンス数を設定してください。
初期起動インスタンス数は、以下の範囲で設定してください。
項目 | 値 |
---|---|
初期設定値 | 8 |
最大値 | 10000000 |
最小値 | 1 |
利用シーン
以下に該当する場合で複数メッセージの受信処理性能を向上させたいときは、プロセス多重度または初期起動インスタンス数(同時実行スレッド数)を設定してください。
受信メッセージの通番管理を行わないシステム
受信メッセージの通番管理は行うが、通番通りのメッセージ受信の順序性を保証しないシステム
受信したメッセージを同時に受信処理したい場合には、同時に受信するメッセージの最大数を見積もってプロセス多重度、および初期起動インスタンス数(同時実行スレッド数)を設定してください。また、必要に応じてメモリ・CPUを増設してください。