WebLogic からの CMP EJB プロジェクトのマイグレーション

WebLogic から CMP EJB プロジェクトをマイグレーションする際、生成されるコードをデータベース・スキーマ名と区別するために、データベース・スキーマ名を NULLID に変更する必要があります。

スキーマ名の指定における制限

特定のスキーマ名を使用するデータ・モデルに対して CMP EJB v1.x または v2.x マッピングを作成すると、スキーマ名の接頭部を使用する SQL コードが生成されます (schema_name.table)。 データベースは DB2® または Oracle、あるいはその他のベンダーです。 この場合、対応するデータ・ソースを、生成されるコードのスキーマ名とは無関係に WebSphere® Application Server v7.x で指定するという柔軟性が失われます。 つまり、スキーマ名を、データベースとの接続に使用されるログイン ID と同じものに自動的に設定することができなくなります。

柔軟なスキーマ名

スキーマ名を CMP EJB 1.x または 2.x マッピングにハードコーディングするのではなく、NULLID を使用します。 データベース・モデルでスキーマ名 NULLID を使用すると、生成される EJB デプロイ・コード SQL ステートメントはスキーマ名に依存しないので、WebSphere Application Server V7.x サーバーでデータ・ソースを柔軟に指定することができます。 生成される SQL ステートメントの NULLID 接頭部 (NULLID.table) は、サーバーのデータ・ソースで指定されたログイン ID と一致するようにアプリケーション・サーバー ejb/データ・ソースのランタイムによって実行時に変更されます。

結果として EJB バックエンド・フォルダーにデータ・モデルを生成するデータベース接続に対して EJB マッピングが行われる際、そのスキーマ名が NULLID ではない場合、スキーマ名を次の方法で変更することができます。

  1. Rational® Application Developer V7.0 の場合、Java™ EE パースペクティブの「エンタープライズ・エクスプローラー」ビューに、EJB プロジェクトの論理フォルダー「データ・モデル」があります。 この「データ・モデル」フォルダーを展開すると、データベース・モデル・ファイル {<name>).dbm が表示されます。 このファイルは、物理的には EJB プロジェクト・フォルダー ejbModule/META-INF/backends/{database vendor backend folder} にあります。
  2. *.dbm データ・モデル・ファイルをダブルクリックして、物理データ・モデル・エディターを開きます。 または、ファイルを右クリックして、「開く」を選択します。
  3. 「スキーマ」をクリックすると、その情報が「プロパティー」ビューに表示されます。 スキーマ名を NULLID に変更します。 ファイルを保存します。
  4. CMP EJB プロジェクトを右クリックし、「Java EE」 > 「デプロイメントの準備」を選択します。生成される SQL コードの接頭部に NULLID が付きます。この接頭部は、ログイン ID と一致するスキーマ接頭部を持つ SQL ステートメントを送信するために、実行時に WebSphere Application Server によって変更されます。
    注: サーバーのデータ・ソースのログイン ID と一致するスキーマ名を持つことができず、カスタム・プロパティーの設定が必要なデータベース・ベンダーおよびバージョンのシナリオもあります。 z/OS® DB2 の場合は、Specifying a runtime DB2 z/OS data source Schema for a CMP EJB Project with a NULLID mapped Schema を参照してください。

フィードバック