WebSphere Application Server には、CMP Enterprise
JavaBeans のパーシスタンス・メカニズムとして SQLJ を使用するためのツールが用意されています。
Rational Application Developer (RAD) の EJB デプロイ・ツールを使用するか、
-sqlj オプションを指定したコマンド・ユーティリティー ejbdeploy を使用することによって、
SQLJ を使用するように CMP Bean をデプロイすることができます。
このタスクについて
EJB パーシスタンス用の Structured Query Language in Java (SQLJ) には DB2 バージョン 8 FixPak1 以降が必要です。
デプロイメント・コードを生成するマシン上には、
DB2 UDB Application Development Client バージョン 8 FixPak1 (以降) が、
このシナリオを実行するためのデータベースを含むマシン上には DB2 UDB Server (バージョン 8 FixPak1 以降
(UNIX および Windows の場合)、およびバージョン 6 またはバージョン 7 (z/OS および OS/390 上の DB2 場合)) が必要になります。
SQLJ サポートには、バージョン 2.x の CMP Enterprise JavaBeans が必要です。
EJB 2.x のモジュールに EJB 1.1 と 2.x の Bean を混在させた場合、
EJB 2.x の Bean のみが SQLJ を使用するようにデプロイされます。
EJB 1.1 の Bean は引き続き JDBC を使用してデータにアクセスします。
Enterprise JavaBeans 用のデプロイメント・コマンド (EJBDeploy) は、
バージョン 2.0 の CMP Bean 用 SQLJ サポートのみを提供します。
Bean 管理パーシスタンス (BMP) エンティティー Bean、セッション Bean、およびサーブレット SQLJ アプリケーション用のデータベースにあるプロファイルの手動での変換およびカスタマイズは、ユーザーの責任において行ってください。
詳しくは、Enterprise JavaBeans (EJB) の Bean 管理パーシスタンス (BMP) Entity Bean、Session Bean、
およびサーブレットでの SQLJ の使用の項を参照してください。
CMP Bean から構成されるアプリケーションをインストールする際は、以下のいずれかを選択します。
- WebSphere Application Server にアプリケーションをインストールする前に、
SQLJ を使用したデータ・アクセス用に、
SQLJ を使用するための CMP Bean をデプロイします。
RAD 環境内でデプロイメントを実行するか、
-sqlj オプションを指定したコマンド・ユーティリティー ejbdeploy を使用してデプロイメントを実行します。
アプリケーションのインストール時に、管理コンソールで再度この Bean をデプロイしないようにしてください。
-sqlj オプションを使用して既にこの Bean をデプロイしている場合
、アプリケーションのインストール時に管理コンソールから再度これをデプロイすると、
この Bean は JDBC アクセスを使用してデプロイされます。
注: 管理コンソールの sqlj オプション
またはアセンブリー・ツールを使用して CMP Bean をデプロイすることはできません。
- JDBC アクセス用に、ejbdeploy コマンドまたは管理コンソールを使用して、
CMP Bean をデプロイします。
Bean がデプロイされていないと、アプリケーションのインストールは失敗します。
- EAR ファイルをデプロイします。
- was_home/bin ディレクトリーが PATH ステートメントに含まれているか検査します。
- Apache Ant ツールを起動し、コマンドの残りの部分に対してそれを使用します。
ツールは ws_ant.bat です。
ツールは ws_ant です。
- ejbdeploy コマンド・ユーティリティーに -sqlj オプションを指定して実行します。
- アプリケーションをクラスター化環境で実行している場合は、
以下の SQLJ プロファイルのカスタマイズ・ステップを実行します。
以下のように、
-cp (クラス・パス) オプションを使用して、
SQLJ 変換プログラム sqlj.zip ファイルのロケーションを指定しなければなりません。
ejbdeploy d:¥MyApplication.ear
working d:¥deployedMyApplication.ear
-sqlj
-dbvendor DB2UDB_V81
-cp "C:¥PROGRA~1¥IBM¥SQLLIB¥java¥sqlj.zip;C:¥PROGRA~1¥IBM¥SQLLIB¥java¥sqlj.zip "
ejbdeploy コマンドは、
ユーザーのシステム・クラスパスからは sqlj.zip にアクセスしません。
ejbdeploy コマンドは、ユーザーが指定する、
例えば deployedMyApplication.ear という名前の EAR ファイル、
および InputEarName.ear.xml という名前、あるいはこの例では
、deployedMyApplication.ear.xml という名前の Ant スクリプトを生成します。
Rational Application Developer を使用して EAR ファイルを作成する場合、
マッピング・エディターで SQLJ を特定のデータベース・バックエンドと関連付けることができます。
マッピング・エディターを使用する場合には、ejbdeploy コマンドで -sqlj
オプションを指定する必要はありません。
アプリケーションがクラスター環境以外で実行されている場合は、
Ant ツールのプロパティーの説明に進んでください。
カスタマイズは、1 つのホストで 1 回実行します。
- DB2 SQLJ カスタマイザー db2sqljcustomize を直列化プロファイルに対して実行する。
直列化プロファイルは、それぞれの EJB .jar ファイルごとに 1 つ存在します。
この直列化プロファイルは EJB .jar ファイルの中にあります。
直列化プロファイルのファイル名の例としては、FS_TopDown1_SJProfile0.ser などがあります。
"-automaticbind yes" デフォルト・オプションを使用して、
直列化プロファイルに対して DB2 SQLJ カスタマイザーを実行する場合は、
実行時に使用されるデータベースに静的 SQL を作成してください。
このカスタマイズ・フェーズでは静的 SQL を含むデータベース・パッケージを、それぞれの分離レベルごとに 1 つずつ、
計 4 つ作成します。
- カスタマイズされたプロファイルを、
WebSphere Application Server にインストールされた EJB .jar ファイルに組み込みます。
このカスタマイズ・ステップでは、生成されたカスタマイズ済みプロファイルの更新も行います。
これらの更新されたカスタマイズ済みプロファイルを、生成されたコードが実行時に使用できるようにするには、
WebSphere Application Server にインストールされた EJB .jar ファイルにこれらのプロファイルを組み込みます。
カスタマイズ・ステップを省略すると、EJB アプリケーションは動作はしますが、データベースに保管された静的 SQL は使用せず、SQLJ の利点はすべて失われます。
- Ant スクリプトを使用すると、カスタマイズが容易になります。
EAR ファイルに対してバッチ SQLJ ejbDeploy を実行すると、Ant スクリプトが作成されます。
このスクリプト・ファイルを使用して、関連付けられた EAR ファイルにある
全 EJB .jar ファイル内のすべての直列化プロファイルに対して
、DB2 カスタマイザー・プログラムを実行します。このスクリプトは各 EJB .jar ファイルを直列化プロファイルで更新し、
EAR ファイル内の .jar ファイルを変更後のものに置き換えます。
この Ant スクリプトは対応する EAR ファイルに固有のものです。
このスクリプトは既存の EAR ファイルを変更します。
また、このスクリプトはデータベースに作成されたパッケージに対して一連のデフォルト名を使用します。
各カスタマイズ・プロファイルの名前がデータベース内の既存パッケージ名と競合しないように、
スクリプト・ファイルで使用するそれぞれの名前を変更してください。
デフォルトでは、さまざまな EAR ファイル用に生成された複数の Ant スクリプトが同じパッケージ名を使用するので、
それらの名前を変更しない限り、既存のパッケージが上書きされます。
パッケージが上書きされると、ランタイム・エラーの原因になります。
- 生成された Ant スクリプト内にあるデータベース URL の値、
およびデータベース・ユーザーとパスワード・プロパティーの値を変更します。
パッケージ名、
データベースの URL、ユーザー、およびパスワードは、スクリプト内で Ant プロパティーを使用して作成されます。
Ant スクリプトでは、以下について下記のグローバル・プロパティーを定義します。
- データベース URL - db.url
- ユーザー - db.user
- パスワード - db.password
- プロパティー・ファイルに新しい値を指定することにより、
Ant スクリプトと直列化プロファイルで使用される値を変更します。
Ant スクリプトは、
直列化プロファイル内の URL、ユーザー、およびパスワード・プロパティーを使用して
このプロファイルをカスタマイズします。デフォルトにより、直列化プロファイルのプロパティーは、グローバル・プロパティーから作成されます。
特定の EAR ファイルのスクリプトは、以下の 2 つのファイルからプロパティーを読み取ります。
- ejbdeploy.sqlj.properties
ejbdeploy.sqlj.properties ファイルは
、EJBDeploy コマンドによって生成されるすべての Ant スクリプトで共通するものです。
ejbdeploy.sqlj.properties ファイルは、データベースのユーザーやパスワードなどの、
グローバル・プロパティーを指定するために使用します。
- ear-name.properties
ear-name の値は EAR ファイルの名前です。
ear-name.properties ファイルは、EAR ファイルの Ant スクリプトに固有のものです。
Ant スクリプトで ear-name.properties 以外のファイルを使用する場合は、
スクリプトの実行時に script.property.file プロパティーを指定してください。
- DB2 Control Center を使用して、データベースにインストールされているパッケージを識別します。
DB2 SQLJ カスタマイザーでは、以下の形式のタイプ 4 データベース URL が必要になります。
jdbc:db2://host-name:port/database-name
また、ユーザーおよびパスワードも必要になります。
ポートの値は、DB2 のインストール時に変更していなければ 50000 になります。
- 次のように、properties ターゲットを指定して、
Ant スクリプトを実行します。
ws_ant -buildfile deployedMyApplication.ear.xml properties
このスクリプトは、プロパティー・
ファイル deployedMyApplication.ear.properties を作成します。
deployedMyApplication.ear.properties ファイルには、以下の例のような、
EAR ファイルの各直列化プロファイルに対応するパッケージのデフォルト名を指定するプロパティーが含まれています。
pkg.MyEJB1.jar.DB2UDBNT_V8_1=PKG1_
pkg.MyEJB2.jar.DB2UDBNT_V8_1=PKG2_
この例では、EAR ファイルに MyEJB1.jar と MyEJB2.jar という 2 つの EJB .jar ファイルが含まれています。
- 生成済みプロパティー・ファイルを編集して、
パッケージ名を変更します。
プラットフォームでの差を補正するために、以下のサンプル・コードの localhost を your.server.name で置き換えてください。
url.MyEJB1.jar.DB2UDBNT_V8_1=jdbc:db2://localhost:50000/MyDB1
user.MyEJB1.jar.DB2UDBNT_V8_1=dbuser
password.MyEJB1.jar.DB2UDBNT_V8_1=dbpassword
pkg.MyEJB1.jar.DB2UDBNT_V8_1=TEST
url.MyEJB2.jar.DB2UDBNT_V8_1=jdbc:db2://localhost:50000/MyDB2
user.MyEJB2.jar.DB2UDBNT_V8_1=dbuser
password.MyEJB2.jar.DB2UDBNT_V8_1=dbpassword
pkg.MyEJB2.jar.DB2UDBNT_V8_1=WORK
DB2 はパッケージ名の最初の 7 文字を使用します。
DB2 カスタマイザーは、この名前を使用してデータベースに 4 つのパッケージを作成します。
例えば、TEST という名前を指定した場合、カスタマイザーは以下の名前のパッケージを作成します。
TEST1、TEST2、TEST3、TEST4
このファイルの他のプロパティー (データベース URL、ユーザー、
またはパスワード) を指定することもできます。
- 以下の db2sqljcustomize オプションを使用して、
プロファイルをカスタマイズする際の問題を一時的に回避します。
これらのオプションは、次
のようにプロファイルのカスタマイズ時のエラーを迂回して、カスタマイズが成功するようにします。
-onlinecheck NO and -bindoptions "VALIDATE RUN"
ただし、何が問題であるかを理解し、それらを適宜修正する必要があります。
- Ant スクリプトを実行します。
DB2 db2jcc.jar ファイルがクラスパスになければなりません。
このファイルは、DB2 V8 FixPak1 がインストールされたときに、クラスパス環境変数に追加されているはずです。
- Ant スクリプトの作業ディレクトリーを指定する。
スクリプトはこのディレクトリーの中にファイルおよびサブディレクトリーを作成し、作業後にはそれらを削除します。
作業ディレクトリーに、スクリプトが使用するものと同じ名前のファイルやディレクトリーが含まれていると、
それらはスクリプトにより消去されてしまいます。
作業ディレクトリーを指定するには、以下のコマンドを使用します。
ws_ant -Dwork.dir=tmp -buildfile MyApplication.ear.xml
スクリプトは、作業ディレクトリーとして tmp という名前のディレクトリーを作成して使用します。
スクリプトで別のプロパティー・ファイルを使用する場合は、以下のようにスクリプトの実行時に
script.property.file プロパティーを設定してください。
ws_ant -Dwork.dir=tmp -Dscript.property.file=other.properties -buildfile MyApplication.ear.xml
Ant スクリプトは、オリジナルの EAR ファイルを変更された直列化プロファイルで更新します。
- EJBDeploy コマンドを再実行する場合は、Ant スクリプトを再実行します。
以下のいずれかの条件が該当する場合は、新しいプロパティー・ファイルを生成してください。
- EAR ファイルの .jar ファイルの数を変更します。
- EAR ファイルの .jar ファイルの名前を変更します。
- いずれかの .jar ファイルのデータベース・バックエンド ID を変更します。
- 更新済みの EAR ファイルを WebSphere Application Server にインストールします。
- WebSphere Application Server 内に JDBC プロバイダーおよびデータ・ソースを作成します。
以下のいずれかの条件が該当する場合は、新しいプロパティー・ファイルを生成してください。
- EAR ファイルの .jar ファイルの数を変更します。
- EAR ファイルの .jar ファイルの名前を変更します。
- いずれかの .jar ファイルのデータベース・バックエンド ID を変更します。
以下のいずれかの条件が該当する場合は、新しいプロパティー・ファイルを生成してください。
- EAR ファイルの .jar ファイルの数を変更します。
- EAR ファイルの .jar ファイルの名前を変更します。
- いずれかの .jar ファイルのデータベース・バックエンド ID を変更します。
- 管理コンソールを使用してアプリケーションをインストールしますが
、EJB は再デプロイしないでください。 「EJBDeploy」ボックスにチェック・マークを付けると、
アプリケーションは JDBC アクセスに対して再デプロイされます。
- サーバーを停止します。
- サーバーを始動します。
アプリケーションの実行準備が整いました。