Interstage Application Server 8.0(以降、Interstage 8.0)での変更内容を説明します。
EJBのプロセスディスパッチ方式の変更
Interstage Application Server 8.0でEJBコンテナのディスパッチ方式が改善され、ラウンドロビン方式で動作します。Interstage Application Server V7.0はLRU方式で動作しました。
以下に各プロセスディスパッチ方式について説明します。ラウンドロビン方式の場合には各プロセスに処理が均等に割り振られるため、処理が集中した場合の性能改善効果や危険分散効果があります。
プロセスディスパッチ方式 | ディスパッチ論理 |
---|---|
ラウンドロビン方式 | 要求待ちのサーバアプリケーションプロセスの中で、最初に要求待ちとなったプロセスに、クライアントからの要求メッセージを振り分けます。 |
LRU方式 | 要求待ちのサーバアプリケーションプロセスの中で、最後に要求待ちとなったプロセスに、クライアントからの要求を振り分けます。 |
STATELESS Session Beanのインスタンス生成モード
以下の条件を満たす場合、STATELESS Session Beanのインスタンス生成タイミングのチューニングが行えません。
Interstage Application Server V6.0またはV7.0を使用する
Enterprise Bean定義情報のSTATELESS他Beanアクセス参照機能に「At Start-Up」を指定しているアプリケーションを、8.0に移行する
この場合、At Start-Up定義が有効となり、インスタンス生成タイミングのチューニングが行えません。
インスタンス生成タイミングのチューニングを行いたい場合は、ejbdefexport/ejbdefimportコマンドを使用し、<stateless-instance-create-type?>タグを削除するか、または、タグの値を「At First Access」に変更して下さい。
ejbdefexport/ejbdefimportコマンドについては、「16.2 Enterprise Bean定義情報のexportとimport」、および「リファレンスマニュアル(コマンド編)」の「EJBサービス運用コマンド」を参照してください。
Message-driven Beanのスレッドプール
Interstage Application Server 8.0では、Message-driven Beanはスレッドをプーリングすることが可能となるため、以下を見直してください。
Message-driven Beanの同時処理数の最大値が、デフォルトで64となります。
デフォルトで65以上のメッセージがIJServerプロセスに配信されると、使用中のスレッドがプールに返却されるまで待機します。
プールに返却されるまで待機させない場合には、各Message-driven Beanの初期起動インスタンス数の合計値を、Interstage管理コンソールまたはisj2eeadminコマンドで、Message-driven Beanの同時処理数の最大値に指定してください。
Message-driven Bean、またはMessage-driven Beanから呼び出すアプリケーションでスレッド変数などを使用していた場合には、動作が変わる可能性があります。
スレッド変数を使用したアプリケーションを使用している場合には、スレッド変数を使用しないように変更するか、アプリケーション開始または終了時にスレッド変数をクリアするように、アプリケーションを変更してください。
アプリケーションの変更ができない場合には、以下のオプションを設定して、スレッドプールを使用しないように設定してください。
FJEJBconfig.propertiesを編集した場合は、設定を有効にするためIJServerを再起動してください。
注意
スレッドプールを使用しないよう設定した場合、Interstage管理コンソールのIJServerモニタ画面の「Message-driven Beanスレッド情報」に表示される値は更新されません。
項目 | 設定内容 |
---|---|
定義ファイル格納ディレクトリ |
|
定義ファイル名 | FJEJBconfig.properties |
指定するキー | "mdb.thread.pool" |
指定する値 |
大文字・小文字は区別しません。 |
EJBサービス運用コマンド
Interstage Application Server 8.0では、アプリケーションファイルの権限を指定する機能がサポートされたため、以下のコマンドはアプリケーションファイル保護レベルで指定したユーザで使用してください。
アプリケーションファイル保護レベルについては、「3.5 J2EEアプリケーションの配備と設定」を参照してください。
ejbdefexport
ejbdefimport
Message-driven Bean機能拡張
異常時のメッセージ退避機能
以下の条件を満たす場合、リトライ回数を超過してもメッセージ受信を繰り返す可能性があります。
Point-To-Pointメッセージングモデル(1受信者だけにメッセージを配信するモデル)
不揮発化チャネルを利用
イベントチャネルのイベントデータをメモリにキャッシュする数を、イベントチャネルに蓄積できるイベントデータの最大値よりも大きく設定してください。
設定はイベントサービス運用コマンドを使用して行います。詳細は「リファレンスマニュアル(コマンド編)」の「essetcnf」および「essetcnfchnl」を参照してください。
Point-To-Pointメッセージングモデルを利用する場合、以下の非互換があります。
V6.0以前、またはWindows(R)のV7.0のInterstage JMSサービスを使用してノーティフィケーションサービスのイベントチャネルに送信されたメッセージは、リトライ回数を超過しても退避されずにメッセージ受信を繰り返します。
setRollbackOnlyメソッドを実行してトランザクションをロールバックした場合、V6.0(Windows(R)の場合はV7.0)以前のInterstageではメッセージが退避されませんでしたが、今版よりsetRollbackOnlyメソッドを実行してトランザクションをロールバックした場合もメッセージが退避されます。
上記に該当する場合は、以下の互換オプションを設定して運用してください。ただし、互換オプションを設定した場合、JMSが受信したメッセージは同時に処理されません。
C:\Interstage\EJB\etc\FJEJBconfig.properties
/opt/FJSVejb/etc/FJEJBconfig.properties
MDB_ReciveType=reciver