アクセス・インテントは、 アプリケーションのパーシスタンスに対するより厳密な管理を可能にする WebSphere Application Server ランタイム・サービスです。
アクセス・インテント・サービスは、 エンティティー Bean アクセスのパフォーマンスを最適化するために Enterprise JavaBeans (EJB) コンテナーとそのエージェントが使用する、 宣言された注釈のセットを定義します。 これらの注釈は、アクセス・インテント・ポリシー と呼ばれるセットに編成されます。
アクセス・インテント・ポリシーには、EJB コンテナーとそのエージェントによるヒントと考えられる注釈のセットが含まれています。 ほとんどのアクセス・インテント・ポリシーは、特定のバックエンド・リソース・マネージャーにマップできる高水準の抽象化を表すヒントです。 パーシスタンスの詳細を実行する際に必要な並行性制御、接続、およびキャッシュ管理を保証するのは、EJB パーシスタンス機構の役割です。 EJB パーシスタンス・マネージャーは、 アクセス・インテントのヒントを使用することで、 それに割り当てられたタスクを実行する際に、パフォーマンスについてより適切な判断を行うことができます。 より少数のアクセス・インテントは、EJB コンテナーへのヒントであり、 EJB コレクションの管理に影響を与えます。
一般に、アプリケーションでは、Bean レベル のアクセス・インテントを構成します。 アクセス・インテント・ポリシーは、 アプリケーション・プロファイル の有効範囲内の Bean に適用することもできます。 したがって、 複数の対立するアクセス・インテント・ポリシーを持つ Bean を構成することができます。 アプリケーション・プロファイルの資料に、 ある要求の Bean に特定のアクセス・インテント・ポリシーを適用するアプリケーションを構成し、 次に異なる要求の同じ Bean に別のアクセス・インテント・ポリシーを適用する方法についての、より詳しい説明があります。
アクセス・インテント・ポリシーをメソッド・レベルで適用することは、 WebSphere Application Server バージョン 6.0 では推奨されていません。 この方法でアクセス・インテントを構成する場合は、EJB モジュールの スコープ内のメソッドにポリシーを適用して、 そのポリシーが、メソッド上のすべての要求に対する、 デフォルトのアクセス・インテントになるようにします。
アクセス・インテント・ポリシーは、エンティティー Bean のあらゆるメソッドで構成できますが、 ポリシーの属性の中には、一定の条件下にあるランタイム環境によってのみ活用できるものがあります。 例えば、CMP エンティティー Bean で並行性およびアクセス・インテントが使用されるのは、 所定のリソースへの接続をオープンし、そのリソースからデータを読み取るために ejbLoad() メソッドが駆動されるときだけです。そのデータはキャッシュされ、ejbStore() メソッドの呼び出し中に正しい照会を駆動するために使用されます。 先読みヒントは、Bean に対してファインダーを実行しているときだけ使用されます。 最後に、コレクション増分およびリソース・マネージャー事前取り出し増分は、 マルチ・オブジェクト・ファインダーでのみ使用されます。 ポリシーを使用しないメソッドについてのポリシーを構成しても、 エラーにはなりません (ポリシーがメソッドに正しく適用されている場合であっても、 ポリシーの特定の属性だけが使用されます)。 ただし、アプリケーション全体で不必要にポリシーを構成すると、 アプリケーションの設計が不明確になり、そのアプリケーションの保守が複雑になります。
アクセス・インテントの宣言機能は、ユーザーに、CMP エンティティー Bean 開発者としての大きな力を与えてくれます。 WebSphere Application Server が、アプリケーション内からパーシスタンス論理を明示的に管理することなく、 パーシスタンスの詳細を管理する方法について、ヒントを提供することができます。 ただし、BMP エンティティー Bean を開発しなければならない場合があります。 BMP コンポーネントと CMP コンポーネントの間における唯一の意味のある違いは、 誰がパーシスタンス論理を提供するかということにあるため、 WebSphere Application Server が CMP エンティティー Bean のために行うように、 BMP エンティティー Bean もアクセス・インテントのヒントを活用できる必要があります。 アクセス・インテント・サービスを使用する BMP エンティティー Bean は、 アプリケーションのプロファイル作成に参加します。 つまり、アクセス・インテント属性の値には要求と要求の間で異なるものを使用でき、 BMP エンティティー Bean はシームレスにそのパーシスタンス戦略を変更できるようになります。
アクセス・インテント・ポリシーは、BMP エンティティー Bean メソッドと CMP エンティティー Bean メソッドの両方に適用できます。 アクセス・インテントのヒントは、本来契約で保証されたものではないため、 BMP エンティティー Bean がそれらのヒントを活用する義務はありません。 BMP エンティティー Bean は、その特定の Bean にとって重要なアクセス・インテント属性のみを使用することが予期されます。
現行のアクセス・インテント・ポリシーは、特定の BMP エンティティー Bean の java:comp ネーム・スペースにバインドされます。 そのポリシーは、 アクセス・インテント・ポリシーが検索されたメソッド呼び出しの期間にのみ適用されます。 一般的なシナリオでは、ejbLoad() メソッドの呼び出し中にアクセス・タイプをキャッシュし、 ejbStore() メソッドの呼び出し中に適切なアクションが取られるようにします。
Enterprise JavaBeans (EJB) メソッドにアクセス・インテント・ポリシーを適用する場合は、次の問題を考慮してください。