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を指定すると、指定した検索条件に該当するオブジェクトをネーミングサービスで管理できるようになります。