この章では、Java Naming and Directory Interface (JNDI)に対するOracle JVMのサポートについて説明します。この章の内容は、次のとおりです。
JNDIに対するOracle JVMのネイティブ・サポートによって、特定のデータベース接続情報を含むOracleデータ・ソース・オブジェクトをディレクトリ構造内の名前によってバインドできます。この名前を使用して、アプリケーションで接続を確立するための特定の接続情報を取得できます。また、アプリケーションを変更せずに、特定の名前が解決される関連オブジェクトのみを変更することにより、データベース接続プロパティおよび実際のソース・データベースを変更することもできます。さらに、この機能は、オブジェクトおよびオブジェクト参照を格納するための汎用的なディレクトリ・サービスも提供します。
oracle.aurora.jndi.ojdsというOracle Java Directory Service (OJDS)パッケージは、JNDIのサポートを実装するためのAPIを提供します。oracle.aurora.jndi.ojdsパッケージに存在するAPIの詳細は、「OJDSのAPIおよびクラス」を参照してください。
この項では、Oracle JVMでJNDIをサポートするための実装要件について説明します。この項の内容は次のとおりです。
ネームスペースの表記は、一般的なUNIXファイル・システム構造の場合と同様です。ルート・ディレクトリおよびディレクトリ・セパレータは、スラッシュ記号(/)で表記されます。ルート・ディレクトリはSYSが所有し、SYSのみがその下に新規のサブディレクトリを作成できます。
OJDSのインストール・プロセス中に、次の2つのディレクトリ(DirContexts)が作成されます。
/publicディレクトリ
/publicディレクトリはテスト用のパブリック領域であり、すべてのユーザーがこのディレクトリ内のオブジェクトをバインド、削除または参照できます。
/etcディレクトリ
/etcディレクトリは、クライアントが必要とするすべての本番タイプ・オブジェクトのデプロイメント用の領域であり、更新または削除されないように保護されます。/etcディレクトリへの書込みはSYSユーザーのみが実行できますが、読取りはすべてのユーザーが実行できます。
ディレクトリ構造に格納されたオブジェクトには、許可を割り当てることができます。これらの許可は、次の許可を組み合せたものです。
読取り
書込み
実行
次の表で、ディレクトリ構造に格納されたオブジェクトに割り当てることができる許可について説明します。
| アクション | 親コンテキストの許可 | 子(obj/ctx)の許可 |
|---|---|---|
bind |
書込み | NA |
unbind |
書込み | 書込み |
createSubcontext |
書込み | NA |
getAttributes |
読取り | 読取り |
rebind |
書込み | 書込み |
destroySub context |
書込み | 書込み |
list |
読取り | 読取り |
listBindings |
読取り | 読取り |
lookup |
読取り | 読取り |
lookupLink |
読取り | 読取り |
rename (target) |
書込み | 書込み(存在する場合) |
rename (source) |
読取り | 読取り |
|
注意: 操作を正常に実行するには、すべての親コンテキストに実行許可があることが必要です。 |
OJVMSYSが所有するデータベース表には、各オブジェクトの次の詳細が格納されます。
ネームスペース・メタデータ
バウンド名
属性
パーミッション
格納されたオブジェクト表現
この項では、Oracle Java Directory Serviceの次の概念について説明します。
Oracle Java Directory Service (OJDS)は、javax.naming.directory.DirContextコンテキストで指定されているとおりにインタフェースを実装する必要があります。javax.naming.directory.DirContextコンテキスト、oracle.aurora.jndi.ojds.OjdsServerContextコンテキストおよびoracle.aurora.jndi.ojds.OjdsClientContextコンテキストは、オブジェクトに関連付けられている属性を調査および更新するメソッドを提供し、サーバー側とクライアント側のそれぞれの実行でのディレクトリ検索を可能にします。
次の表で、コンテキストを作成または使用する際に使用可能なJNDIプロパティについて説明します。
| パッケージ名 | 説明 |
|---|---|
java.naming.factory.initial |
アプリケーションの初期コンテキストの作成に使用するクラスを指定します。oracle.aurora.jndi.ojdsパッケージは、InitialDirContextを作成するためにこのプロパティで使用するoracle.aurora.jndi.ojds.OjdsInitialContextFactoryを定義します。 |
java.naming.security.principal |
データベース接続を作成するためのユーザーIDを指定します。このプロパティには値を指定する必要があります。 |
java.naming.security.credentials |
データベース接続を作成するためのパスワードを指定します。このプロパティには値を指定する必要があります。 |
java.naming.provider.url |
データベース接続を作成するための接続URLを指定します。このプロパティはオプションです。 |
java.naming.factory.url.pkgs |
特定のJNDI実装に対するURLハンドラの、コロンで区切られたリストです。oracle.aurora.jndi.ojds.OjdsURLContextFactoryクラスは、OJDS URLに基づいてコンテキストを戻します。 |
StateFactoryは、Javaオブジェクトを実装側のJNDIプロバイダに格納できるオブジェクトに変換します。OJDSによってすべてのオブジェクトが変換され、シリアライズ・オブジェクトにバインドされます。OJDSは、この変換に関するjava.io.Serializableインタフェースの仕様およびJava Object Serialization Specificationに準拠しています。シリアライズされたオブジェクトは、OJDS永続ストアに格納されます。OJDSでは、外部のStateFactoryはサポートされていません。
ObjectFactoryは、実装側のJNDIプロバイダに格納されているオブジェクトを取得して、Javaオブジェクトに変換します。OJDSでは、外部のObjectFactoryはサポートされていません。シリアライズ・オブジェクトが、OJDS永続ストアから取得されたバイナリ形式に基づいて作成されます。オブジェクトがデシリアライズされると、OJDSによってそのオブジェクトは次のいずれかの方法で処理されます。
オブジェクトがContextの場合、connectionフィールドとenvフィールドが設定され、DirContextが戻されます。
オブジェクトがjavax.naming.Referenceの場合、DirectoryManager.getObjectInstanceメソッドを使用してオブジェクトを作成できます。
オブジェクトがContextでもjavax.naming.Referenceでもない場合、オブジェクトはそのままユーザーに戻されます。
オブジェクトを指定する取得済バイトは、java.io.Serializableインタフェース標準に準拠している必要があります。オブジェクトを実装するクラスがクライアントで変更されると、オブジェクトのデシリアライズに失敗することがあります。このため、オブジェクト・バイトと、オブジェクト・バイトをデシリアライズするクラスまたはオブジェクト・ストリームとの互換性を保つように注意する必要があります。
OJDSでは、次の形式で指定するURLがサポートされています。
ojds://jdbc_connection_url/path…/object
前述の構文の各要素は次のとおりです。
jdbc_connection_urlは、サポートされているJDBC接続URLの1つです。URLには、ディレクトリに接続するためのjdbc_connection_urlを指定する必要があります。
|
注意: OJDSプロバイダでは、JDKベースの外部クライアントに対してThinとOCIの両方のURLがサポートされています。たとえば、ThinドライバとOCIドライバにはそれぞれ次のURLを使用できます。thin:localhost:5521:mysid oci:22.133.242:5521:mysid ただし、サーバーでのOJDS URLは、Thin接続タイプにのみサポートされています。URL接続を完了するには、 |
pathは、UNIXタイプのファイル・システムと同様の、スラッシュ脚注1で区切られたリストです。これは、ディレクトリ・ツリー内のノードを表しています。
objectは、コンテキスト内の実際の終端オブジェクト名です。このオブジェクトを省略した場合、パスはスラッシュ(/)で終了します。このような場合は、このパスをルートとして表すDirContextが戻されます。
例
次のコード・スニペットは、ユーザーHRとして、接続されたOCIドライバを使用してディレクトリ/one/two内のMyObj型のオブジェクトmyobjを参照する方法を示しています。
import javax.naming.*;
.
.
.
Hashtable env = new Hashtable();
env.put(”java.naming.security.principal”,”HR”);
@ env.put(”java.naming.security.credentials”,”<password>”);
MyObj obj = (MyObj)(new InitialDirContext(env)).lookup(ojds://oci:host1:5521:mysid/one/two/myobj”);
JDKクライアントがOJDSを使用するためには、$ORACLE_HOME/jdbc/lib/ojdbc6.jarおよび$ORACLE_HOME/javavm/lib/aurora.zip jarファイルをクラスパスに追加する必要があります。
ネームスペース・ブラウザを使用すると、OJDSに格納されたオブジェクトの許可およびプロパティを参照できます。既存のojvmjavaユーティリティが拡張され、次の表で説明する操作がサポートされています。
| コマンド名 | 説明 |
|---|---|
ls |
UNIXのlsコマンドと同様に、コンテキストの内容を一覧表示します。 |
rm |
コンテキストまたはオブジェクトを削除します。 |
mkdir |
OJDSでコンテキストを作成します。 |
chown |
特定のコンテキストやオブジェクトなどの所有者を変更します。 |
chmod |
オブジェクトまたはコンテキストに対する権限を変更します。 |
cd |
作業コンテキストを変更します。 |
pwd |
現行作業コンテキストを一覧表示します。 |
ln |
UNIXのシンボリック・リンクと同様に、別の名前を使用して同じオブジェクトを参照します。 |
mv |
コンテキスト(またはオブジェクト)の古い名前を変更するか、新しい名前に再バインドします。 |
bind |
オブジェクト参照またはネーミング・コンテキストをJNDIネームスペースにバインドします。 |
bindds |
データ・ソース・オブジェクトを特定のコンテキストにバインドします。 |
bindurl |
URLオブジェクトを特定のコンテキストにバインドします。 |
拡張されたojvmjavaコマンドを使用すると、OJDSを操作および参照できます。この項では、次のコマンドについて説明します。
lsコマンドは、コンテキストの内容を表示します。
構文
ls [options] [context1] [context2] [obj|context]...
オプション
次の表で、lsコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
Context obj |
一覧表示するコンテキストまたはオブジェクトの名前を指定します。 |
-l |
名前、作成時刻、所有者、権限などを含む長い形式でコンテンツを表示します。オブジェクトのクラスを表示します。 |
dir |
UNIXのls –dコマンドと同様に、コンテキストのみを表示します。 |
ldir |
–lコマンドのように長い形式でコンテンツを表示しますが、UNIXの–ldと同様にバインドされたオブジェクトを無視します。 |
R |
子コンテキスト全体を再帰的に一覧表示します。 |
例
次のコマンドは、ルート・コンテキストの内容を短い形式で表示します。
$ ls /
etc/ public/
次のコマンドは、ルート・コンテキストの内容を長い形式で表示します。
$ ls -l Read Write Exec Owner Date Time Type Name PUBLIC SYS PUBLIC SYS Dec 14 14:59 Context etc PUBLIC PUBLIC PUBLIC SYS Dec 14 14:59 Context public
cdコマンドは、作業コンテキストを変更します。このコマンドは、UNIXのcdコマンドと同様に、ディレクトリを変更します。
例
次のコマンドは、コンテキストをルート・コンテキストに変更します。
$ cd /
pwdコマンドは、現行作業コンテキストを一覧表示します。
例
現行コンテキストが/test/alphaの場合、pwdコマンドの出力は次のようになります。
$ pwd
/test/alpha/
chownコマンドは、コンテキストまたはオブジェクトの所有権を変更します。
|
注意: コンテキストまたはオブジェクトの所有権を変更できるのは、SYSユーザーのみです。 |
構文
chown [options] {user | role} <object name>
オプション
次の表で、chownコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
User role |
所有者になるユーザーまたはロールの名前を指定します。 |
<object name> |
変更するコンテキストまたはオブジェクトの名前を指定します。 |
-R |
次のものの所有権を再帰的に変更します。
|
例
次のコマンドは、HRを/alpha/beta/gammaコマンドの所有者にします。
$ chown HR /alpha/beta/gamma
mkdirコマンドは、指定した名前でコンテキストを作成します。
|
注意: 新規のコンテキストを作成するには、ターゲット・コンテキストに対する書込み許可を持っている必要があります。 |
オプション
次の表で、mkdirコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
<name> |
作成するコンテキストの名前を指定します。 |
-path | -p |
中間コンテキストが存在しない場合は作成します。 |
例
次のコマンドは、/testコンテキストがすでに存在する場合に、/test/alphaというコンテキストを作成します。
mkdir /test/alpha
次のコマンドは、/test/alpha/betaコンテキストが存在しない場合に、/test/alpha/beta/gammaというコンテキストを作成します。
$ mkdir -path /test/alpha/beta/gamma
rmコマンドは、UNIXシェル・コマンドのrmと同様です。このコマンドは、オブジェクトまたはコンテキストを、その内容も含めて削除します。
|
注意: オブジェクトを削除するには、そのオブジェクトを含むコンテキストに対する書込み権限が必要です。 |
オプション
次の表で、rmコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
<Object> |
削除するコンテキストまたはオブジェクトの名前を指定します。 |
-recurse | -r |
コンテキストを仮定し、コンテキストとその内容を再帰的に削除します。 |
例
次のコマンドは、オブジェクト/test/bankを削除します。
rm /test/bank
次のコマンドは、コンテキスト/test/release3とその内容を削除します。
rm -r /test/release3
lnコマンドは、UNIXのlnコマンドと同様です。リンクとは、コンテキストまたはオブジェクトのシノニムのことです。コンテキストまたはオブジェクトを移動すると、コンテキストまたはオブジェクトへの参照が無効になることがあります。lnコマンドは、古い名前でリンクを作成し、古い名前と新しい名前の両方でオブジェクトにアクセスできるようにします。
構文
ln [-symbolic | -s] <object> <link>
オプション
次の表で、lnコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
-s |
<link>への<object>のソフト・リンクを作成します。 |
<object> |
コンテキストまたはオブジェクトの名前を指定します。 |
<link> |
コンテキストまたはオブジェクトをリンクする先のシノニムの名前を指定します。 |
例
次のコマンドは、オブジェクト名がnewに変更された後も、oldオブジェクトへのアクセスを保持します。
$ mv old new $ ln new old
mvコマンドは、コンテキストまたはオブジェクトの名前を新しい名前に変更(または古い名前を再バインド)します。
構文
mv <old> <new>
例
次のコマンドは、コンテキスト/test/fooの名前を/test/barに変更します。
$ mv /test/foo /test/bar
chmodコマンドは、UNIXシェル・コマンドのchmodと同様です。このコマンドは、コンテキストまたはオブジェクトに対するユーザーまたはロールの権限を変更します。
|
注意: オブジェクトに対する権限を変更できるのは、SYSユーザーまたはオブジェクト所有者のみです。 |
構文
chmod [options] {+|-} {r|w|x} {<user> | <role>, ...} <objectname>
オプション
次の表で、chmodコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
+/-rwx |
読取り、書込みまたは実行の権限を追加(+)または削除(-)します。 |
<user> | <role> |
追加または削除する権限を所有するユーザーまたはロール |
<objectname> |
権限を変更するコンテキストまたはオブジェクト |
-R |
権限を再帰的に変更します。 |
例
次の例では、/alpha/beta/gammaコンテキストの権限をHRおよびNANCYに変更します。
$ chmod +x HR,NANCY /alpha/beta/gamma
|
注意: 複数のスキーマはカンマでのみ区切ります。 |
次の例では、/alpha/beta/gammaコンテキストでのHRの書込み権限を削除します。
$ chmod -w HR /alpha/beta/gamma
bindコマンドは、オブジェクト参照またはコンテキストをJNDIネームスペースにバインドします。
構文
bind <objectname> [options] [-context] [-rebind] {-class | -c <classname>} [-factory | -f <factory>] [-location | -l <URL>][-string <type_name>
<string_value> [-string <type_name> <string_value> ...]] [-binary <type_name> <string_value> [-binary <type_name> <string_value> ...]]
オプション
次の表で、bindコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
<objectname> |
バインド先のオブジェクトの名前 |
-context |
バインドするオブジェクトは、ContextまたはInitialContextです。 |
-rebind |
JNDI名がすでに存在する場合、そのバインド先のオブジェクトをこのオブジェクトで置換します。 |
-class <classname> |
バインドされるオブジェクトのクラス名を指定します。 |
-factory <factory> |
オブジェクトを作成するためのファクトリ・クラス名を指定します。JNDIでは、オブジェクトを作成する際にこれが使用されます。 |
-location <URL> |
デフォルトの場所を使用しない場合、ファクトリの場所を指定します。これにはJNDI URLが使用されます。 |
-string <type_name> <string_value> |
オブジェクトの文字列参照属性をタイプ名および値で指定します。 |
-binary <type_name> <string_value> |
オブジェクトのバイナリ参照属性をタイプおよびバイナリ値で指定します。指定された16進文字列値は、バイナリに変換されます。 |
例
次のコマンドは、オブジェクト参照をネームスペースにバインドします。文字列およびバイナリ属性が参照に提供されます。
bind /tmp/myprinter -class gen.Inkjet -factory gen.InkjetFactory -string PRINTERNAME co2 -binary DPI 0X12C
このコマンドは、DataSourceオブジェクトをJNDIネームスペースにバインドします。このコマンドは、指定されたオプションに応じて、汎用データ・ソース、XAデータ・ソースまたはプールされたデータ・ソースをバインドします。
|
注意: Oracle JVMでは、kprbドライバおよびThinドライバのみがサポートされています。 |
構文
bindds <object_name> [options] [-help | -h] [-describe | -d] [-version | -v] [-dstype <datasource>]
[-host <hostname> -port <portnum> -sid <SID> -driver <driver_type>] [-url <db_url>]
[-g | -grant {<user> | <role>} [,{<user> | <role>}]...] [-recursiveGrant | -rg {<user> |<role>}
[,{<user> | <role>}]...] [-rebind] [-user | -u <user>]
オプション
次の表で、binddsコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
<objectname> |
オブジェクトをバインドする名前を指定します。 |
-help |
ヘルプ・メッセージを指定します。 |
-describe |
ツール操作を要約します。 |
-version |
バージョン番号を指定します。 |
-dstype <type> |
次のいずれかのタイプから、データ・ソース・タイプを指定します。
|
-host <hostname> -port <portnum> -sid <SID> -driver <drv_type> |
データベースの場所、およびデータベースに接続するためのドライバ・タイプを指定します。あるいは、-urlオプション内でこの情報をURL形式で指定することもできます。-sidオプションのデフォルト値は、ORCLです。-driverオプションの値は、thin、ociまたはkprbです。 |
-url <db_url> |
このJDBC URLは、データベースの場所を指定します。 |
-grant <user|role>, <user|role>… |
読取り権限および実行権限を<user>名と<role>名のシーケンスに付与します。再バインドする際には、読取り権限または実行権限を持つ既存のユーザーまたはロールを<user>名および<role>名で置き換えます。 |
-recursiveGrant <user|role>, <user|role>…. |
指定されたオブジェクトおよびオブジェクトが存在するすべてのコンテキストに、読取り許可および実行許可を再帰的に付与します。コンテキストの許可レベルがSYSの場合、そのコンテキストに対する付与は無視されます。 |
-rebind |
DataSourceオブジェクトがすでに存在する場合、このオプションを指定して、既存のデータ・ソースをこの新しいオブジェクトで上書きする必要があります。そうしない場合、このオプションでバインドは実行されません。 |
-user <user> |
データベースに接続するためのユーザー名を指定します。ユーザー名をDataSourceオブジェクト内に格納します。データベース接続の作成時にJNDIコンテキスト内でユーザー名を指定しない場合は、このユーザー名が使用されます。 |
例
次の例では、ds1データ・ソースがネームスペースにバインドされます。
bindds /test/ds1 -host localhost -port 1522 -sid orcl -driver thin bindds /test/ds1 -url jdbc:oracle:thin:@localhost:1522:orcl
この例では、汎用データ・ソース(OracleDataSource)に対してJDBC Thinドライバを使用します。
bindurlコマンドは、URLオブジェクトをネームスペースにバインドします。
オプション
次の表で、bindurlコマンドのオプションについて説明します。
| オプション | 説明 |
|---|---|
<objectname> |
バインド先のオブジェクトの名前を指定します。 |
-help |
ヘルプ・メッセージを指定します。 |
-describe |
ツール操作を要約します。 |
-version |
bindurlコマンドのバージョンを出力します。 |
-rebind |
JNDI名がすでに存在する場合、このオプションを指定して、既存のJNDI名をこの新しいオブジェクトで上書きする必要があります。そうしない場合、このオプションでバインドは実行されません。 |
-grant <user|role>, <user|role>… |
読取り権限および実行権限を<user>名と<role>名のシーケンスに付与します。再バインドする際には、読取り権限または実行権限を持つ既存のユーザーまたはロールを<user>名および<role>名で置き換えることができます。 |
-recursiveGrant <user|role>, <user|role>... |
指定されたオブジェクトおよびオブジェクトが存在するすべてのコンテキストに、読取り許可および実行許可を再帰的に付与します。コンテキストの許可レベルがSYSの場合、そのコンテキストに対する付与は無視されます。 |
例
次の例では、URL文字列http://www.oracle.comがネームスペース内のURL参照/test/myURLにバインドされます。
bindurl /test/myURL http://www.oracle.com -rebind
-rebindオプションを使用して、/test/myURL参照がすでに存在しているかどうかを確認し、存在していれば文字列http://www.oracle.comで再バインドされます。
この項では、OJDSの次のAPIおよびクラスについて説明します。
このクラスは、javax.naming.directory.DirContextインタフェースを実装します。データベースとの接続を確立し、OJDSをサポートするために必要なすべてのファンクションを実行します。次のメソッドを除いて、[DirContext]で説明されているすべてのメソッドがサポートされています。
getSchema
getSchemaClassDefintion
modifyAttributes
search
このクラスは、JAVA JDKベースのクライアントでInitialDirContextが作成されると自動的に作成されます。クライアント・アプリケーションとOJDSの間の通信およびオブジェクト・トランスポートを提供します。
接続を完了するには、次のJNDIプロパティを特定の値に設定する必要があります。
java.naming.factory.initialをoracle.aurora.jndi.ojds.OjdsIntialContextFactoryに設定します。
java.naming.security.principalを接続スキーマ名に設定します。
java.naming.security.credentialsをスキーマ・パスワードに設定します。
java.naming.provider.urlを有効なOJDS URLに設定します。
これらのプロパティは、次のコード・スニペットに示すように設定できます。
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "oracle.aurora.jndi.ojds.OjdsInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "HR");
env.put(Context.SECURITY_CREDENTIALS, "<password>");
env.put(Context.PROVIDER_URL,"ojds://thin:localhost:5521:j3");
このクラスは、javax.naming.directory.DirContextインタフェースを実装します。OJDS永続ストアとの通信には、内部データベース接続が使用されます。次のメソッドを除いて、[DirContext]で説明されているすべてのメソッドがサポートされています。
getSchema
getSchemaClassDefintion
modifyAttributes
search
このクラスは、データベース常駐アプリケーションでInitialDirContextが作成されると自動的に作成されます。OJDS永続ストアとの通信には、データベース内部のJDBCドライバが使用されます。
アプリケーションはloginスキーマとして実行されるため、OjdsClientContextではOjdsClientContextの4つの環境プロパティは無視されます。接続は、kprb [JDBC]内部ドライバを使用して行われます。Javaストアド・プロシージャでサーバー外部のアクセスが必要な場合は、java.naming.provider.urlプロパティの値として、「oracle.aurora.jndi.ojds.OjdsInitialContextFactory」で説明されているOJDS URLContextを使用する必要があります。
このクラスは、javax.naming.spi.InitialContextFactoryインタフェースを実装します。JNDIのInitialContextまたはInitialDriContextクラスは、実行環境に応じてOjdsClientContextかOjdsServerContextのいずれかを作成します。
このクラスでは、OJDSスタイルのURLがサポートされます。URLに提供されたメソッドに応じて、このメソッドは、DirContextか、OJDSに格納されているオブジェクトのインスタンスを戻すことができます。
このクラスは、oracle.aurora.jndi.ojds.OjdsClientContextの拡張です。OJDS URLからの接続情報の抽出と、OJDSへの接続の確立がサポートされています。oracle.aurora.jndi.ojds.OjdsClientContextクラスと同じインタフェースがサポートされます。
OjdsURLContextクラスを使用するには、次のパラメータを設定する必要があります。
javax.naming.security.principalを接続スキーマに設定します。
javax.naming.security.credentialsを接続スキーマのパスワードに設定します。
javax.naming.factory.initialをoracle.aurora.jndi.ojds.OjdsInitialContextFactoryに設定します。
これらのプロパティは、次のコード・スニペットに示すように設定できます。
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "oracle.aurora.jndi.ojds.OjdsInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "HR");
env.put(Context.SECURITY_CREDENTIALS, "<password>");
DirContext dir =
(new InitialContext(env)).lookup(”ojds://thin:localhost:5521:j3/public./mydir”);
脚注の凡例
脚注1: スラッシュ記号(\)