JAR ファイル内に DBSCHEMA ファイルを入れる

注意 - 移行するターゲットのサーバーが Sun のアプリケーションサーバーで、質問にある JAR に CMP entity bean が入っている場合にのみ必要なステップになります。
DBSCHEMA ファイルは XML ファイルで、AS_HOME/bin にあるユーティリティを使って作成されます。

  • DBSCHEMA ファイルには、ejb-jar.xml の中で宣言されている CMP entity bean がマップされるデータベーステーブルのデータベーススキーマが取り込まれます。マイグレーションツールは sun-cmp-mappings.xml ファイルを生成し、その中に DBSCHEMA ファイルを参照する "schema" というタグができます。schema タグには、 DBSCHEMA ファイルの名前と、META-INF ディレクトリの親ディレクトリからの相対的な位置が書かれています。

アプリケーションサーバーは、配備時に CMP entity bean の永続化に必要なクラス生成のために DBSCHEMA ファイルを使います。
sun-cmp-mappings.xml ファイルの中の schema タグの中には通常 "mySchema" があります。これを DBSCHEMA ファイル名(.dbschema 拡張子は除く)と入れ替えることができます。あるいは、DBSCHEMA ファイルを "mySchema" という名前で作成しても良いでしょう。

DBSCHEMA ファイルを JAR の中に入れるため、次の2つの方法が用意されています:

  • 環境変数を使う:

DBSCHMAFP 環境変数に DBSCHEMA ファイルの絶対パスを設定します。参照されるスキーマファイルはビルドスクリプトで生成される JAR の中に置きます。この方法は、アプリケーションの中の全ての CMP entity bean が同じデータベーススキーマを使う場合にのみ使ってください。DBSCHEMAFP 環境変数はビルドスクリプトを実行する前に設定します。

Windows 環境: set DBSCHEMAFP = c:\mySchemas\mySchema.dbschema
Solaris 環境: export DBSCHEMAFP= /usr/schema/mySchema.dbschema

  • 指定されたディレクトリにファイルをコピーする:

DBSCHEMA ファイルは build_jar.xml, build_jar.cmd, build_jar.sh といった JAR を生成するビルドファイルがあるディレクトリの中に置くことが出来ます。このように置いた場合、スキーマファイルは JAR の中に組み込まれます。

注意 - 両方の方法を使った場合、生成された JAR は両方のスキーマファイルを取り込みます。スキーマファイルが同じ名前なら、DBSCHEMAFP 環境変数で指定されたファイルよりもディレクトリに置かれたファイルが優先されます。


日本語翻訳: shioda

英文 (翻訳したバージョン: 5)