Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第10章 EJBサービスの機能> 10.5 EJBサービスで使用できる時間監視機能

10.5.4 EJB objectのタイマ削除機能

 create/finderメソッドにより生成されたEJB objectのインスタンスは、removeメソッドが発行されるとメモリ上から消滅します。
 Entity Beanは、通常removeメソッドが発行されないBeanであるため、Entity Beanをプロセス外から呼び出した場合、create/finderメソッドにより生成されたEJB objectのインスタンスがメモリ上に残存してしまいます。

 こうした状況が発生するのを防ぐために、Entity Beanへの最終アクセスから一定時間後に、放置されたEJB objectのインスタンスを削除する機能があります。この機能を、“EJB objectのタイマ削除機能”といい、その時間を、“Entity BeanのEJB objectタイムアウト値”といいます。

 Entity Beanをプロセス内で呼び出した場合は、以下のタイミングでEJB objectがJavaのガーベジコレクションの対象となり、自動的に削除されます。そのため、このEJB objectのタイマ削除機能は、プロセス外から呼び出されるEntity Beanで有効です。

 Entity BeanのEJB objectタイムアウト値は、Interstage管理コンソールの[ワークユニット] > [IJServer名] > [EJBアプリケーション] > [アプリケーション環境定義] > [Interstage拡張情報]のEJB objectタイムアウト値に設定します。設定方法の詳細は、Interstage管理コンソールのヘルプを参照してください。


 トランザクション中にEJB objectが削除されないように、EJB objectタイムアウト値はトランザクションタイムアウト値より大きく設定してください。

 Entity Beanをプロセス外から呼び出した場合、EJB objectがタイマー削除されない間でメモリに残存したり、データベースのレコードを大量に扱う場合にはCORBAの通信路を頻繁に経由することになるため、Entity Beanはできるだけ同一JavaVM内で呼び出されるBeanに設定してください。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED