GlobalNamingResources コンポーネント
目次
はじめに
**GlobalNamingResources** 要素は、Server のグローバル JNDI リソースを定義します。
これらのリソースは、サーバのグローバル JNDI リソースコンテキストにリストされます。このコンテキストは、JNDI リソース How-Toで説明されている、Web アプリケーションごとの JNDI コンテキストとは異なります。この要素で定義されたリソースは、<ResourceLink>要素で明示的にリンクしない限り、Web アプリケーションごとのコンテキストでは**表示されません**。
属性
ネストされたコンポーネント
特別な機能
環境エントリ
この要素内に<Environment>
エントリをネストすることで、すべてのWebアプリケーションに表示される名前付き値を環境エントリリソースとして構成できます。例えば、次のような環境エントリを作成できます。
<GlobalNamingResources ...>
...
<Environment name="maxExemptions" value="10"
type="java.lang.Integer" override="false"/>
...
</GlobalNamingResources>
これは、Webアプリケーションのデプロイメント記述子(/WEB-INF/web.xml
)に次の要素を含めることと同等です。
<env-entry>
<env-entry-name>maxExemptions</env-entry-name>
<env-entry-value>10</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
しかし、この値をカスタマイズするためにデプロイメント記述子を修正する必要はありません。
<Environment>
要素の有効な属性は次のとおりです。
属性 | 説明 |
---|---|
description |
省略可能。この環境エントリの分かりやすい説明。 |
name |
|
override |
Webアプリケーションのデプロイメント記述子にある同じ環境エントリ名に対する |
type |
この環境エントリに対してWebアプリケーションが期待する、完全修飾Javaクラス名。Webアプリケーションのデプロイメント記述子における |
value |
JNDIコンテキストから要求されたときにアプリケーションに提示されるパラメータ値。この値は、 |
リソース定義
Webアプリケーションのデプロイメント記述子内の<resource-ref>
および<resource-env-ref>
要素のJNDIルックアップに対して返されるリソースの特性を宣言するには、この要素でそれらを定義し、<Context>
要素内の<ResourceLink>要素でそれらをリンクします。また、使用するオブジェクトファクトリ(Tomcatですでに知られている場合を除く)と、そのオブジェクトファクトリを構成するために使用されるプロパティを構成するために、Resource要素の属性を使用して、その他必要なパラメータも定義する**必要があります**。
例えば、次のようなリソース定義を作成できます。
<GlobalNamingResources ...>
...
<Resource name="jdbc/EmployeeDB" auth="Container"
type="javax.sql.DataSource"
description="Employees Database for HR Applications"/>
...
</GlobalNamingResources>
これは、Webアプリケーションのデプロイメント記述子(/WEB-INF/web.xml
)に次の要素を含めることと同等です。
<resource-ref>
<description>Employees Database for HR Applications</description>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
しかし、この値をカスタマイズするためにデプロイメント記述子を修正する必要はありません。
<Resource>
要素の有効な属性は次のとおりです。
属性 | 説明 |
---|---|
auth |
Webアプリケーションコードが対応するリソースマネージャにプログラムでサインオンするか、コンテナがアプリケーションに代わってリソースマネージャにサインオンするかを指定します。この属性の値は |
closeMethod |
シングルトンリソースが不要になったときに呼び出すゼロ引数のメソッドの名前。これは、ガベージコレクションの一部として行われるリソースのクリーンアップを高速化することを目的としています。この属性は、 Apache Commons DBCP 2とApache Tomcat JDBC接続プールの場合、 |
description |
省略可能。このリソースの分かりやすい説明。 |
name |
|
scope |
このリソースマネージャを介して取得された接続を共有できるかどうかを指定します。この属性の値は |
singleton |
このリソース定義がシングルトンリソース(つまり、リソースのインスタンスが1つしかないリソース)かどうかを指定します。この属性が |
type |
Webアプリケーションがこのリソースをルックアップするときに期待する、完全修飾Javaクラス名。 |
リソースリンク
<ResourceLink>
要素を使用して、グローバルコンテキストからWebアプリケーションごとのコンテキストにリソースをリンクします。JNDIリソースHow-Toの例に基づいて、アプリケーションで使用可能なカスタムファクトリを作成する例を以下に示します。
<Context>
<ResourceLink
name="bean/MyBeanFactory"
global="bean/MyBeanFactory"
type="com.mycompany.MyBean"
/>
</Context>
トランザクション
java:comp/UserTransaction
のJNDIルックアップに対して返されるUserTransactionの特性を宣言できます。このオブジェクトをインスタンス化するためのオブジェクトファクトリクラスと、必要なリソースパラメータをTransaction
要素の属性として、およびそのオブジェクトファクトリを構成するために使用されるプロパティも**必ず**定義する必要があります。
<Transaction>
要素の有効な属性は次のとおりです。
属性 | 説明 |
---|---|
factory |
JNDIオブジェクトファクトリのクラス名。 |