複数の DB2 パッケージ・コレクションを使用する pureQuery の構成
pureQuery Java™ Persistence API (JPA) アプリケーションを複数の DB2® パッケージ・コレクションを使用するように設定します。
このタスクについて
データベース・スキーマのコピーは、複数存在する可能性があります。 このような状態は、西海岸の従業員データに対して 1 つのデータベース、 東海岸の従業員データに対して別のデータベースがある場合など、分割されたデータベース・スキーマで起こる場合があります。この場合、2 つのデータベースは同じスキーマを持ちます。2 つのデータベースが 2 つのデータベース・カタログを持つ場合があります。または、データベースが 1 つだけの場合もあります。 この場合は、テーブル名 (スキーマ名) のハイレベル修飾子は異なるものにする必要があります。スキーマは 同じであるため、単一の JPA エンティティーのセットを使用して両方のデータ・セットにアクセスすることが可能です。これらの状態に対処するように JPA を構成する方法がいくつかあります。
重要: 複数のパーシスタンス・ユニットがある場合には、
別個のデータベースまたは単一のデータベースを使用して、
各パーシスタンス・ユニットに対して wsdbgen コマンドを 1 回実行する必要があります。
複数の DB2 パッケージ・コレクションを使用する必要がある以下の 3 つのシナリオがあります。詳細情報が必要な場合は、IBM® Optim™ PureQuery ランタイムを使用したアプリケーションの構成に関するトピックを参照してください。
- データ・ソース名が異なる 2 つのパーシスタンス・ユニットがあり、静的 SQL を使用している場合に、2 セットの DB2 パッケージ (つまり、各データベースに 1 つの DB2 パッケージ) が存在します。 2 つのパーシスタンス・ユニットが存在するため、 JPA ランタイム環境に対して 2 つの persistence_unit_name.pdqxml ファイルが存在します。
- テーブルが単一のデータベースにある場合に、2 つのパーシスタンス・ユニットを使用することもできます。この場合は、 データ・ソースは両方のパーシスタンス・ユニットで同じになります。 ただし、スキーマ名プロパティー wsjpa.jdbc.Schema は異なる必要があります。 2 セットの DB2 パッケージがあります。各 DB2 パッケージは、異なるパッケージ名または異なるパッケージ・コレクション名にする必要があります。wsdb2gen および DB2 bind コマンドには、 パッケージ・コレクションおよびパッケージ名を指定するオプションがあります。
- パーシスタンス・ユニットを 1 つだけ作成することもできます。 この場合、2 つのパーシスタンス・ユニット構成を維持して、wsdbgen コマンドを複数回実行する必要はなくなります。 この構成では、 共通のパッケージ名が必要です。そのため、パッケージ・コレクション名は異なる必要があります。createEntityManager(Map マップ) メソッドを使用して、 マップに含まれる wsjpa.jdbc.Schema プロパティーおよび wsjpa.jdbc.CollectionId プロパティーにパッケージ・コレクション名とスキーマ名を指定します。