エンタープライズ Bean を設計および開発する際には、以下のガイドラインを使用してください。
ローカル呼び出しは、RMI/IIOP のオーバーヘッドを避け、 値による受け渡しではなく参照による受け渡しのセマンティクスを使用します。呼び出しごとに、呼び出し元および呼び出し先の Bean は引数の状態を共用します。EJB 2.x Bean には、 ローカル・インターフェースとリモート・インターフェースの両方を備えることができますが、たいていは、いずれか一方を備えています。
JDBC 2.0 以降では、PreparedStatement オブジェクトは、バッチとして一緒に実行依頼可能なコマンド・リストを保持できます。 複数のデータベースを往復させる代わりに、 すべてのバッチ・パーシスタンス要求に対して 1 つのデータベースが往復します。
EJB コンテナー管理パーシスタンスのこの機能を使用可能にすることができます。 これを行う場合、ランタイムは、 必要になるまで ejbStore/ejbCreate/ejbRemove または同等のデータベース・パーシスタンス要求 (挿入/更新/削除) を据え置きます。 これは、トランザクションの終わりか、またはこの EJB タイプに関連付けられたファインダーにフラッシュが必要な場合に起こります。 最終的にパーシスタンス操作が起こると、ランタイムはデータベース要求を累算し、 JDBC PreparedStatement バッチ操作を使用して、複数行の同一操作に対して、単一の JDBC 呼び出しを行います。
WebSphere Application Server では、Application Server Toolkit (AST) を使用して同じ設定を行うことができま す。
Enterprise JavaBeans (EJB) 2.x の仕様では、ejbCreate 中のコンテナー管理パーシスタンス (CMP) については、コンテナーがデータベースのエンティティー表記を即時に作成することも、いったん据え置いて後で作成することもできると示されています。
WebSphere Application Server バージョン 5.0.2 以降では、この仕様が利用可能になりました。 EJB CMP サイドからこのオプションをオンにすることができます。このオプションを選択した場合には、 ランタイムは ejbCreate (または同等のデータベース・パーシスタンス要求) を必要になるまで据え置きます。 これは、トランザクションの終わりか、またはこの EJB タイプに関連付けられたファインダーにフラッシュが必要な場合に起こります。 これを行うと、新しく作成したエンティティー (挿入および更新) の 2 つの往復を、1 つ (挿入) に減らすことができます。
WebSphere Application Server では、Application Server Toolkit (AST) を使用して同じ設定を行うことができま す。