WebSphere Application Server - Express, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

             目次と検索結果のパーソナライズ化

Enterprise JavaBeans (EJB) のコンテナー管理パーシスタンス (CMP) Beans での SQLJ (Structured Query Language in Java) の使用

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 がデプロイされていないと、アプリケーションのインストールは失敗します。

プロシージャー

  1. EAR ファイルをデプロイします。
    1. was_home/bin ディレクトリーが PATH ステートメントに含まれているか検査します。
    2. Apache Ant ツールを起動し、コマンドの残りの部分に対してそれを使用します。

      [Windows] ツールは ws_ant.bat です。

      [AIX] [HP-UX] [Solaris] [Linux] ツールは ws_ant です。

    3. ejbdeploy コマンド・ユーティリティーに -sqlj オプションを指定して実行します。
  2. アプリケーションをクラスター化環境で実行している場合は、 以下の 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 回実行します。

    1. DB2 SQLJ カスタマイザー db2sqljcustomize を直列化プロファイルに対して実行する。

      直列化プロファイルは、それぞれの EJB .jar ファイルごとに 1 つ存在します。 この直列化プロファイルは EJB .jar ファイルの中にあります。 直列化プロファイルのファイル名の例としては、FS_TopDown1_SJProfile0.ser などがあります。

      "-automaticbind yes" デフォルト・オプションを使用して、 直列化プロファイルに対して DB2 SQLJ カスタマイザーを実行する場合は、 実行時に使用されるデータベースに静的 SQL を作成してください。 このカスタマイズ・フェーズでは静的 SQL を含むデータベース・パッケージを、それぞれの分離レベルごとに 1 つずつ、 計 4 つ作成します。

    2. カスタマイズされたプロファイルを、 WebSphere Application Server にインストールされた EJB .jar ファイルに組み込みます。

      このカスタマイズ・ステップでは、生成されたカスタマイズ済みプロファイルの更新も行います。 これらの更新されたカスタマイズ済みプロファイルを、生成されたコードが実行時に使用できるようにするには、 WebSphere Application Server にインストールされた EJB .jar ファイルにこれらのプロファイルを組み込みます。

      カスタマイズ・ステップを省略すると、EJB アプリケーションは動作はしますが、データベースに保管された静的 SQL は使用せず、SQLJ の利点はすべて失われます。

    3. Ant スクリプトを使用すると、カスタマイズが容易になります。

      EAR ファイルに対してバッチ SQLJ ejbDeploy を実行すると、Ant スクリプトが作成されます。 このスクリプト・ファイルを使用して、関連付けられた EAR ファイルにある 全 EJB .jar ファイル内のすべての直列化プロファイルに対して 、DB2 カスタマイザー・プログラムを実行します。このスクリプトは各 EJB .jar ファイルを直列化プロファイルで更新し、 EAR ファイル内の .jar ファイルを変更後のものに置き換えます。 この Ant スクリプトは対応する EAR ファイルに固有のものです。

      このスクリプトは既存の EAR ファイルを変更します。

      また、このスクリプトはデータベースに作成されたパッケージに対して一連のデフォルト名を使用します。 各カスタマイズ・プロファイルの名前がデータベース内の既存パッケージ名と競合しないように、 スクリプト・ファイルで使用するそれぞれの名前を変更してください。 デフォルトでは、さまざまな EAR ファイル用に生成された複数の Ant スクリプトが同じパッケージ名を使用するので、 それらの名前を変更しない限り、既存のパッケージが上書きされます。 パッケージが上書きされると、ランタイム・エラーの原因になります。

    4. 生成された Ant スクリプト内にあるデータベース URL の値、 およびデータベース・ユーザーとパスワード・プロパティーの値を変更します。

      パッケージ名、 データベースの URL、ユーザー、およびパスワードは、スクリプト内で Ant プロパティーを使用して作成されます。

      Ant スクリプトでは、以下について下記のグローバル・プロパティーを定義します。

      • データベース URL - db.url
      • ユーザー - db.user
      • パスワード - db.password
    5. プロパティー・ファイルに新しい値を指定することにより、 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 プロパティーを指定してください。

    6. DB2 Control Center を使用して、データベースにインストールされているパッケージを識別します。
      DB2 SQLJ カスタマイザーでは、以下の形式のタイプ 4 データベース URL が必要になります。
      jdbc:db2://host-name:port/database-name
      また、ユーザーおよびパスワードも必要になります。 ポートの値は、DB2 のインストール時に変更していなければ 50000 になります。
  3. 次のように、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.jarMyEJB2.jar という 2 つの EJB .jar ファイルが含まれています。
  4. 生成済みプロパティー・ファイルを編集して、 パッケージ名を変更します。
                  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、ユーザー、 またはパスワード) を指定することもできます。

  5. 以下の db2sqljcustomize オプションを使用して、 プロファイルをカスタマイズする際の問題を一時的に回避します。

    これらのオプションは、次 のようにプロファイルのカスタマイズ時のエラーを迂回して、カスタマイズが成功するようにします。

                -onlinecheck NO and -bindoptions "VALIDATE RUN"
    
    ただし、何が問題であるかを理解し、それらを適宜修正する必要があります。
  6. Ant スクリプトを実行します。

    DB2 db2jcc.jar ファイルがクラスパスになければなりません。 このファイルは、DB2 V8 FixPak1 がインストールされたときに、クラスパス環境変数に追加されているはずです。

  7. 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 ファイルを変更された直列化プロファイルで更新します。
  8. EJBDeploy コマンドを再実行する場合は、Ant スクリプトを再実行します。

    以下のいずれかの条件が該当する場合は、新しいプロパティー・ファイルを生成してください。

    • EAR ファイルの .jar ファイルの数を変更します。
    • EAR ファイルの .jar ファイルの名前を変更します。
    • いずれかの .jar ファイルのデータベース・バックエンド ID を変更します。
  9. 更新済みの EAR ファイルを WebSphere Application Server にインストールします。
  10. WebSphere Application Server 内に JDBC プロバイダーおよびデータ・ソースを作成します。

    以下のいずれかの条件が該当する場合は、新しいプロパティー・ファイルを生成してください。

    • EAR ファイルの .jar ファイルの数を変更します。
    • EAR ファイルの .jar ファイルの名前を変更します。
    • いずれかの .jar ファイルのデータベース・バックエンド ID を変更します。

    以下のいずれかの条件が該当する場合は、新しいプロパティー・ファイルを生成してください。

    • EAR ファイルの .jar ファイルの数を変更します。
    • EAR ファイルの .jar ファイルの名前を変更します。
    • いずれかの .jar ファイルのデータベース・バックエンド ID を変更します。
  11. 管理コンソールを使用してアプリケーションをインストールしますが 、EJB は再デプロイしないでください。EJBDeploy」ボックスにチェック・マークを付けると、 アプリケーションは JDBC アクセスに対して再デプロイされます。
  12. サーバーを停止します。
  13. サーバーを始動します。

    アプリケーションの実行準備が整いました。




関連概念
組み込み SQLJ (Structured Query Language in Java) サポート
データ・アクセスに関する例外
関連タスク
Bean へのアクセス・インテント・ポリシーの適用
データ・アクセス・アプリケーションの開発
関連資料
Data Access Bean のタイプ
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 6:25:35 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/tdat_sqljcmp.html