IJServerクラスタに定義されたリソースまたは配備されたEnterprise JavaBean以外に、ネーミングサービスで管理するリソースを独自に定義することもできます。
IJServerクラスタでローカルに管理できるリソースをカスタムリソースと呼びます。JNDI検索を指定して、IJServerクラスタプロセス外で管理されているリソースを外部リソースと呼びます。これらのリソースはInterstage管理コンソール、またはasadminコマンドで定義できます。それぞれのリソースを使用する場合の定義方法を説明します。
IJServerクラスタに定義されたリソースまたは配備されたEnterprise JavaBean以外に、ネーミングサービスで管理するオブジェクトを独自に定義することもできます。これをカスタムリソースと呼びます。IJServerクラスタは指定されたファクトリクラスに対してgetObjectInstanceメソッドを実行してインスタンスを生成します。
カスタムリソースを定義する場合には以下を指定する必要があります。
JNDI名
リソースタイプ
ファクトリクラス
説明
状態
例
カスタムリソースのクラスとファクトリクラスの例を以下に記載します。
カスタムリソースのクラスの例
package com.mycompany; public class Widget implements java.io.Serializable { private String name; public Widget() { } public Widget(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
ファクトリクラスの例
package com.mycompany; import java.util.Hashtable; import javax.naming.Context; import javax.naming.Name; public class WidgetFactory implements javax.naming.spi.ObjectFactory { public WidgetFactory() { } public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { Widget widget = new Widget("PrimePower"); return widget; } }
上記例の場合、カスタムリソースの各プロパティに以下を指定します。
プロパティ | 値 |
---|---|
JNDI名 | 任意の名前 |
リソースタイプ | com.mycompany.Widget |
ファクトリクラス | com.mycompany.WidgetFactory |
カスタムリソースと同様にIJServerクラスタに定義されたリソースまたは配備されたEnterprise JavaBean以外に、ネーミングサービスで管理するオブジェクトを独自に定義するリソースに外部リソースがあります。
外部リソースを定義する場合には以下を指定する必要があります。カスタムリソースとの違いはファクトリクラスが実装するインタフェースとJNDI検索が指定できる点です。
JNDI名
リソースタイプ
ファクトリクラス
JNDI検索
説明
状態
カスタムリソースと異なり、外部リソースは外部リポジトリで管理されたオブジェクトをネーミングサービスに登録して管理できます。例えばJNDI検索に外部リポジトリの検索に使用する「ldap://ldap.umich.edu/o=umich,c=us」などのLDAP URLを指定すると、指定した検索条件に該当するオブジェクトをネーミングサービスで管理できるようになります。