入力 JAR ファイルまたは EAR ファイルに CMP Bean が含まれている場合、EJB デプロイメント・ツールは既存スキーマおよびマップを検索して、デプロイメント・コード生成の際に使用します。
既存スキーマおよびマップが検出されない場合は、トップダウン・マッピング規則を使用してスキーマおよびマップを作成します。
トップダウン・マッピングによるアプローチでは、既存エンタープライズ Bean が既に存在していて、その設計によりデータベース設計が決定されます。
生成されたスキーマには、CMP エンティティー Bean ごとに 1 つの表が含まれます。
それらの表では、列がそれぞれ エンタープライズ Bean の CMP フィールドに対応し、生成されたマッピングによりフィールドが列にマップされます。
構文
入力 EAR ファイルでスキーマおよびマップが提供されている場合は、次のコマンドとオプショナル・パラメーターを使用します。
ejbdeploy input_JAR_name working_directory output_JAR_name[-cp classpath] [-codegen] [-debug] [-keep]
[-ignoreErrors] [-quiet] [-nowarn] [-noinform]
[-rmic "options"] [-target name]
[-trace] [-sqlj]
入力 EAR ファイルにスキーマおよびマップがないためトップダウン・マッピング・アプローチが必要な場合は、次のコマンドとオプショナル・パラメーターを使用します。
ejbdeploy input_JAR_name working_directory output_JAR_name[-cp classpath] [-codegen] [-dbname name]
[-dbschema name] [-dbvendor name]
[-debug] [-keep] [-ignoreErrors] [-quiet]
[-nowarn] [-noinform] [-rmic "options"]
[-35] [-40] [-target name] [-trace]
[-sqlj][-OCCColumn]注: - -dbschema、-dbname、-dbvendor、 -OCCColumn、-35、および -40 のオプションは、トップダウン操作モードでデータベース定義を作成するときにのみ使用します。 データベース情報は JAR ファイルまたは EAR ファイルのスキーマ文書に保管されるので、オプションを再び指定する必要はありません。
また、データベースをあとで変更することができないので、JAR または EAR が生成された時点で正しいデータベースが定義されている必要があります。
- デフォルトでは、ejbdeploy コマンドを実行すると、バックエンドが DB2® に設定されたデータ定義言語 (DDL) ファイルが作成されます。
異なるデータベース・バックエンドを設定する必要がある場合は、-dbname、-dbschema、および -dbvendor オプションを使用して、選択したバックエンドを指定してください。
ただし、定義できるバックエンドは 1 つだけです。
JAR ファイルに既に DB2 バックエンドが含まれている場合にコマンド行で -dbvendor ORACLE を指定しても、2 番目のバックエンドは取得されず、dbvendor の指定は無視されます。
- ejbdeploy
- このコマンドはデプロイメント・コードを生成します。
引数を指定しないで実行すると、ejbdeploy コマンドはコマンドと一緒に実行できる引数のリストを表示します。
- input_JAR_name または input_EAR_name
- デプロイメント・コードを生成する必要のある エンタープライズ Bean が含まれている入力 JAR ファイルまたは EAR ファイルの完全修飾名。例: c:¥ejb¥inputJARs¥myEJBs.jar。
(この引数は必須です。)
ejbdeploy コマンドでは、システム・クラスパスで指定されたクラスパスはもはや使用しません。
代わりに、JAR ファイルに従属クラスを組み込むか、-cp オプションを使用して処理コマンドに従属クラスを組み込む必要があります。
各エンタープライズ Bean のホーム・クラスまたはリモート・クラスの .class ファイルが、入力 JAR ファイルまたは EAR ファイルにパッケージされている必要があります。
入力 JAR ファイルまたは EAR ファイルにはソース・ファイルを組み込まないでください。
入力 JAR ファイルまたは EAR ファイル内にソース・ファイルがあると、EJBDeploy ツールはデプロイメント・コードを生成する前に再ビルド (フル・ビルド) を実行します。
推奨: ソース・ファイルを除去するか、またはすべての従属クラスおよびリソース・ファイルをクラスパスに組み込みます。
そうしないと、サーバーでアプリケーションの再ビルド (フル・ビルド) を行うときに問題が発生する可能性があります。
- working_directory
- コード生成に必要な一時ファイルを保管するディレクトリーの名前。
(この引数は必須です。)
指定した作業ディレクトリーが ejbdeploy コマンドの実行前に既に存在している場合は、一時ファイルはそのディレクトリーを Eclipse ワークスペースとして、そこに生成されます。
しかし、コマンドの実行前に作業ディレクトリーが存在していない場合は、ディレクトリーが作成され、その中に Eclipse ワークスペースが生成されます。
いずれの場合も、-keep オプションを指定しない限り、デプロイメント・コード生成が完了すると、ワークスペースとその中のすべてのファイルが自動的に除去されます。
(ワークスペースを保存すると、問題判別に役立ちます。)
- output_JAR_name または output_EAR_name
- 出力 JAR ファイルまたは EAR ファイルの完全修飾名。これは ejbdeploy により作成され、デプロイメントに必要な生成済みクラスが入れられるファイルです。例: c:¥ejb¥outputJARs¥myEJBs.jar。 (この引数は必須です。)
完全修飾名で指定するディレクトリーは、ejbdeploy コマンドを実行する前に存在している必要があります。
(出力 JAR ファイルまたは EAR ファイルの名前を指定してから ejbdeploy コマンドを実行すると、同じ名前の既存の出力 JAR ファイルまたは EAR ファイルが上書きされるので注意してください。)
- -cp classpath
- 別の Zip ファイルまたは JAR ファイルと依存関係にある JAR ファイルまたは EAR ファイルを対象として ejbdeploy コマンドを実行する予定の場合は、-cp オプションを使用して、その別の JAR ファイルまたは Zip ファイルのクラスパスを指定できます。
-cp オプションを使用すると、複数の Zip ファイルおよび JAR ファイルを引数として指定できます。
ただし、Zip ファイルおよび JAR ファイルの名前は完全修飾名とし、二重引用符で囲み、セミコロンで分離する必要があります。
例: -cp "path¥myJar1.jar;path¥myJar2.jar;
path¥myJar3.jar"
ヒント: SQLJ 変換プログラム・クラス sqlj.zip のロケーションを指定する必要があります。
このファイルのデフォルト・パスは x:¥java です (ここで、x は DB2 のインストール・ディレクトリーです)。例えば、Windows® の
場合は d:¥sqllib¥java¥sqlj.zip となります。
- -codegen
- ejbdeploy コマンドの機能を制限して、(a) 入力 JAR ファイルまたは EAR ファイルからのコードのインポート、(b) デプロイメント・コードの生成、および (c) 出力 JAR ファイルまたは EAR ファイルへのコードのエクスポートのみを実行するようにします。 生成されたデプロイメント・コードのコンパイルや、リモート・メソッド呼び出しコンパイラー (RMIC) の実行は行いません。
Java™ ソース・コードは、通常は出力 EAR または JAR にエクスポートされないため、これが生成されたコードを保管する唯一の方法です。
- -bindear "options"
- EAR ファイルにバインディングを取り込むことが可能になります。
この引数は EAR ファイルにのみ適用されます。
また、オプションを指定しないでこのコマンドを使用することもできます。
このオプションは、スペースで分離し、二重引用符で囲む必要があります。
例えば、-bindear "xx yy zz" となります。これらのオプションについての詳細は、WebSphere® Application Server の資料を参照してください。
- -dbname "name"
- 作成するデータベースの名前。
データベースの名前にスペースが含まれる場合は、名前全体を二重引用符で囲む必要があります。
例: -dbname "my database"
- -dbschema "name"
- 作成するスキーマの名前。
スキーマの名前にスペースが含まれる場合は、名前全体を二重引用符で囲む必要があります。
例: -dbschema "my schema"
- -dbvendor name
- データベース・ベンダーの名前。これはデータベースの列型、マッピング情報、Table.ddl、およびその他の情報を決定します。
有効なデータベース・ベンダー名は、以下のとおりです。
- DB2UDB_V81 (DB2 Universal Database V8.1 for Windows および UNIX®)
- DB2UDB_V82 (DB2 Universal Database V8.2 for Windows および UNIX)
- DB2UDBOS390_V7 DB2 Universal Database™ for z/OS® および OS/390® V7)
- DB2UDBOS390_V8 (DB2 Universal Database for z/OS および OS/390 V8)
- DB2UDBISERIES (DB2 for iSeries™)
- DB2UDBISERIES_V52 (DB2 for iSeries V5R2)
- DB2UDBISERIES_V53 (DB2 for iSeries V5R3)
- ORACLE_V8 (Oracle V8.0)
- ORACLE_V9I (Oracle V9i)
- ORACLE_V10G (Oracle V10g)
- INFORMIX_V73 (Informix® Dynamic Server.2000 V7.3)
- INFORMIX_V93 (Informix Dynamic Server.2000 V9.3)
- INFORMIX_V94 (Informix Dynamic Server.2000 V9.4)
- SYBASE_V1200 (Sybase Adaptive Server Enterprise V12.0)
- SYBASE_V1250 (Sybase Adaptive Server Enterprise V12.5)
- MSSQLSERVER_2000 (Microsoft® SQL Server 2000)
- MSSQLSERVER_V7 (Microsoft SQL Server V7.0)
- CLOUDSCAPE_V5 (Cloudscape™ V5.1)
以下のバックエンド ID は使用すべきではありません。
- SQL92 (1992 SQL 標準)
- SQL99 (1999 SQL 標準)
使用すべきではない SQL92 または SQL99 バックエンド ID を使用する場合は、近い将来、それらのバックエンドが使用できなくなったときに、トピック『EJB 照会から SQL 構文への変換』を参考にして、使用すべきバックエンドを決定してください。
非サポートのデータベースを使用する場合は、トピック『EJB 照会から SQL 構文への変換』を利用して、ご使用の非サポート・デプロイメント環境に適した有効なデータベース・ベンダー・バックエンド ID を選択してください。
注: - デフォルトは、DB2UDB_V81 (DB2 for Windows V8.1 および UNIX) です。
- -sqlj を指定すると、DB2UDB_V82 (DB2 for Windows
V8.2 および UNIX)、DB2UDB_V81
(DB2 for Windows
V8.1 および UNIX)、DB2UDBOS390_V8 (DB2 for OS/390
V8) および DB2UDBOS390_V7(DB2 for OS/390 V7) がサポートされます。
- -debug
- 指定すると、デプロイメント・コードはデバッグ情報を使用してコンパイルされます。
- -keep
- ejbdeploy コマンドが実行された後、作成された一時ファイル (すなわち Eclipse ワークスペース) の処理を制御します。
このオプションを使用しない場合、コマンドが完了すると Eclipse ワークスペースは削除されます。
- -ignoreErrors
- 指定すると、検証エラーが検出されても処理が継続します。
- -quiet
- 検証中に状況メッセージを抑制します (ただし、エラー・メッセージは抑制されません)。
- -nowarn
- 検証中に警告メッセージおよび情報メッセージを抑制します。
- -noinform
- 検証中に情報メッセージを抑制します。
- -rmic "options"
- RMIC オプションを RMIC に渡すことが可能になります。
このオプションは、スペースで分離し、二重引用符で囲む必要があります (説明は Sun の RMI ツールの文書を参照してください)。
例: -rmic "-nowarn
-verbose"
- -35
- WebSphere Application
Server バージョン 3.5 で提供されている EJB デプロイメント・ツールで使用する CMP エンティティー Bean 用のトップダウン・マッピング規則を使用する場合は、-35 オプションを指定します。
場合によってはこれが便利なことがあります。
ただし、-35 オプションを指定しない場合、以前に使用可能だったフォームの改良版のトップダウン・マッピングが使用されます。
- -40
- WebSphere Application Server 4.0 のトップダウン・マッピング規則が使用されます。
- -target name
- アプリケーションのコンパイルのターゲットとする、特定の WebSphere ランタイム環境を指定します。
ランタイムのターゲットの指定に応じて、使用される JRE ライブラリーが構成され、また WebSphere ランタイム・ライブラリーを含めるプロジェクトのクラスパスが構成されます。
有効なサーバー名は次のとおりです。
- WAS510 (WebSphere Application Server V5.1)
- WAS502 (WebSphere Application Server V5.02)
- WAS501 (WebSphere Application Server V5.01)
- WAS500 (WebSphere Application Server V5.0)
- -trace
- 追加の進行状況メッセージをコンソールに生成します。
- -sqlj
注: このオプションは 2.0 仕様に準拠したエンタープライズ Bean でのみ有効です。
DB2 データベースの呼び出しに JDBC ではなく SQLJ を使用することが可能になります。
-sqlj オプションを指定すると、EJB デプロイメント・ツールは、SQLJ を使用してデータベースにアクセスできるように CMP Bean 用の SQLJ コードを生成します。
また、SQLJ ソース・ファイルを変換するための SQLJ 変換プログラムが自動起動します。
さらに、SQLJ プロファイルを容易にカスタマイズできるように、Ant スクリプトが EJB デプロイメント・ツールにより作成されます。
プロファイルに対して Ant スクリプトを実行し、DB2 パッケージを生成できます。
これらの DB2 パッケージを実行時に使用すると、多数のランタイム検査を回避することができます。
EJB デプロイメント・ツールを使用して SQLJ のデプロイメント・コードを生成した後は、生成された .ser ファイルに対して DB2 SQLJ プロファイル・カスタマイザー (db2sqljcustomize) を実行する必要があります。このファイルは、DB2 バックエンドに関連付けられた websphere_deploy フォルダーのサブフォルダーにあります。DB2 SQLJ プロファイル・カスタマイザーの実行についての詳細は、DB2 の資料を参照するか、または www7b.boulder.ibm.com/dmdd/zones/java/bigpicture.html で『SQLJ support』セクションを参照してください。
- -OCCColumn
注: このオプションは、トップダウン・マッピングを生成する際に EJB 2.x CMP エンティティー Bean でのみ有効です。
リレーショナル・データベース表に衝突検出の列の追加が可能になります。
衝突検出の列 は、レコードが更新されたかどうかを判別するために予約された追加のデータベース列です。
衝突検出の列の追加は、オプティミスティック・アクセス・インテントの述部に属性を組み込むオプティミスティック並行性制御の代替方式の 1 つです。
衝突検出の列を管理するには、独自のデータベース・トリガーの実装を準備する必要があります。
衝突検出の列の追加の結果は次のようになります。- 衝突検出の列のデータ型は 64 ビット整数です。
- 衝突検出の列の命名規則は OCC_bean_name のフォーマットです。
- トップダウン・マッピングは余分の関係列を生成します。
この列は エンタープライズ Bean にマップできません。
例: ejbdeploy コマンドの実行。
ejbdeploy AccessEmployee.ear d:¥deploydir AccessEmployee_sqlj.ear -dbvendor DB2UDB_V81 -keep -sqlj -cp "e:¥sqllib¥java¥sqlj.zip"
説明:
この例では、DB2 Universal Database (バージョン 8.1 for Windows および UNIX) が e:¥sqllib にインストールされています。
ejbdeploy コマンドは AccessEmployee.ear ファイル (EJB 2.0 仕様に準拠した エンタープライズ Bean を持つ) を入力とし、AccessEmployee_sqlj.ear を出力として生成します。
-sqlj オプションを使用しているため、生成されたコードでは JDBC ではなく SQLJ を使用して DB2 を呼び出します。
ejbdeploy が実行されると、作業ディレクトリーとして指定した d:¥deploydir ディレクトリーに Eclipse ワークスペースが作成されます。
コマンドの実行が完了すると、このワークスペースは削除されます。
ただし、-keep オプションを指定しているので、ejbdeploy はワークスペースを削除しないで終了します。