| InfoDirectory使用手引書 | 
| 目次
			索引    | 
| 第3部 SDK編 | > 第6章 アプリケーション開発環境(JNDI) | > 6.4 サンプルプログラム | 
サンプルプログラムのコンパイルから実行までの手順について説明します。
コンパイル例
| javac Search.java | 
※)コンパイル後に、「Search.class」ファイルが作成されます。
実行例
| java Search | 
| サンプルソース | パラメタ | 概要 | 備考 | 
|---|---|---|---|
| 共通パラメタ | ldapurl | 接続するInfoDirectoryサーバ情報 | “ldap://ホスト名:ポート番号”の形式で指定してください。 | 
| binddn | BINDするためのDN | 
 | |
| password | BINDするためのパスワード | 
 | |
| sslenvfile | SSL環境ファイルのパス | jndi1.2のサンプルプログラムのみ有効です。jndi1.1のサンプルプログラムについては、ソース上のJNDI環境プロパティを変更してください。 | |
| ssllogdir | SSLログファイルのパス | jndi1.2のサンプルプログラムのみ有効です。jndi1.1のサンプルプログラムについては、ソース上のJNDI環境プロパティを変更してください。 | |
| AddEntry.java | add_dn | 追加するエントリのDN | 
 | 
| orig | 追加する属性情報 | 追加する属性(BasicAttributeオブジェクト)を設定します。 | |
| DelEntry.java | del_dn | 削除するエントリのDN | 
 | 
| Modattrs.java | mod_dn | 変更するエントリのDN | 
 | 
| mods | 変更する属性情報 | 変更する属性(ModificationItemオブジェクト)を設定します。 | |
| Search.java | s_base | サーチベース | 
 | 
| filter | 検索フィルタ | 
 | |
| PagedSearch.java(※) | pageSize | ページングのサイズ | サンプル実行時にコマンドの第1パラメタに指定してください。 | 
| s_base | サーチベース | 
 | |
| filter | 検索フィルタ | 
 | |
| return_attr | 返却属性 | 
 | |
| SortedList.java(※) | attrID | ソートするキー | サンプル実行時にコマンドの第1パラメタに属性名を指定してください。 | 
| s_base | サーチベース | 
 | |
| filter | 検索フィルタ | 
 | 
※ jndi1.2のサンプルプログラムにのみ存在します。

jndi1.1.x
CLASSPATHオプションでJNDIのクラスパスを指定する必要があります。コンパイル例
javac -classpath C:\Program Files\ID\Dir\sdk\JAVA\lib\jndi.zip Search.java
javac -classpath /opt/FJSVidsdk/JAVA/lib/jndi.zip Search.java
jndi1.2.x
コンパイル時には 使用するJDK配下の「jre\lib\ext」配下に、次のアーカイブをおいてください。
コンパイル時には 使用するJDK配下の「jre/lib/ext」配下に、次のアーカイブをおいてください。
- ldapbp.jar
- fjssl.jar
- libsslcall2.so
- libFjCrypt.so
JDK1.2.2でコンパイルするときは、以下のアーカイブも同様の場所においてください。JNK1.3.1でコンパイルするときは、以下のアーカイブは不要です。
- jndi.jar
- jaas.jar
- ldap.jar
- providerutil.jar

以下の場合、InitialDirContextのclose()メソッドを実行しても即時UNBINDは送出されません。
この場合、以下のタイミングでコネクションが破棄されるまで、クライアントおよびサーバ間でコネクションが累積します。以下のタイミングでは実際にはUNBINDではなくDISCONNECTが送出されます。
 サーブレットでJNDIを動作させる場合や、コネクションの生成/破棄を繰り返すプログラムでは、LDAPサーバに繋がらないといった問題を引き起こす可能性があります。
 コネクションが累積しないようにするためには、以下のいずれかの方法で検索結果をクリアし、確実にUNBINDが送出されるようにしてください。
DirContext ctx = new InitialDirContext(env);
NamingEnumeration results = ctx.search("c=jp", "cn=taro", constraints);
while (results != null && results.hasMore()){
  SearchResult sr = (SearchResult)results.next();
}
 
DirContext ctx = new InitialDirContext(env);
NamingEnumeration results = ctx.search("c=jp", "cn=taro", constraints);
results.close();
| 目次
			索引    |