WebSphere Application Server で提供された Enterprise
JavaBeans (EJB) データ・メディエーター・サービス (DMS) を利用してアプリケーションの書き込みを開始する場合は、以下の項目を考慮してください。
EJB プログラミング・モデル
Enterprise JavaBeans プ
ログラミング・モデルのサブセットのみが、EJB データ・メディエーター・サービスによってサポートされています。
- EJB コレクション・パラメーターを使用して、EJB インスタンスから
データを検索するとき、または applyChanges を使用して EJB インスタンスをアップデートするとき:
- データベースから直接 applyChanges メソッドを起動すると、以下のことが発生します。
- コンテナー更新をバイパスします。 トランザクション終了および適切なコンテナー・キャッシュ・オプションの使用によって、可能な限り早く最新表示を強制します。
- EJB コンテナー管理関連 (CMR) 保守をバイパスします。
データベース RI に依存して、これらの関連が DataGraph 内に取得されな
いように保守する必要があります。
- CMP フィールドは、許可タイプでなければなりません。
これらのタイプのリストについては、EJB メディエーター照会構文
を参照してください。
- EJB converters/composer を使用するユーザー定義タイプの CMP フィールドは、サポートされません。
以下のテーブルは、EJB DMS によってサポートされない EJB プログラミング・モデル内の制限を表示しています。
|
DB から直接検索 |
EJB コンテナーから検索 |
DB へ直接更新 |
EJB を介した更新 |
EJB パーシスタンス継承 |
いいえ |
いいえ |
いいえ |
いいえ |
コンバーターを持つ EJB CMP フィールド |
いいえ |
はい |
いいえ |
はい |
トランザクションの
- すべてのメディエーター呼び出し (create を含む) は、
トランザクション・スコープ (ユーザー・トランザクションまたはコンテナー・トランザクション) 内で行う必要があります。こうしたさまざまなメディエーター呼び出し (create、getGraph、applyChanges) は、同じトランザクション内で呼び出す必要はありません。
実際、呼び出しはほとんどの場合個別のトランザクションで行われます。
ベスト・プラクティス
- 1 つのメディエーター・インスタンス上で getGraph を呼び出し、戻
された DataGraph を更新し、次に異なるメディエーター・インスタンス上で applyChanges を呼び出すことは許容されています。
しかし、同じメディエーター・インスタンスは必要ありませんが、同じ 照会形状 は必要です。 照会形状は、
照会ステートメントの番号および配列、SELECT および FROM 文節内で指定さ
れたフィールドおよび関係などです。
- 可能であれば、createMediator への繰り返し呼び出しを避けてください。
パラメーター化照会を使用し、また異なるパラメーター値で受け渡すために getGraph を使用してください。