付録C.1 J2EEサーバの作業ディレクトリ
J2EEサーバは作業ディレクトリ中にサーバ名やアプリケーションの表示名,EARファイル中のファイルなどを用いてディレクトリやファイルを生成します。ディレクトリ名やファイル名,パス全体の長さには上限があり,作業ディレクトリ全体がパス全体の上限に収まらないとJ2EEサーバは正常に動作できません。ここでは,作業ディレクトリの構成と作業ディレクトリのパス長の見積もり式について説明します。
(1) J2EEサーバの作業ディレクトリの構成
J2EEサーバの作業ディレクトリは,J2EEサーバが動作する上で必要な作業領域です。この領域には,ユーザのパスワード情報,インポートされたリソースアダプタ,EARファイル,EJB-JARファイル,WARファイル,作成されたJ2EEアプリケーションなどの情報が格納されます。
-
J2EEサーバは,作業ディレクトリ以下にJ2EEサーバごとの専用ディレクトリ構造を持ちます。このため,複数のJ2EEサーバで共通のディレクトリを指定できます。
-
作業ディレクトリを変更してJ2EEサーバを開始すると,既存のJ2EEアプリケーションなどは利用できません。
-
作業ディレクトリを別のマシンに移動した場合,別のマシン上のJ2EEサーバでは認識できません。
-
作業ディレクトリでは,2バイトコードを含むパス名称を利用できません。
-
作業ディレクトリのデフォルトを次に示します。
-
Windowsの場合
<Application Serverのインストールディレクトリ>\CC\server\public
-
UNIXの場合
/opt/Cosminexus/CC/server/public
作業ディレクトリは,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,ejb.public.directoryパラメタで変更できます。
-
J2EEサーバには,次の作業ディレクトリがあります。
-
J2EEアプリケーション(コンフィグレーション関連)
-
J2EEアプリケーション(デプロイ関連)
-
J2EEリソース
-
J2EEリソースアダプタ(コンフィグレーション関連)
-
J2EEリソースアダプタ(デプロイ関連)
-
Webアプリケーション(JSP関連)
-
Webアプリケーション(その他)
上記の作業ディレクトリの構成についてそれぞれ説明します。また,移行コマンド実行後のディレクトリ構成についても説明します。
ディレクトリ構成を図で示したあと,各ディレクトリを説明します。なお,図中の番号と説明の番号は対応しています。また,図中では,同一ディレクトリに複数の種類のファイルが入る場合は,いちばん長いファイル名だけを記載しています。
(a) J2EEアプリケーション(コンフィグレーション関連)
J2EEアプリケーション(コンフィグレーション関連)のディレクトリ構成を次の図に示します。
-
J2EEアプリケーションごとに作られるディレクトリです。
-
EARファイルをインポートした場合に作られるディレクトリです。ディレクトリ名はEARファイル名を基に付けられます。
-
EARファイルは,17けたの数字.earの名前でここに格納されます。
-
EJB-JARファイルごとに作られるディレクトリです。ディレクトリ名はEJB-JARファイル名を基に付けられます。
-
EJB-JARファイルは,17けたの数字.jarの名前でここに格納されます。
-
ライブラリJARファイルごとに作られるディレクトリです。ディレクトリ名はライブラリJARファイル名を基に付けられます。
-
ライブラリJARファイルは,17けたの数字.jarの名前でここに格納されます。
-
RARファイルごとに作られるディレクトリです。ディレクトリ名はRARファイル名を基に付けられます。
-
RARファイルは,17けたの数字.rarの名前でここに格納されます。
-
WARファイルごとに作られるディレクトリです。ディレクトリ名はWARファイル名を基に付けられます。
-
WARファイルは,17けたの数字.jarの名前でここに格納されます。
(b) J2EEアプリケーション(デプロイ関連)
J2EEアプリケーション(デプロイ関連)のディレクトリ構成を次の図に示します。
-
J2EEアプリケーションごとに作られるディレクトリです。
-
J2EEアプリケーションの開始時に作られるファイルです。J2EEアプリケーション中にホーム,リモートインタフェース,java.rmi.Remoteを実装したインタフェースがあると,それらのパッケージ名やクラス名を基にファイルが作られます。
-
J2EEアプリケーションの開始時に作られるファイルです。J2EEアプリケーション中にホーム,リモート,ローカル,ローカルホームインタフェースがあると,それらのパッケージ名やクラス名を基にファイルが作られます。
(c) J2EEリソース
J2EEリソースのディレクトリ構成を次の図に示します。
-
EJB-JARファイルごとに作られるディレクトリです。ディレクトリ名はEJB-JARファイル名を基に付けられます。
-
EJB-JARファイルは,17けたの数字.jarの名前でここに格納されます。
-
データソースごとに作られるディレクトリです。ディレクトリ名はJDBCドライバのファイル名を基に付けられます。
-
JDBCドライバのファイルは,17けたの数字.jarの名前でここに格納されます。
-
JavaMailの設定ごとに作られるディレクトリです。ディレクトリ名はejbmailを基に付けられます。
-
JavaMailの設定を保存したファイルがここに保存されます。
-
RARファイルごとに作られるディレクトリです。ディレクトリ名はRARファイル名を基に付けられます。
-
RARファイルは,17けたの数字.rarの名前でここに格納されます。
-
WARファイルごとに作られるディレクトリです。ディレクトリ名はWARファイル名を基に付けられます。
-
WARファイルは,17けたの数字.jarの名前でここに格納されます。
(d) J2EEリソースアダプタ(コンフィグレーション関連)
J2EEリソースアダプタ(コンフィグレーション関連)のディレクトリ構成を次の図に示します。
-
RARファイルごとに作られるディレクトリです。ディレクトリ名はRARファイル名を基に付けられます。
-
RARファイルは,17けたの数字.rarの名前でここに格納されます。
(e) J2EEリソースアダプタ(デプロイ関連)
J2EEリソースアダプタ(デプロイ関連)のディレクトリ構成を次の図に示します。なお,図中では,同一ディレクトリに複数の種類のファイルが入る場合は,いちばん長いファイル名だけを記載しています。
-
RARファイル内のJARファイルは,17けたの数字.jarの名前でここに格納されます。
-
RARファイル内のネイティブライブラリファイルは,ここに格納されます。
(f) Webアプリケーション(JSP関連)
Webアプリケーション(JSP関連)のディレクトリ構成を次の図に示します。
-
コンテキストルートに指定した名前でディレクトリが作られます。/が含まれている場合は3文字の文字列に置き換えられます。
-
JSPをコンパイルしてできたクラスファイルが格納されます。JSPのファイル名に英数字以外の文字が含まれている場合は,それぞれ6文字の文字列に置き換えられます。また,ファイル名が数字で始まる場合は1文字付加されます。
(g) Webアプリケーション(その他)
Webアプリケーション(その他)のディレクトリ構成を次の図に示します。
-
コンテキストルートに指定した名前でディレクトリが作られます。/が含まれている場合は3文字の文字列に置き換えられます。
-
WARファイルに含まれているファイルがここに解凍されます。
(h) J2EEサーバ,またはWebコンテナサーバ(互換機能)の移行コマンド実行後のディレクトリ構成
J2EEサーバ,またはWebコンテナサーバの移行コマンド実行時,作業ディレクトリの下に作業ディレクトリ_oldの名前でディレクトリを作成し,そこに旧バージョンの作業ディレクトリ下のファイルを退避します。将来,アップグレードインストールをするためには,パス長に作業ディレクトリ_old分の余裕が必要です。J2EEサーバ,またはWebコンテナサーバの移行コマンド実行後のディレクトリ構成を次の図に示します。
(i) リソースアダプタの移行コマンド実行後のディレクトリ構成
リソースアダプタの移行コマンド実行時,rarupdate_bkの名前でディレクトリを作成し,各J2EEサーバのリソースアダプタのファイルを退避します。作業ディレクトリが「・・・\<ディレクトリ名>,または・・・/<ディレクトリ名>」の場合,バックアップRARディレクトリは,「・・・\<ディレクトリ名>\rarupdate_bk,または・・・/<ディレクトリ名>/rarupdate_bk」になります。リソースアダプタの移行コマンド実行後のディレクトリ構成を次の図に示します。
作業ディレクトリの下にrarupdate_bkのパス長を追加する余裕がない場合は,移行コマンド実行時に-backuptoオプションでバックアップ先ディレクトリを指定し,パス長に余裕がある領域にファイルを退避できます。-backuptoオプションを使用する場合のリソースアダプタの移行コマンド実行後のディレクトリ構成を次の図に示します。
(2) 作業ディレクトリのパス長の見積もり式
作業ディレクトリのパス長の見積もり式は次のようになります(単位:バイト)。これらの式がすべて満たされるように,各種パラメタを調整してください。なお,見積もり式中の「最大パス長」とは,OSで規定されているパス長の制限のことです。OSのパス長の制限については,ご使用のOSのドキュメントなどで確認してください。なお,Windowsの場合,最大パス長は259バイトです。
-
A+2×B+C+D+E+58≦最大パス長
-
A+2×B+C+E'+61≦最大パス長
-
A+2×B+C+E''+50≦最大パス長
-
A+2×B+C+D+(F+37またはM+68のどちらか大きい方の値)+23≦最大パス長(F≦35の場合は35で換算)
-
A+2×B+C+G+22≦最大パス長(G≦18の場合は18で換算)
-
A+B+C+H+I+8≦最大パス長
-
A+2×B+C+J+34≦最大パス長
-
J+K+18≦最大パス長
-
A+2×B+C+L+43≦最大パス長(Reliable Messaging使用時)
-
K+L+27≦最大パス長(Reliable Messaging使用時)
-
A+2×B+C+H+L+I+N+22≦最大パス長
-
A+2×B+C+H+L+O+N+39≦最大パス長
-
P+H+I+N+3≦最大パス長
-
O+H+M+N+20≦最大パス長
- (凡例)
-
A:作業ディレクトリまでのパスの長さ
B:作業ディレクトリ名の長さ
C:最も長いサーバ名の長さ
D:最も長いJ2EEアプリケーション名の長さ
E:インポートしたときのEJB-JARファイル,WARファイル,RARファイル,ライブラリJAR,EARのファイル名のうち,最も長いファイル名(EARファイルに含まれているファイルも含む)の長さ
E':インポートしたときのEJB-JARファイル,WARファイル,RARファイル,JDBCドライバ,メールのファイル名のうち,最も長いファイル名(EARファイルに含まれているファイルも含む)の長さ(メールは7で換算)
E'':インポートしたときのRARファイル名のうち,最も長いファイル名の長さ
F:J2EEアプリケーションに含まれるEJBのインタフェースクラス,java.rmi.Remoteを実装したインタフェースやクラス,EJBのコンポーネントクラスのうち,最も長いファイル名(パッケージ名も含む)の長さ
G:ネイティブライブラリファイルのうち,最も長いファイル名の長さ
H:最も長いコンテキストルートの長さ(/を含む場合は/×3で換算)
I:WARファイル内で最も長いパスの長さ
J:最も長いリソースアダプタ表示名の長さ
K:ログファイル出力先ディレクトリのパスの長さ(簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,ejb.server.log.directoryパラメタで指定する値)
L:最も長いReliable Messagingの表示名の長さ
M:J2EEアプリケーションに含まれるEJBのBeanクラスのうち,最も長いクラス名(パッケージ名を含まない)の長さ
N:最も長いJSP/タグファイルコンパイル結果のクラス名の長さ
O:最も長いタグファイルのパッケージ名の長さ
P:JSP用テンポラリディレクトリまでのパスの長さ