アプリケーション・プロファイル

アプリケーション・プロファイルを使用して、製品ランタイム環境に対する特定の作業単位を識別することができます。ランタイムでは、 その作業単位の正確な要件に対するサポートを調整することができます。

アプリケーション・プロファイルでは、アプリケーション・トランザクション構成に関する正確な知識と、 各トランザクションの通過中に状態がパーシスタントなアプリケーションとの対話が必要です。

分析は、closed world モードまたは open world モードのいずれかで実行できます。 closed-world 分析では、アプリケーションのすべての可能なクライアントが分析の対象となり、 分析結果にはすべてが含まれ結果が正しいことが想定されています。closed-world 分析の結果では、Web、JMS、またはアプリケーション・クライアントが起動可能な一連のすべてのトランザクションが報告されます。 結果からは、実行時に起動されなかった多数の潜在的なトランザクションは除外されます。

open-world 分析では、必ずしもすべてのクライアントが分析の対象にはならず、 分析で完全かつ正確な結果を戻すことはできないことが想定されています。open-world 分析は、可能なトランザクションの完全セットを戻します。

分析結果は、アプリケーション・プロファイル構成として保持されます。 アセンブリー・ツールは、サーブレット、JavaServer Pages (JSP) ファイル、 アプリケーション・クライアント、およびメッセージ駆動型 Bean (MDB) 用のコンテナー管理タスクを設定します。 タスクのアプリケーション・プロファイルは、タスクによって表記されるトランザクションに参加するエンティティーに対して適切な、アクセス・インテントで構成されます。 ただし実際には、最善な場合でも未完了という結果をツールが戻す状況が多数存在します。 すべてのアプリケーションが、静的分析に従っているわけではありません。 呼び出しグラフを判別できなくしているファクトリーおよびコマンド・パターンがいくつか存在します。 ツールでは、ActivitySessions の分析はサポートされていません。

分析結果は、十分注意して調べる必要があります。 多くの場合、アプリケーション要件に適合させるために、手動で修正する必要があります。 ただし、ツールは、ほとんどのアプリケーションにとって有効な開始点であり、アプリケーションによっては、 完全で迅速なアプリケーション・プロファイルを構成できます。

アクセス・インテントは、アプリケーション・プロファイルの機能を使用するランタイムの唯一のコンポーネントです。 例えば、 1 つのトランザクションはエンティティー Bean を強い更新ロックでロードするように構成し、 別のトランザクションは同じエンティティー Bean をロックなしでロードするように構成することができます。

この機能を実現するため、アプリケーション・プロファイルには、2 つの新しい概念 (「タスク 」と「プロファイル 」) が導入されています。
タスク
タスクとは、作業単位の構成可能な名前のことです。 この場合、作業単位 は、トランザクションまたはアクティビティー・セッションのいずれかを意味します。 タスク名は、通常、作業単位を開始できる J2EE コンポーネントに対して宣言されて割り当てられます。 通常、タスクは、コンテナー管理されているトランザクションまたは Bean 管理されているトランザクションのいずれかに対して宣言されている Enterprise JavaBeans ファイルのメソッドに構成されます。 構成済みタスクの有効範囲内で開始される作業単位は、そのタスク名に関連付けられます。 作業単位は開始時にのみ命名され、 その名前は、その作業単位の存続期間中、変更できません。 作業単位は、開始後、それ以降のすべてのタスク名構成を一切無視します。 タスクは、その作業単位の継続時間中、その作業単位に固有の構成済みポリシーを識別するために使用されます。
注: アプリケーション・プロファイル・サービスのコンソール・ページで 5.x 互換モード属性を選択すると、 J2EE 1.3 アプリケーションで構成されたタスクは、必ずしも作業単位に関連付けられてはおらず、 任意に適用し、オーバーライドすることが可能です。 これは、推奨される操作モードではなく、データベース・アクセス中に予期しないデッドロックが発生する場合があります。タスクは、 アプリケーション・プロファイル 5.x 互換モードで稼働するアプリケーションと、 互換モードで稼働しないアプリケーションとの間の要求で通信は行いません。

バージョン 6.x クライアントが、アプリケーション・プロファイル 5.x 互換モードで実行するアプリケーションと対話するためには、クライアント・プロセスで appprofileCompatibility システム・プロパティーを true に設定する必要があります。 これは、launchClient コマンドを呼び出すときに -CCDappprofileCompatibility=true オプションを指定することにより可能になります。

プロファイル
プロファイルは、単に、エンティティー Bean 上に構成されている一連のアクセス・インテント・ポリシーへのタスクのマッピングです。 Bean の呼び出し (finder メソッド、CMR getter、または動的照会のいずれかによる) においてデータをバックエンド・システムから検索する必要がある場合、 トランザクションの正確な要件を判別するため、要求に関連した現行タスクが使用されます。 この同じ Bean は、タスクからプロファイルへのマッピング・コンテキストにロードされ、異なった振る舞いをします。 それぞれのプロファイルにより、開発者は、アプリケーションのアクセス・インテントを再構成することができます。 要求がタスクなしで行われている場合、 ランタイム環境は、メソッド・レベル・アクセス・インテント (存在する場合)、または Bean レベルのデフォルト・アクセス・インテントのいずれかを使用します。
注: アプリケーション・プロファイル構成は、 アプリケーションの有効範囲の構成データです。 いずれかの Enterprise JavaBean (EJB) モジュールにアプリケーション・プロファイル構成が含まれている場合、 その他の EJB モジュールは、その中にアプリケーション・プロファイル構成データが含まれていない場合であっても、アプリケーション・プロファイル・サービスによってすべて暗黙的に規制されます。

例えば、アプリケーションに EJBModule1 と EJBModule2 という 2 つの EJB モジュールがあるとします。

EJBModule1 には AppProfile1 という名前のアプリケーション・プロファイルがあります。 この AppProfile1 は、task1 という名前のタスクにより登録されます。 この task1 は、known-to-application タスク になり、 このアプリケーション内の作業単位に関連付けられたときに実行されます。 known-to-application タスクが存在することにより、 メソッド・レベルのアクセス・インテント構成は無視され、 Bean レベルのアクセス・インテント構成のみが適用されます。

EJBModule2 には、アプリケーション・プロファイル構成データが含まれていません。 すべてのエンティティー Bean が Bean レベルのアクセス・インテントによって明示的に構成されるとは限らず、 一部のメソッドは、メソッド・レベルのアクセス・インテント構成を持っています。 EJBModule2 内のエンティティー Bean が、task1 と関連付けられている作業単位にロードされる場合、Bean レベルのアクセス・インテント構成が適用され、メソッド・レベルのアクセス・インテント構成は無視されます。 Bean レベルのアクセス・インテントは、明示的に設定されず、 デフォルトの Bean レベルのアクセス・インテント wsPessimisticUpdate-WeakestLockAtLoad が適用されます。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=capp_overview
ファイル名:capp_overview.html