J2EEアプリケーションの運用について
Webアプリケーション、またはJ2EEアプリケーションクライアントの運用時に、以下のXMLファイルを使用する場合、計算式から算出されるJavaVMヒープ領域サイズを、JavaVMの最大ヒープ領域サイズの指定値に加算してください。
Webアプリケーション運用時の対象XMLファイル
Webアプリケーション環境定義ファイル(web.xml)
名前変換ファイル(FJebeProperties.xml)
J2EEアプリケーションクライアント運用時の対象XMLファイル
deployment descriptor ファイル
名前変換ファイル
使用しているXMLファイルごとに以下の計算式から算出したサイズの総和を求めます。
( ( ( (a×460) + b) / 1024) +500) × c (単位:Kバイト)
a:XMLファイル内行数
b:XMLファイルサイズ(単位:バイト)
c:同時クライアントアクセス数(Web アプリケーション運用時)、またはlookup を発行しているスレッド数(J2EE アプリケーションクライアント運用時)
Web アプリケーション運用時
Interstage管理コンソールの [ワークユニット] > [IJServer名] > [環境設定]タブの「ワークユニットの設定」でJavaVMオプションに指定します。
例
JavaVM の最大ヒープ領域サイズに、512M バイトを指定する場合の例
-Xmx512m
J2EE アプリケーションクライアント運用時
Java コマンドの-Xmx オプションを使用して、以下のように指定します。
例
JavaVM の最大ヒープ領域サイズに、128M バイトを指定する場合の例
java -Xmx128m ClientAPL
各アプリケーションの運用時に、使用するJavaVMヒープ領域サイズを加算しなかった場合は、以下の例外が発生する場合があります。
javax.naming.NamingException:com.fujitsu.interstage.j2ee.def.FJDefException: unknown error: java.lang.OutOfMemoryError
JDBCデータソース参照時の注意事項
WebアプリケーションとEJBアプリケーションを同一VM上で運用し、かつ、同一のデータソースを使用する場合は、Webアプリケーション、EJBアプリケーションそれぞれでInitialContextのlookupメソッドを使用してJDBCデータソースの取得を行ってください。
以下の場合は、問題が発生することがあります。
EJBアプリケーションで取得したデータソースに対して、Webアプリケーション内でgetConnectionメソッドを発行する。
Webアプリケーションで取得したデータソースに対して、EJBアプリケーション内でgetConnectionメソッドを発行する。
SQLServer2005使用時の注意事項
J2EEアプリケーションクライアントより、Interstage管理コンソールまたはisj2eeadminコマンドで定義したデータソースを使用して取得したjava.sql.Connectionに対して、close()メソッド発行後にisClosed()メソッドによりConnectionの状態を確認すると、isClosed()メソッドが期待した値を返却しない可能性があります。本現象はスレッド多重で動作させた場合に発生します。
以下に本現象が発生する可能性のある例を示します。
javax.sql.DataSource dataSource = null; java.sql.Connection connection = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); dataSource = (javax.sql.DataSource)nctx.lookup("java:comp/env/jdbc/DB1"); } catch (javax.naming.NamingException ex) { } try { connection = dataSource.getConnection(); /* データベースアクセス処理 */ connection.close(); } catch ( java.sql.SQLException sqlEx ) { } finally { try { if ( !connection.isClosed() ) { connection.close(); } } catch (java.sql.SQLException sqlEx2) { } }
JDK/JREのバージョンに関する注意事項
JDK/JREのバージョンは、開発から実行まで、すべてを同一にすることを推奨します。