WebSphere Application Server v6.0.x で CMP Bean をテストするためのテーブルおよびデータ・ソースの自動作成

テーブルおよびデータ・ソース・クリエーター により、 パーシスタンス (永続性) 機構またはデータ・ソースの構成方法に煩わされることなく、コンテナー管理パーシスタンス (CMP) エンタープライズ Bean のテストに使用するパーシスタンス・リソースを自動的に作成する方法が提供されます。 CMP Bean は、データ・ソースまたはデータベース表、またはその両方をツールに作成させることで、セッション Bean と同じく容易にテストすることができます。 テーブルおよびデータ・ソース・クリエーターは以下を自動的に収集します。 ユーザー ID、パスワード、ホスト名、ポート、JDBC ドライバーのパス、 テーブルを最初にドロップするかどうか、データ・ソースのみを作成してテーブルは 作成しないかどうか、またはテーブルは作成するがデータソースは作成しないかどうか。
以下のデータベース・システムが、次に記述する制限付きでサポートされています。 前提条件タスク:
  1. エンタープライズ・アプリケーション・プロジェクトを作成する。
  2. 作成したエンタープライズ・アプリケーション・プロジェクトの中に EJB プロジェクトを作成する。
  3. 作成したエンタープライズ・アプリケーション・プロジェクトに対応する EJB プロジェクト の CMP Bean を作成する。
  4. トップダウン・マッピングを生成する (以下のいずれかのターゲット・データベースを選択します)。
    • Cloudscape 5.1
    • DB2 UDB V8.2
    • DB2 UDB V8.1
    • Oracle 10
    • Oracle 9
    • SQL Server 2000
  5. 以下を実行して、使用する現在のバックエンド ID が選択されていること、および接続ファクトリー・バインディングの JNDI 名が固有のものであることを確認する。
    1. J2EE パースペクティブの「プロジェクト・エクスプローラー」ビューで、EJB プロジェクトを展開する。
    2. EJB JAR」アイコン 「EJB JAR」アイコンのイメージ。 を右クリックし、「開く」を選択する。
    3. EJB デプロイメント記述子エディターが開きます。
    4. EJB デプロイメント記述子エディターの「概要」ページで、「WebSphere バインディング」セクションまでスクロールダウンする。
    5. バックエンド ID」セクションにある「現行®」リストで、 以下のサポートされる現行バックエンド ID の 1 つを選択して、テーブルまたはデータ・ソースを作成するデータベース・ベンダーを指定する。
      • CLOUDSCAPE_V51
      • DB2UDBNT_V82
      • DB2UDBNT_V8_1
      • ORACLE_V10
      • ORACLE_V9
      • MSSQLSERVER_V2000
      ヒント: EJB から RDB へのマッピング・ツールを使用したトップダウン・マッピングの生成により任意のバックエンド ID を生成することができますが、テーブルおよびデータ・ソース・クリエーターでは、上で一覧表示された現在のバックエンドのみがサポートされます。 サポートされていない現在のバックエンド ID を選択しようとすると、テーブルおよびデータ・ソース・クリエーターは続行不能になり、以下のエラー・メッセージが表示されます。
      この WebSphere バージョンの、ベンダーがサポートしているテーブルおよびデータの自動作成に対するスキーマを含む EJB プロジェクトがありません。
      サポートされるベンダーは、Cloudscape v5.1、DB2 Universal Database v8.1、DB2 Universal Database v8.2、Oracle v9i、Oracle v10g、および Microsoft SQL Server 2000 です。
    6. JNDI - CMP 接続ファクトリー・バインディング」セクションの「JNDI 名」フィールドの下で、固有の JNDI 名を指定する。 そうでない場合、テーブルおよびデータ・ソース・クリエーターはデータ・ソースの作成に失敗し、以下のエラー・メッセージが表示されます。
      新しいデータ・ソースを追加すると既存のデータ・ソース JNDI 名と重複してしまうため、追加されませんでした。
    7. 変更内容を保管し、EJB デプロイメント記述子エディターを閉じる。

CMP エンティティー Bean のテスト用にテーブルまたはデータ・ソース、あるいはその両方を作成するには、以下のようにします。

  1. WebSphere Application Server v6.0 サーバーを作成する。
  2. 「サーバー」ビューでサーバーを右クリックし、「プロジェクトの追加および除去」を選択して、CMP を含む EAR プロジェクトをサーバーに追加する。
  3. 「サーバー」ビューで、サーバーを右クリックし、 「テーブルおよびデータ・ソースの作成」を選択する。 「テーブルおよびデータ・ソース・クリエーター」ウィザードが開きます。
  4. テーブルを作成するかどうかを指定する。
    1. CMP エンティティー Bean のトップダウン・マッピングを実行している際、テーブルを作成するには、 「database_vendor のデータベース・テーブルを作成 (Create database tables for database_vendor)」チェック・ボックスを選択する。
    2. database_vendor のデータベース・テーブルを作成 (Create database tables for database_vendor)」チェック・ボックスを選択する場合、「以前に生成されたデータベース・テーブルを削除 (Drop the previously generated database tables)」チェック・ボックスを使用して、以前に生成されたデータベース・テーブルを削除するかどうかを指定する。
      注意:
      「前に生成されたデータベース・テーブルのドロップ」チェック・ボックスを有効にすると、以前に作成されたテーブルおよびこれらのテーブルに格納されたデータがすべて削除されます。
    3. データベース内に既に存在するテーブルを使用する場合、またはボトムアップ・マッピングを実行中で、テーブルを作成しない場合、「以前に生成されたデータベース・テーブルを削除 (Drop the previously generated database tables)」および「database_vendor のデータベース・テーブルを作成 (Create database tables for database_vendor)」チェック・ボックスをクリアし、CMP エンティティー Bean のデータ・ソースの作成を続行して既存のテーブルに接続する。
  5. データ・ソースを作成する場合、以下のステップを実行する。
    1. database_vendor のデータ・ソースを作成 (Create data source for database_vendor)」チェック・ボックスを選択する。
    2. Cloudscape 5.1 のデータ・ソースを作成する場合は、ホスト名またはポート番号が必要ないため、次のステップに進む。 その他すべてのサポートされるデータベース・ベンダーの場合は、このステップを続けます。
    3. データベース・サーバー・ホスト名または IP アドレス (Database server host name or IP address)」フィールドで、データベースをホストするコンピューター・マシン名を指定する。例えば、localhost など。
    4. データベース・サーバー・ポート番号 (Database server port number)」フィールドで、 データベース接続のポート番号を指定する。 デフォルトでは、DB2 には 50000、Oracle には 1521、SQL Server には 1433 というポート番号が指定されています。
    5. (オプション) 「database_vendor のデータベース・テーブルを作成 (Create database tables database_vendor)」チェック・ボックスをクリアし、 データ・ソースのみを作成する場合、「すべてのデータ・ソース接続情報をここで指定 (Specify all data source connection information here)」チェック・ボックスを選択して、このウィザードでデータ・ソース接続情報を指定するオプションがあります。以下の詳細を指定して「終了」をクリックします。
      データベース・ユーザー ID
      データベースへのアクセスに必要なユーザー ID を指定します。
      データベース・ユーザー・パスワード
      データベースへのアクセスに必要なパスワードを指定します。
      JDBC ドライバーへのローカル・パス
      ローカル・ファイル・システム上のこのデータベースの JDBC ドライバー・パスの完全セットを指定します。 複数の JAR ファイルを指定する場合、JAR ファイル名は完全修飾にして、パス分離文字で区切る必要があります。 パス分離文字は、ワークベンチを実行しているオペレーティング・システムごとに異なります。 Windows® の場合は、パス分離文字としてセミコロン (;) を使用してください。 Linux® プラットフォームの場合は、パス分離文字としてコロン (:) を使用してください。 例えば、以下のようになります。
      この図は Windows アイコンです。Windows の場合:c:\Program Files\IBM\SQLLIB\java\db2jcc.jar;c:\Program Files\IBM\SQLLIB\java\db2jcc_license_xxxxx.jar
      この図は Linux アイコンです。Linux の場合:c:\Program Files\IBM\SQLLIB\java\db2jcc.jar:c:\Program Files\IBM\SQLLIB\java\db2jcc_license_xxxxx.jar
      また、このウィザードの次のページでデータ・ソースの接続パラメーターを指定することができます。
  6. 次へ」をクリックする。「接続の選択」ウィザードが開きます。
  7. 新規のデータベース接続を使用するか、既存の接続を使用するかを指定する。
    1. 新規のデータベース接続を作成するには、「新規接続の作成」ラジオ・ボタンを選択して、「次へ」をクリックする。「テーブルの接続パラメーターの作成 (connection parameters for table creation)」ウィザードが開きます。このウィザードを使用して、データベース接続パラメーターを指定します。
      ヒント: 「終了」をクリックする前に、「接続のテスト」ボタンを使用して、データベース接続をテストし、すべての設定が正しいこと、およびデータベースへの接続が可能であることを確認します。
    2. 既存の接続を使用するには、「既存の接続の使用」ラジオ・ボタンを選択し、 「既存の接続」テーブルの下で接続を選択する。 「プロパティー」テーブルに接続パラメーターおよび値が表示されます。 既存のデータベース接続は、接続または切断されることがあります。 データベース接続が接続され、テーブルを作成するように指定すると、 テーブルおよびデータ・ソース・クリエーターによりデータベースへの接続が確立され、テーブルが作成されます。 データベース接続が切断され、テーブルを作成するように指定すると、「データベース許可」ダイアログ・ボックスが開き、データベース接続を開始するためのユーザー ID およびパスワードの入力を求めるプロンプトが表示されます。
  8. 「テーブルおよびデータ・ソース・クリエーター」ウィザードへの入力が済んだら、「終了」をクリックする。 テーブル作成実行時の SQL 操作のリストおよびのエラーを表示する「テーブルおよびデータ・ソースの作成結果 (Table and Data Source Creations Results)」ダイアログ・ボックスが開きます。 テキストをコピーするには、テキストを強調表示し、右クリックして「コピー」を選択します。 テーブルおよびデータ・ソースの作成における追加のステータスを見るには、「詳細」ボタンを使用することができます。
  9. (オプション) データ・ソースの作成を確認するには、アプリケーション・デプロイメント記述子エディターの「デプロイメント」ページを開く。 作成された以下の要素が表示されます。
    • 新規の JDBC プロバイダー (以前に作成していない場合)。
    • JDBC プロバイダーを使用する新規データ・ソース。 データ・ソースは、EJB デプロイメント・エディターで定義された JNDI 名およびマッピングで指定されたデータベース名を指定します。
    • データベース接続の認証に使用するユーザー ID およびパスワードを指定する新規の Java™ 認証・承認サービス (JAAS) の認証エントリー。 Cloudscape の場合、JAAS 認証エントリーは必要ないため作成されません。
    • JDBC プロバイダー・パスの変数を JDBC ドライバーへの実際のファイル・パスに関連付ける変数マッピング。Cloudscape の場合、変数マッピングは必要ないため作成されません。
  10. (オプション) ユニバーサル・テスト・クライアントを使用して CMP Bean をテストする
この操作を再度実行すると:

フィードバック