ヘッダーをスキップ
Oracle® Database Java開発者ガイド
12cリリース1 (12.1)
B72466-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 JNDIに対するOracle JVMのネイティブ・サポート

この章では、Java Naming and Directory Interface (JNDI)に対するOracle JVMのサポートについて説明します。この章の内容は、次のとおりです。

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およびクラス」を参照してください。

JNDIに対するOracle JVMのサポートの要件

この項では、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が所有するデータベース表には、各オブジェクトの次の詳細が格納されます。

  • ネームスペース・メタデータ

  • バウンド名

  • 属性

  • パーミッション

  • 格納されたオブジェクト表現

初期のコンテキストおよび許可

次の表に、インストール時にデフォルトで作成されるコンテキストを示します。

名前 所有者 読取り 書込み 実行
/
SYS PUBLIC SYS PUBLIC
/public SYS PUBLIC PUBLIC PUBLIC
/etc SYS PUBLIC SYS PUBLIC

オブジェクトおよびコンテキストのデフォルト許可

コンテキストが作成された場合や、オブジェクトがOJDSにバインドされた場合、コンテキストを作成するユーザーまたはスキーマに読取り許可と実行許可が付与されます。

Oracle Java Directory ServiceのJNDIネームスペース・プロバイダ

この項では、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

StateFactoryは、Javaオブジェクトを実装側のJNDIプロバイダに格納できるオブジェクトに変換します。OJDSによってすべてのオブジェクトが変換され、シリアライズ・オブジェクトにバインドされます。OJDSは、この変換に関するjava.io.Serializableインタフェースの仕様およびJava Object Serialization Specificationに準拠しています。シリアライズされたオブジェクトは、OJDS永続ストアに格納されます。OJDSでは、外部のStateFactoryはサポートされていません。

ObjectFactory

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では、次の形式で指定する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接続を完了するには、Context.SECURITY_PRINCIPALおよびContext.SECURITY_CREDENTIALSの値を設定する必要があります。


  • 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ユーティリティが拡張され、次の表で説明する操作がサポートされています。


関連項目:

ojvmjavaユーティリティの詳細は、「ojvmjavaツール」を参照してください。

コマンド名 説明
ls UNIXのlsコマンドと同様に、コンテキストの内容を一覧表示します。
rm コンテキストまたはオブジェクトを削除します。
mkdir OJDSでコンテキストを作成します。
chown 特定のコンテキストやオブジェクトなどの所有者を変更します。
chmod オブジェクトまたはコンテキストに対する権限を変更します。
cd 作業コンテキストを変更します。
pwd 現行作業コンテキストを一覧表示します。
ln UNIXのシンボリック・リンクと同様に、別の名前を使用して同じオブジェクトを参照します。
mv コンテキスト(またはオブジェクト)の古い名前を変更するか、新しい名前に再バインドします。
bind オブジェクト参照またはネーミング・コンテキストをJNDIネームスペースにバインドします。
bindds データ・ソース・オブジェクトを特定のコンテキストにバインドします。
bindurl URLオブジェクトを特定のコンテキストにバインドします。

OJDSのコマンドライン・ツール

拡張されたojvmjavaコマンドを使用すると、OJDSを操作および参照できます。この項では、次のコマンドについて説明します。

lsコマンド

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コマンド

cdコマンドは、作業コンテキストを変更します。このコマンドは、UNIXのcdコマンドと同様に、ディレクトリを変更します。

次のコマンドは、コンテキストをルート・コンテキストに変更します。

$ cd /

pwdコマンド

pwdコマンドは、現行作業コンテキストを一覧表示します。

現行コンテキストが/test/alphaの場合、pwdコマンドの出力は次のようになります。

$ pwd

/test/alpha/

chownコマンド

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コマンドは、指定した名前でコンテキストを作成します。


注意:

新規のコンテキストを作成するには、ターゲット・コンテキストに対する書込み許可を持っている必要があります。

オプション

次の表で、mkdirコマンドのオプションについて説明します。

オプション 説明
<name> 作成するコンテキストの名前を指定します。
-path | -p 中間コンテキストが存在しない場合は作成します。

次のコマンドは、/testコンテキストがすでに存在する場合に、/test/alphaというコンテキストを作成します。

mkdir /test/alpha

次のコマンドは、/test/alpha/betaコンテキストが存在しない場合に、/test/alpha/beta/gammaというコンテキストを作成します。

$ mkdir -path /test/alpha/beta/gamma

rmコマンド

rmコマンドは、UNIXシェル・コマンドのrmと同様です。このコマンドは、オブジェクトまたはコンテキストを、その内容も含めて削除します。


注意:

オブジェクトを削除するには、そのオブジェクトを含むコンテキストに対する書込み権限が必要です。

オプション

次の表で、rmコマンドのオプションについて説明します。

オプション 説明
<Object> 削除するコンテキストまたはオブジェクトの名前を指定します。
-recurse | -r コンテキストを仮定し、コンテキストとその内容を再帰的に削除します。

次のコマンドは、オブジェクト/test/bankを削除します。

rm /test/bank

次のコマンドは、コンテキスト/test/release3とその内容を削除します。

rm -r /test/release3

lnコマンド

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コマンドは、コンテキストまたはオブジェクトの名前を新しい名前に変更(または古い名前を再バインド)します。

構文

mv <old> <new>

次のコマンドは、コンテキスト/test/fooの名前を/test/barに変更します。

$ mv /test/foo /test/bar

chmodコマンド

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コマンド

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

binddsコマンド

このコマンドは、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> 次のいずれかのタイプから、データ・ソース・タイプを指定します。
  • なし(OracleDataDourceの場合)

  • xa (OracleXADatasourceの場合)

  • pool (OracleConnectionPoolDataSourceの場合)

-host <hostname> -port <portnum> -sid <SID> -driver <drv_type> データベースの場所、およびデータベースに接続するためのドライバ・タイプを指定します。あるいは、-urlオプション内でこの情報をURL形式で指定することもできます。-sidオプションのデフォルト値は、ORCLです。-driverオプションの値は、thinociまたは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コマンド

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およびクラス

この項では、OJDSの次のAPIおよびクラスについて説明します。

oracle.aurora.jndi.ojds.OjdsClientContext

このクラスは、javax.naming.directory.DirContextインタフェースを実装します。データベースとの接続を確立し、OJDSをサポートするために必要なすべてのファンクションを実行します。次のメソッドを除いて、[DirContext]で説明されているすべてのメソッドがサポートされています。

  • getSchema

  • getSchemaClassDefintion

  • modifyAttributes

  • search

このクラスは、JAVA JDKベースのクライアントでInitialDirContextが作成されると自動的に作成されます。クライアント・アプリケーションとOJDSの間の通信およびオブジェクト・トランスポートを提供します。

接続を完了するには、次のJNDIプロパティを特定の値に設定する必要があります。

  • java.naming.factory.initialoracle.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");

oracle.aurora.jndi.ojds.OjdsServerContext

このクラスは、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を使用する必要があります。

oracle.aurora.jndi.ojds.OjdsInitialContextFactory

このクラスは、javax.naming.spi.InitialContextFactoryインタフェースを実装します。JNDIのInitialContextまたはInitialDriContextクラスは、実行環境に応じてOjdsClientContextOjdsServerContextのいずれかを作成します。

oracle.aurora.jndi.ojds.OjdsURLContextFactory

このクラスでは、OJDSスタイルのURLがサポートされます。URLに提供されたメソッドに応じて、このメソッドは、DirContextか、OJDSに格納されているオブジェクトのインスタンスを戻すことができます。

oracle.aurora.jndi.ojds.OjdsURLContext

このクラスは、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.initialoracle.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: スラッシュ記号(\)