Interstage Application Server Smart Repository運用ガイド
目次 索引 前ページ次ページ

第7章 アプリケーションの作成(JNDI)> 7.1 JNDIの使用方法

7.1.3 アプリケーション開発時の注意事項

 JNDIを使用してアプリケーションを開発する際には、以下の注意が必要です。

動作環境

 コンパイル、およびアプリケーションが動作するために必要な環境変数を設定してください。


 SSLを使用する場合、CLASSPATH に以下のJava Archive(jar)ファイルを設定します。

 JAVA_HOME は、インストール時に、以下の値が自動的に設定されています。

 PATH に以下のディレクトリを設定します。


 SSLを使用する場合、CLASSPATH に以下のJava Archive(jar)ファイルを設定します。

 JAVA_HOMEに以下のディレクトリを設定します。

 LD_LIBRARY_PATH に以下のディレクトリを設定します。

 作成した.classファイルを実行する際には、作成した.classファイルの格納先のパスをCLASSPATHに設定してください。

検索

 以下の場合、InitialDirContextのclose()メソッドを実行しても即時UNBINDは送出されません。

 この場合、以下のタイミングでコネクションが破棄されるまで、クライアントおよびサーバ間でコネクションが累積します。以下のタイミングでは実際にはUNBINDではなくDISCONNECTが送出されます。

 サーブレットでJNDIを動作させる場合や、コネクションの生成/破棄を繰り返すプログラムでは、Smart Repositoryサーバにつながらないといった問題を引き起こす可能性があります。
 コネクションが累積しないようにするためには、以下のどちらかの方法で検索結果をクリアし、確実にUNBINDが送出されるようにしてください。

特殊文字を含むDN

 DNに、記号を指定する場合、以下の記号は特殊文字として扱われます。

 特殊文字を指定するには、その特殊文字の前に「\」(エンマーク)を置いてエスケープするか、または「"」(ダブル引用符)で囲む必要があります。

エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。

cn=a\b,o=Fujitsu, Inc.,c=jp

 LDAP、JNDI、Java言語それぞれで、「\」(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。

 「\」を含むcn属性を指定するとします。

a\b

 LDAPの規約により「\」をエスケープする必要があります。

cn=a\\b

 JNDIの仕様により、この名前を指定するために、それぞれの「\」をエスケープする必要があります。

cn=a\\\\b

 Java言語の仕様により、この名前を文字列リテラルとして指定するために、それぞれの「\」をエスケープする必要があります。

String name1 = "cn=a\\\\\\\\b";

 同様に、「,」(カンマ)、「"」(ダブル引用符)の場合はそれぞれ次のようになります。

String name2 = "cn=a\\\\,b";
String name3 = "cn=a\\\\\"b";

 最初の例をJNDIで使用する場合は、次のように記述します。

String name = "cn=a\\\\\\\\b,o=Fujitsu\\\\, Inc.,c=jp";

日本語を含むDN、属性値の指

 DNおよび属性値に日本語を含む文字列を指定することができます。エスケープやコード変換は不要です。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007