WebLogic Server アプリケーションの開発
エンタープライズ アプリケーションのデプロイメント記述子の要素
以下の節では、エンタープライズ デプロイメント記述子 application.xml
(J2EE 標準デプロイメント記述子) および weblogic-application.xml (WebLogic 固有のアプリケーション デプロイメント記述子) について説明します。
weblogic-application.xml ファイルは、WebLogic Server の拡張機能を使用していない場合は省略可能です。
application.xml デプロイメント記述子の要素
以下の節では、application.xml
ファイルについて説明します。application.xml
ファイルは、エンタープライズ アプリケーションのデプロイメント記述子です。ファイルは、アプリケーション アーカイブの META-INF
サブディレクトリにあります。以下の DOCTYPE 宣言を最初に指定する必要があります。
<!DOCTYPE application PUBLIC "-//Sun Microsystems,
Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
application
application
要素は、アプリケーションのデプロイメント記述子のルート要素です。application
要素内の各要素については、以降の節で説明します。
次の表では、application
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<icon>
|
省略可能
|
GUI ツールでアプリケーションを表す小さい画像または大きい画像の位置を指定する。この要素は現在、WebLogic Server では使用されていない。
icon 要素内で定義できる要素の詳細については、「icon」を参照。
|
<display-name>
|
必須
|
モジュールの表示名 (GUI ツールで表示することを想定した短い名前)。
|
<description>
|
省略可能
|
アプリケーションに関する説明文を提供する。
|
<module>
|
必須
|
application.xml デプロイメント記述子には、エンタープライズ アプリケーション内の各モジュールに対する module 要素がある。各 module 要素は connector 、ejb 、java 、または web 要素で構成され、それらによってモジュールのタイプやアプリケーション内でのモジュールの場所が示される。省略可能な alt-dd 要素は、後でアセンブリするデプロイメント記述子へのオプション URI を指定する。
module 要素内で定義できる要素の詳細については、「module」を参照。
|
<security-role>
|
必須
|
アプリケーションに対してグローバルに適用されるセキュリティ ロールの定義を含む。各 security-role 要素には、description 要素 (省略可能) および role-name 要素がある。
security-role 要素内で定義できる要素の詳細については、「security-role」を参照。
|
icon
次の表では、icon
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<small-icon>
|
省略可能
|
GUI ツールでアプリケーションを表す小さい (16x16 ピクセル) .gif 画像または .jpg 画像の場所を指定する。この要素は現在、WebLogic Server では使用されていない。
|
<large-icon>
|
省略可能
|
GUI ツールでアプリケーションを表す大きい (32x32 ピクセル) .gif 画像または .jpg 画像の場所を指定する。この要素は現在、WebLogic Server では使用されていない。
|
module
次の表では、module
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<alt-dd>
|
省略可能
|
特定の J2EE モジュールに対して、後でアセンブリするデプロイメント記述子ファイルへのオプション URI を指定する。この URI は、アプリケーションのルート ディレクトリに対する、デプロイメント記述子ファイルの絶対パス名を指定する。alt-dd を指定しない場合、各モジュールの仕様に必須であるデフォルトの場所およびファイル名からデプロイメント記述子が読み込まれる。代替デプロイメント記述子は、J2EE デプロイメント記述子 web.xml および ejb-jar.xml についてのみ指定できる。weblogic.xml や weblogic-ejb-jar.xml については代替記述子ファイルを指定できない。
|
<connector>
|
必須
|
リソース アダプタ (コネクタ) アーカイブ ファイルの URI (アプリケーション パッケージの最上位に対する相対位置) を指定する。
|
<ejb>
|
必須
|
アプリケーション ファイルの EJB モジュールを定義する。アプリケーションの EJB JAR ファイルへのパスも含まれる。
例 :
<ejb>petStore_EJB.jar</ejb>
|
<java>
|
必須
|
アプリケーション ファイルのクライアント アプリケーション モジュールを定義する。
例 :
<java>client_app.jar</java>
|
<web>
|
必須
|
application.xml ファイル内の Web アプリケーション モジュールを定義する。web 要素には、web-uri 要素、および context-root 要素がある。context-root の値を宣言しない場合、web-uri 要素のベース名が Web アプリケーションのコンテキスト パスとして使用される (コンテキスト パスは、Web サーバ内でユニークな値にする。これは、複数の Web アプリケーションで同一の Web サーバを使用する場合があり、それらの複数アプリケーション間でコンテキスト パスが競合しないようにする必要があるため)。
web-uri
application.xml ファイル内の Web モジュールの場所を定義する。これは WAR ファイルの名前になる。
context-root
Web アプリケーションのコンテキスト ルートを指定する。
例 :
<web> <web-uri>petStore.war</web-uri> <context-root>estore</context-root> </web>
|
security-role
次の表では、security-role
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<description>
|
省略可能
|
セキュリティ ロールの説明文。
|
<role-name>
|
省略可能
|
アプリケーション内の認可に使用するセキュリティ ロールまたはプリンシパルの名前を定義する。各ロールは、weblogic-application.xml デプロイメント記述子の WebLogic Server ユーザまたはグループにマップされる。
例 :
<security-role> <description>the gold customer role</description> <role-name>gold_customer</role-name> </security-role> <security-role> <description>the customer role</description> <role-name>customer</role-name> </security-role>
|
weblogic-application.xml デプロイメント記述子の要素
以下の節では、weblogic-application.xml
ファイルについて説明します。weblogic-application.xml ファイルは、Sun Microsystems から提供された application.xml デプロイメント記述子を拡張した BEA WebLogic Server 固有のデプロイメント記述子です。このファイルによって、アプリケーション スコープの JDBC プールや EJB キャッシュなどの機能のコンフィグレーションを行います。
ファイルは、アプリケーション アーカイブの META-INF
サブディレクトリにあります。以下の DOCTYPE 宣言を最初に指定しなければなりません。
<!DOCTYPE weblogic-application PUBLIC "-//BEA Systems, Inc.//DTD WebLogic Application 8.1.0//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-application_2_0.dtd">
以降の節では、ファイル内に表示される各要素について説明します。
weblogic-application
weblogic-application
要素は、アプリケーションのデプロイメント記述子のルート要素です。
次の表では、weblogic-application
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<ejb>
|
省略可能
|
WebLogic アプリケーションの構成要素となる EJB モジュールに固有の情報が含まれる。現在、ejb 要素では、アプリケーションのエンティティ Bean によって使用される任意の数のアプリケーション レベル キャッシュを指定できる。
ejb 要素内で定義できる要素の詳細については、「ejb」を参照。
|
<xml>
|
省略可能
|
対象アプリケーションに固有な XML 処理のパーサおよびエンティティ マッピングに関する情報を指定する。
xml 要素内で定義できる要素の詳細については、「xml」を参照。
|
<jdbc-connection-pool>
|
|
非推奨
ゼロまたは 1 つ以上、指定する。アプリケーション スコープの JDBC 接続プールを指定する。
jdbc-connection-pool 要素内で定義できる要素の詳細については、「jdbc-connection-pool」を参照。
|
<security>
|
省略可能
|
アプリケーションのセキュリティ情報を指定する。
security 要素内で定義できる要素の詳細については、「security」を参照。
|
<application-param>
|
|
ゼロまたは 1 つ以上、指定する。アプリケーションに関連のあるコンテナ インスタンスの動作に影響を与える、入力されないパラメータの指定に使用する。ここに示すパラメータが、現在サポートされている。また、weblogic-application.xml 内のこれらのパラメータでは、リクエストおよび応答に使用するデフォルトのエンコーディングを決定できる。
このアプリケーションに含まれる Web アプリケーションの動作に影響を与える、次のパラメータが使用される。
例 :
<application-param>
<param-name>
webapp.encoding.default
</param-name>
<param-value>UTF8</param-value>
</application-param>
application-param 要素内で定義できる要素の詳細については、「application-param」を参照。
|
<classloader-structure>
|
省略可能
|
classloader-structure 要素を使うと、このアプリケーションのクラスローダの構成を定義できる。宣言は、クラスローダの階層を表し、特定のモジュールを特定のノードに関連付ける、ツリー構造で表現される。モジュールのクラスは、この要素と関連付けられたクラスローダによってロードされる。
例 :
<classloader-structure>
<module-ref>
<module-uri>ejb1.jar</module-uri>
</module-ref>
</classloader-structure>
<classloader-structure>
<module-ref>
<module-uri>ejb2.jar</module-uri>
</module-ref>
</classloader-structure>
classloader-structure 要素内で定義できる要素の詳細については、「classloader-structure」を参照。
|
<listener>
|
|
ゼロまたは 1 つ以上、指定する。ユーザ定義のアプリケーション ライフサイクル リスナの登録に使用する。これらは、抽象基本クラス weblogic.application.ApplicationLifecycleListener を拡張するクラスである。
listener 要素内で定義できる要素の詳細については、「listener」を参照。
|
<startup>
|
|
ゼロまたは 1 つ以上、指定する。ユーザ定義の起動クラスの登録に使用する。
startup 要素内で定義できる要素の詳細については、「startup」を参照。
|
<shutdown>
|
|
ゼロまたは 1 つ以上、指定する。ユーザ定義の停止クラスの登録に使用する。
shutdown 要素内で定義できる要素の詳細については、「shutdown」を参照。
|
ejb
次の表では、ejb
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<entity-cache>
|
|
ゼロまたは 1 つ以上、指定する。entity-cache 要素は、実行時にエンティティ EJB インスタンスをキャッシュに入れるときに使用される名前付きアプリケーションレベル キャッシュの定義に使用される。個々のエンティティ Bean は、使用するアプリケーションレベル キャッシュのキャッシュ名を参照する。個々のキャッシュを参照するエンティティ Bean の数に制限はない。
アプリケーションレベル キャッシュは、エンティティ Bean が weblogic-ejb-jar.xml 記述子で独自のキャッシュを指定しない場合に、デフォルトとして使用される。その場合、ExclusiveCache および MultiVersionCache という 2 つのデフォルト キャッシュが使用される。アプリケーションの設定で、これらのデフォルト キャッシュを明示的に定義して、非デフォルト値を指定する場合もある。キャッシング方式では、デフォルト キャッシュは変更できない。デフォルトで、キャッシュは最大サイズとして値 1000 を指定して max-beans-in-cache を使用する。
例 :
<entity-cache>
<entity-cache-name>ExclusiveCache</entity-cache-name>
<max-cache-size>
<megabytes>50</megabytes>
</max-cache-size>
</entity-cache>
entity-cache 要素内で定義できる要素の詳細については、「entity-cache」を参照。
|
<start-mbds-with- application>
|
省略可能
|
アプリケーションを使用してメッセージ駆動型 Bean (MDBS) を起動できるように EJB コンテナをコンフィグレーションできる。true に設定されると、コンテナはアプリケーションの一部として MDBS を起動する。false に設定されると、コンテナは MDBS をキューに保持し、ポートでのリスンが開始されたときにサーバによって MDBS が起動される。
|
entity-cache
次の表では、entity-cache
要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<entity-cache-name>
|
|
エンティティ Bean キャッシュのユニークな名前を指定する。この名前は、ear ファイル内でユニークなものとし、空の文字列は使用できない。
例 :
<entity-cache-name>ExclusiveCache</entity-cache-name>
|
<max-beans-in-cache>
|
省略可能
|
キャッシュ内で許容されるエンティティ Bean の最大数を指定する。限度に達すると、Bean に対してパッシベーションが行われる場合がある。このメカニズムでは、個々のエンティティ Bean が必要とする実際のメモリ サイズは考慮されない。この要素は、1 以上の値に設定できる。
デフォルト値 : 1000
|
<max-cache-size>
|
省略可能
|
エンティティ キャッシュのメモリ サイズの限度をバイト単位または MB 単位で指定するときに使用される。max-cache-size 要素を使用して最大サイズが指定されたキャッシュを Bean が使用する場合、Bean プロバイダで weblogic-ejb-jar.xml 記述子の Bean の平均サイズを見積もる必要がある。デフォルトでは、Bean の平均サイズは 100 バイトと想定されている。
bytes | megabytes - バイト単位または MB 単位で示されるエンティティ キャッシュのメモリ サイズ。max-cache-size 要素で使用される。
|
<caching-strategy>
|
省略可能
|
EJB コンテナが特定のアプリケーション レベル キャッシュでエンティティ Bean インスタンスを管理するときに使用する一般的な方式を指定する。キャッシュによって、メモリ内のエンティティ Bean インスタンスがバッファに移され、対応する主キー値に関連付けられる。
caching-strategy 要素の値は、以下のいずれかに限られる。
デフォルト値 : MultiVersion
例 :
<caching-strategy>Exclusive</caching-strategy>
|
xml
次の表では、xml 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<parser-factory>
|
省略可能
|
エンタープライズ アプリケーション用の特定の XML パーサまたはトランスフォーマの指定に使用される親要素。
parser-factory 要素内で定義できる要素の詳細については、「parser-factory」を参照。
|
<entity-mapping>
|
省略可能
|
ゼロまたは 1 つ以上、指定する。エンティティ マッピングを指定する。マッピングにより、特定のパブリック ID またはシステム ID の代替エンティティ URI が指定される。このエンティティ URI を検索するデフォルトの場所は、lib/xml/registry ディレクトリである。
entity-mapping 要素内で定義できる要素の詳細については、「entity-mapping」を参照。
|
parser-factory
次の表では、parser-factory 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<saxparser-factory>
|
省略可能
|
対象アプリケーションだけで必要とされる XML 解析用の SAXParser ファクトリを設定できる。この要素によって、SAX スタイル解析に使用されるファクトリが指定される。saxparser-factory 要素の設定をしないと、サーバ XML レジストリでコンフィグレーションされた SAXParser ファクトリ スタイルが使用される。
デフォルト値 : サーバ XML レジストリの設定
|
<document-builder-factory>
|
省略可能
|
対象アプリケーションだけで必要とされる XML 解析用のドキュメント ビルダ ファクトリを設定できる。この要素によって、DOM スタイル解析に使用されるファクトリが決定される。document-builder-factory 要素を設定しないと、サーバ XML レジストリでコンフィグレーションされた DOM スタイルが使用される。
デフォルト値 : サーバ XML レジストリの設定
|
<transformer-factory>
|
省略可能
|
対象アプリケーションだけで必要とされるスタイル シート処理用のトランスフォーマ エンジンを設定できる。この要素の値を指定しないと、サーバ XML レジストリでコンフィグレーションされた値が使用される。
デフォルト値 : サーバ XML レジストリの設定
|
entity-mapping
次の表では、entity-mapping 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<entity-mapping-name>
|
|
このエンティティ マッピングの名前を指定する。
|
<public-id>
|
省略可能
|
マップされたエンティティのパブリック ID を指定する。
|
<system-id>
|
省略可能
|
マップされたエンティティのシステム ID を指定する。
|
<entity-uri>
|
省略可能
|
マップされたエンティティのエンティティ URI を指定する。
|
<when-to-cache>
|
省略可能
|
有効値は、次のとおり。
cache-on-reference
cache-at-initialization
cache-never
デフォルト値は cache-on-reference。
|
<cache-timeout-interval>
|
省略可能
|
秒単位で整数値を指定する。
|
jdbc-connection-pool
次の表では、jdbc-connection-pool 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<data-source-name>
|
|
アプリケーション固有の JNDI ツリーにおける JNDI 名を指定する。
|
<connection-factory>
|
|
デフォルトの接続ファクトリ設定のオーバーライドを定義する接続パラメータを指定する。
connection-factory 要素内で定義できる要素の詳細については、「connection-factory」を参照。
|
<pool-params>
|
省略可能
|
プールの動作に影響を与えるパラメータを定義する。
pool-params 要素内で定義できる要素の詳細については、「pool-params」を参照。
|
<driver-params>
|
省略可能
|
WebLogic Server ドライバの動作を設定する。
driver-params 要素内で定義できる要素の詳細については、「driver-params」を参照。
|
connection-factory
次の表では、connection-factory 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<factory-name>
|
省略可能
|
config.xml ファイル内の JDBCDataSourceFactoryMBean の名前を指定する。
|
<connection-properties>
|
省略可能
|
接続ファクトリの接続プロパティを指定する。connection-properties 要素について定義できる要素は、次のとおり。
<connection-params>
<parameter>
<param-name>foo</param-name>
<param-value>xyz</param-value>
</parameter>
|
pool-params
次の表では、pool-params 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<size-params>
|
省略可能
|
プール内の接続数に影響を与えるパラメータを定義する。
|
<xa-params>
|
省略可能
|
XA DataSource のパラメータを定義する。
注意 : prepared-statement-cache-size は非推奨。driver-params/prepared-statement の cache-size を使用のこと。詳細については、「driver-params」を参照。
|
<xa-params> 続き
|
省略可能
|
使用場所 : xa-params
例 :
<xa-set-transaction-timeout>
true
</xa-set-transaction-timeout>
xa-set-transaction-timeout の値を true に設定すると、トランザクション マネージャは XAResource.start を呼び出す前にリソースに対して setTransactionTimeout を呼び出す。トランザクション マネージャは、グローバル トランザクション タイムアウト値を渡す。この属性が 0 より大きい値に設定されていると、この値がグローバル トランザクション タイムアウトに代わって使用される。
デフォルト値 : 0
使用場所 : xa-params
例 :
<xa-transaction-timeout>
30
</xa-transaction-timeout>
|
<login-delay-seconds>
|
省略可能
|
各物理データベース接続を作成するまでにかかる遅延時間 (秒数) を設定する。データベース サーバによっては、複数の接続リクエストが短い間隔で繰り返されると処理できないものもある。このプロパティを使用すると、データベース サーバの処理が追いつくように、少しの間隔を空けることができる。この遅延は、データベースの物理的な接続が確立すると、プールの初期作成時とプールの有効期間中の両方で必ず行われる。
|
<leak-profiling-enabled>
|
省略可能
|
JDBC 接続リーク プロファイリングを有効化する。接続リークは、プールからの接続が close() メソッドの呼び出しで明示的にクローズされていない場合に発生する。接続リーク プロファイリングがアクティブの場合、プールは接続オブジェクトがプールから割り当てられ、クライアントに与えられたときにスタック トレースを格納する。接続リークが検出されたとき (接続オブジェクトのガベージ コレクションが行われたとき) に、このスタック トレースが報告される。
この要素はリソースを余計に使用し、接続プール処理を遅くする可能性があるので、プロダクション環境での使用は避けるほうがよい。
|
<connection-check-params>
|
省略可能
|
|
<connection-check-params>
続き
|
省略可能
|
|
<jdbcxa-debug-level>
|
省略可能
|
内部設定。
|
<remove-infected-connections-enabled>
|
省略可能
|
アプリケーションが基底のベンダ接続オブジェクトを要求した場合に、接続がプールから削除されるかどうかを制御する。この属性を有効化すると、(接続がプールから削除され、新しい接続に置き換わるために) 基本的に接続のプールを無効化することになるので、パフォーマンスに影響が出る。
|
driver-params
次の表では、driver-params 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<statement>
|
省略可能
|
driver-params 文を定義する。次の省略可能な要素が含まれる。profiling-enabled
例 :
<statement>
<profiling-enabled>true</profiling-enabled>
</statement>
|
<prepared-statement>
|
省略可能
|
JDBC の Prepared Statement キャッシュ プロファイリングの実行を有効化する。有効化されると、Prepared Statement のキャッシュ プロファイルが後で分析できるように外部ストレージに格納される。この機能はリソースを消費するので、プロダクション サーバでは無効にしておくのが望ましい。デフォルト値は false。
|
<row-prefetch-enabled>
|
省略可能
|
|
<row-prefetch-size>
|
省略可能
|
|
<stream-chunk-size>
|
省略可能
|
|
security
次の表では、security 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<realm-name>
|
省略可能
|
アプリケーションが使用するセキュリティ レルムの名前を指定する。指定されていなければ、システムのデフォルト レルムが使用される。
|
<security-role-assignment>
|
|
アプリケーション ワイドなセキュリティ ロールと、1 つまたは複数の WebLogic Server プリンシパルとのマッピングを宣言する。
例 :
<security-role-assignment>
<role-name>
PayrollAdmin
</role-name>
<principal-name>
Tanya
</principal-name>
<principal-name>
Fred
</principal-name>
<principal-name>
system
</principal-name>
</security-role-assignment>
|
application-param
次の表では、application-param 要素内で定義できる要素について説明します。
要素
|
必須/ 省略可能
|
説明
|
<description>
|
省略可能
|
アプリケーション パラメータを説明する。
|
<param-name>
|
|
アプリケーション パラメータの名前を定義する。
|
<param-value>
|
|
アプリケーション パラメータの値を定義する。
|
classloader-structure
次の表では、classloader-structure 要素内で定義できる要素について説明します。
要素
|
必須/ 省略可能
|
説明
|
<module-ref>
|
|
ゼロまたは 1 つ以上、指定する。以下に、module-ref 要素内で定義できる要素について説明する。
module-uri - ゼロまたは 1 つ以上、指定する。module-ref 要素内で定義される。
|
listener
次の表では、listener 要素内で定義できる要素について説明します。
要素
|
必須/ 省略可能
|
説明
|
<listener-class>
|
|
ApplicationLifecycleListener のユーザによる実装の名前。
|
<listener-uri>
|
省略可能
|
実装が格納されている EAR 内の JAR ファイル。listener-uri を指定していない場合は、アプリケーションからクラスが見えるものと仮定する。
|
startup
次の表では、startup 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<startup-class>
|
|
アプリケーションのデプロイ中に実行するクラスの名前を定義する。
|
<startup-uri>
|
省略可能
|
startup-class が格納されている EAR 内の JAR ファイルを定義する。startup-uri を指定していない場合は、アプリケーションからクラスが見えるものと仮定する。
|
shutdown
次の表では、shutdown 要素内で定義できる要素について説明します。
要素
|
必須 省略可能
|
説明
|
<shutdown-class>
|
|
アプリケーションのアンデプロイ時に実行するクラスの名前を定義する。
|
<shutdown-uri>
|
省略可能
|
shutdown-class が格納されている EAR 内の JAR ファイルを定義する。shutdown-uri を指定していない場合は、アプリケーションからクラスが見えるものと仮定する。
|