<jbo:ApplicationModule>

HTTPリクエストを処理するアプリケーション・モジュール・インスタンスを作成します。

JSP構文

<jbo:ApplicationModule
   id="appModuleInstanceName"
   [ configname="businessComponentsPackageName.appModuleName.configName" ] | [ definition="data model definition" ]
   [ lock="true | false" ]
   [ waittimeout="time in ms. | 60000" ]
   [ releasemode="Stateful | Stateless | Reserved" ]
   [ username="jdbc_connection_username" ] | [ iiop_username="iiop_connection_username" ]
   [ password="jdbc_connection_password" ] | [ iiop_password="iiop_connection_password" ]
/>

注意: コンポーネント・パレットを使用してJSPページに<jbo:ApplicationModule>タグを挿入する場合、すべての属性が表示されるとはかぎりません。このタグに対する「属性値」ダイアログでは、変更すべき属性のみが表示されます。その他の属性の値は、後述の「属性」セクションで説明するようにアプリケーションから取得されます。

説明

<jbo:ApplicationModule>タグは、ビジネス・コンポーネントのアプリケーション・モジュール・インスタンスへのランタイム接続を提供します。<jbo:ApplicationModule>タグでは、接続情報を指定するかわりに、開発者がビジネス・コンポーネント・プロジェクトに対して作成した構成のリストから、名前付きの構成を選択します。

JSPページは、アプリケーション・モジュールのインスタンスを介してビジネス・コンポーネントにアクセスします。アプリケーション・モジュール・インスタンスについて、JSPセッション中にどのように割り当てられるか、状態が保存されるかどうか、データベースからのフェイルオーバー・サポートがあるかどうかを決定できます。Business Components for Java(BC4J)フレームワークでのデフォルトのアプリケーション・モジュール・プールの実装では、ステートフル、ステートレスおよびリザーブの3つのモードをサポートします。

未指定の場合、Statelessが通常のJSPページのデフォルト・モードです。JSPアプリケーションでは、データ・バインドされたJSPページがアプリケーション・モジュール・インスタンスを解放する方法を、2つのレベルにより制御できます。

注意: 個々のJSPページのレベルでのJSPアプリケーション・モジュール解放モードは、<jbo:ApplicationModule>タグに対して指定したモードでオーバーライドされます。

ページの処理中に、ページに対するHTTPリクエストは、各アプリケーション・モジュールの限定されたインスタンス・プールを共有します。ステートレスJSPアプリケーションでは、アプリケーション・モジュールの特定のインスタンスへのアクセスは、ページ・リクエストの継続中のみ維持されます。Statelessオプションが指定された<jbo:ApplicationModule>タグが処理された後には、アプリケーション・モジュール・インスタンスは解放され、そのアプリケーション・モジュールのインスタンス・プールに戻される必要があります。

個々のJSPページまたはJSPアプリケーション全体にデフォルトのStatelessオプションを選択した場合には、特定のHTTPセッション中に新規ページが起動するたびに同じアプリケーション・モジュール・インスタンスにアクセスするとはかぎりません。このため、ある起動から次の起動までの間、ビュー・オブジェクトの行セットが同じであることを当てにすることはできません。この動作は、JSPページがそれぞれ独立して動作しており、状態を維持する必要のある単一のタスクを表していない場合に望ましい動作です。JSPページの大多数がアプリケーション・モジュール・インスタンスをステートレスに解放できるようにすると、アプリケーション・モジュールの状態管理にともなうオーバーヘッドが削減され、JSPアプリケーションが可能なかぎり高レベルのパフォーマンスで稼働することが保証されます。

<jbo:ApplicationModule>タグに対してStatefulオプションを指定した場合も、JSPアプリケーションのデータ・タグは、そのアプリケーションが起動するたびに同じアプリケーション・モジュール・インスタンスにアクセスするとはかぎりません。ただし、ステートレスJSPページとは異なり、BC4Jは、アプリケーション・モジュールの解放時にアプリケーション・モジュールの状態をデータベースに保存するため、ビュー・オブジェクトの行セットはある起動から次の起動まで同じに保たれます。ステートフル・モードは、次の場合に適しています。

ステートフル・モードでは、BC4Jはデータベースのフェイルオーバーをサポートし、アプリケーション・モジュール・プールが効率的に使用されるようにします。アプリケーション・モジュール・プール・マネージャは、現在の行の位置や、あるJSPページから次のJSPページに渡される必要のあるすべての動的アプリケーション情報などのアプリケーション状態を管理します。ステートフル・モードは、ユーザーがデータの変更を行うようなページを使用するかどうかにかかわらず役立ちます。BC4Jを利用して前のHTTPリクエストへの問合せの復元を管理するほうが、BC4J APIを使用してこれらのタスクをプログラムで実行するよりも簡単で効率的です。

重要: ユーザーがデータをステートフル・モードまたはリザーブ・モードで変更することを許可する場合は、Commitデータ・タグを使用してデータベースに変更を確定させる必要があります。

<jbo:ApplicationModule>タグに対してReservedオプションを指定した場合は、データ・タグがアプリケーション・モジュールに一度接続されると、その後同じHTTPセッション中に任意のデータ・タグからそのアプリケーション・モジュールに接続した場合も、アプリケーション・モジュールの同じインスタンスが使用されます。これは、後続の接続が別のJSPページからの場合も、同じJSPページの新規の起動の場合も同じです。このモードは、ステートフル・アプリケーションと似ていますが、フェイルオーバーはサポートせず、アプリケーション・モジュールの再利用もできません。リザーブ・モードは、標準でないようなJDBC接続が定義されている場合に、主としてアプリケーション・モジュールとの互換性を保つために提供されています。

参照項目: <jdev_install>\BC4J\src\bc4jhtmlsrc.zipファイル内のoracle.jbo.common.ampool.SessionCookie.java

属性

次の例では、BC4Jデータ・タグでスクリプト可能な変数を使用し、oracle.jbo.*パッケージ内の実装クラスにアクセスします。ここでは、スクリプトレットでmypackage変数を使用してoracle.jbo.common.ampool.SessionCookie APIからアプリケーション・モジュール・オブジェクトへの参照を取得し、getName()メソッドをコールしています。


<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<%@ page import="oracle.jbo.*" %>

<jbo:ApplicationModule id="mypackage" definition="MyProject.MypackageModule"
  releasemode="Stateless" />
  <% ApplicationModule appMod = mypackage.useApplicationModule(); %>
   Application Module name = <%=appMod.getName()%>
<jbo:ReleasePageResources />

JSPページおよびBC4Jアプリケーション・モジュール・プールについて

bc4j.xcfgファイルでのBC4J JSPランタイム・プロパティの定義
単純なBC4J JSPページへのJSPデータ・バインドの追加
データ・タグを使用したアプリケーション・モジュールの状態管理