Beispiel: Eigenschaft für Provider-URL zur Auswahl eines vom Ausgangskontext abweichenden Stammkontextes definieren
Jeder Server enthält einen eigenen Stammkontext, und beim Booten eines Servers ist der Serverstamm der standardmäßig verwendete JNDI-Ausgangskontext. Meist ist diese Standardeinstellung der gewünschte Ausgangskontext, da Systemartefakte, wie z. B. EJB-Homes, dort gebunden werden. Es sind jedoch andere Stammkontexte vorhanden, die interessante Bindungen enthalten können. Es besteht die Möglichkeit, einen Provider-URL für die Auswahl anderer Stammkontexte anzugeben.
Es folgen Beispiele für die Auswahl anderer Stammkontexte:
Ausgangsstammkontext mit einem CORBA-Objekt-URL auswählen
Auf dem Bootstrap-Server sind verschiedene Objektschlüssel registriert, die Sie zur Auswahl des Stammkontextes als Ausgangskontext verwenden können. Wenn Sie einen bestimmten Stammkontext mit einem CORBA-Objekt-URL auswählen möchten, müssen Sie den Objektschlüssel auf den entsprechenden Wert einstellen. Der Standardobjektschlüssel ist NameService. Mit JNDI können Sie den Stammkontext des Servers abrufen. Es folgt eine Tabelle, in der die verschiedenen Stammkontexte und deren entsprechende Objektschlüssel aufgeführt sind:
Stammkontext | Objektschlüssel des CORBA-Objekt-URL |
---|---|
Serverstamm | NameServiceServerRoot |
Zellenpersistenter Stamm | NameServiceCellPersistentRoot |
Zellenstamm | NameServiceCellRoot |
Knotenstamm | NameServiceNodeRoot |
Im folgenden Beispiel wird gezeigt, wie ein corbaloc-URL mit dem Objektschlüssel verwendet wird, um den zellenpersistenten Stammkontext als Ausgangskontext auszuwählen.
...
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
...
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,
"corbaloc:iiop:myhost.mycompany.com:2809/NameServiceCellPersistentRoot");
Context initialContext = new InitialContext(env);
...
Ausgangsstammkontext mit der Eigenschaft für den Namespace-Stamm auswählen
Sie können den Ausgangsstammkontext auch auswählen, indem Sie eine Einstellung der Eigenschaft für den Namespace-Stamm an den Konstruktor InitialContext übergeben. Im Allgemeinen ist die zuvor beschriebene Einstellung des Objektschlüssels ausreichend. In manchen Fällen empfiehlt sich eine Eigenschaftseinstellung. Sie können z. B. den Stammkontext für den Java-Aufruf so konfigurieren, dass die Anwendung erkennen kann, welcher Serverstamm als Ausgangskontext verwendet wird. Die Standardeinstellung der Eigenschaft für den Serverstamm ist defaultroot und stellt den Serverstammkontext bereit.
Stammkontext | Wert der Eigenschaft für den Namespace-Stamm |
---|---|
Serverstamm | bootstrapserverroot |
Zellenpersistenter Stamm | cellpersistentroot |
Zellenstamm | cellroot |
Knotenstamm | bootstrapnoderoot |
Die Ausgangskontextfactory ignoriert die Eigenschaft für den Namespace-Stamm, wenn die Eigenschaft "Provider_URL" einen anderen Objektschlüssel als NameService enthält.
Im folgenden Beispiel wird gezeigt, wie die Eigenschaft für den Namespace-Stamm verwendet wird, um den zellenpersistenten Stammkontext als Ausgangskontext auszuwählen. Beachten Sie, dass verfügbare Konstanten anstelle des Eigenschaftsnamens und -werts verwendet werden.
... import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import com.ibm.websphere.naming.PROPS; ... Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"); env.put(Context.PROVIDER_URL, "corbaloc:iiop:myhost.mycompany.com:2809"); env.put(PROPS.NAME_SPACE_ROOT, PROPS.NAME_SPACE_ROOT_CELL_PERSISTENT); Context initialContext = new InitialContext(env); ...