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

テーブルおよびデータ・ソース・クリエーター により、 パーシスタンス (永続性) 機構またはデータ・ソースの構成方法に煩わされることなく、コンテナー管理パーシスタンス (CMP) エンタープライズ Bean のテストに使用するパーシスタンス・リソースを自動的に作成する方法が提供されます。 CMP Bean は、データ・ソースまたはデータベース表、またはその両方をツールに作成させることで、セッション Bean と同じく容易にテストすることができます。 テーブルおよびデータ・ソース・クリエーターは以下を自動的に収集します。 ユーザー ID、パスワード、ホスト名、ポート、JDBC ドライバーのパス、 テーブルを最初にドロップするかどうか、データ・ソースのみを作成してテーブルは 作成しないかどうか、またはテーブルは作成するがデータソースは作成しないかどうか。
以下のデータベース・システムが、次に記述する制限付きでサポートされています。 前提条件タスク:
  1. エンタープライズ・アプリケーション・プロジェクトを作成する。
  2. 作成したエンタープライズ・アプリケーション・プロジェクトの中に EJB プロジェクトを作成する。
  3. 作成したエンタープライズ・アプリケーション・プロジェクトに対応する EJB プロジェクト の CMP Bean を作成する。
  4. トップダウン・マッピングを生成する (以下のいずれかのターゲット・データベースを選択します)。
    • Derby 10.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 つを選択して、テーブルまたはデータ・ソースを作成するデータベース・ベンダーを指定する。
      • DERBY_V101
      • DB2UDBNT_V82
      • DB2UDBNT_V8_1
      • ORACLE_V10
      • ORACLE_V9
      • MSSQLSERVER_V2000
      ヒント: EJB から RDB へのマッピング・ツールを使用したトップダウン・マッピングの生成により任意のバックエンド ID を生成することができますが、テーブルおよびデータ・ソース・クリエーターでは、上で一覧表示された現在のバックエンドのみがサポートされます。 サポートされていない現在のバックエンド ID を選択しようとすると、テーブルおよびデータ・ソース・クリエーターは続行不能になり、以下のエラー・メッセージが表示されます。
      この WebSphere バージョンの、ベンダーがサポートしているテーブルおよびデータの自動作成に対するスキーマを含む EJB プロジェクトがありません。
      サポートされるベンダーは、Apache Derby v10.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.1 サーバーを作成する。
  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. IBM Cloudscape v10.1 ( Derby とも呼ばれる) のデータ・ソースを作成する場合は、ホスト名またはポート番号が必要ないため、次のステップに進む。 その他すべてのサポートされるデータベース・ベンダーの場合は、このステップを続けます。
    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) の認証エントリー。 Derby の場合、JAAS 認証エントリーは必要ないため作成されません。
    • JDBC プロバイダー・パスの変数を JDBC ドライバーへの実際のファイル・パスに関連付ける変数マッピング。Derby の場合、 変数マッピングは必要ないため作成されません。
  10. (オプション) ユニバーサル・テスト・クライアントを使用して CMP Bean をテストする
この操作を再度実行すると:

フィードバック