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 コンテキストから要求されたときにアプリケーションに提示されるパラメータ値。この値は、 |
リソース定義
たとえば、次のようにリソース定義を作成できます。
<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 クラス名。 |
リソースリンク
グローバルコンテキストから Web アプリケーションごとのコンテキストにリソースをリンクするには、<ResourceLink>
要素を使用します。 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 オブジェクトファクトリのクラス名。 |