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

第6章 アプリケーションの作成(JNDI)> 6.2 サンプルプログラム

6.2.2 サンプルプログラムの実施手順

 サンプルプログラムのコンパイルから実行までの手順について説明します。

  1. サンプルプログラム格納ディレクトリ配下のすべてのファイルを作業ディレクトリにコピーします。

     


  2. 作業ディレクトリに“書き込み”の権限を設定します。

    chmod +w example

     

  3. 接続するSmart Repositoryサーバの環境に合わせて、サンプルソース上でパラメタ値を変更します。該当するパラメタについては、以下のパラメタ一覧を参照してください。

    サンプルソース

    パラメタ

    概要

    備考

    共通パラメタ

    ldapurl

    リポジトリサーバのURL情報

    “ldap://ホスト名:ポート番号”の形式で指定してください。

    binddn

    リポジトリサーバへバインドする際のDN

     

    password

    リポジトリサーバへバインドする際のパスワード

     

    sslenvfile

    SSL環境定義ファイルの格納場所(パス)

     

    ssllogdir

    SSLログファイルの格納場所(パス)

     

    AddEntry.java

    add_dn

    追加するエントリのDN

     

    orig

    追加する属性情報
    (BasicAttributesオブジェクト)

    追加する属性(BasicAttributesオブジェクト)を設定します。

    DelEntry.java

    del_dn

    削除するエントリのDN

     

    Modattrs.java

    mod_dn

    変更するエントリのDN

     

    mods

    変更する属性情報
    (ModificationItemオブジェクト配列)

    変更する属性(ModificationItemオブジェクト)を設定します。

    Search.java

    s_base

    サーチベース

     

    filter

    検索フィルタ

     

     

  4. 次のコンパイル例を参考に、サンプルプログラムをコンパイルしてください。コンパイル実行後、.classファイルが作成されることを確認してください。

    コンパイル例を示します。


     JDK1.4を使用する場合

    C:\Interstage\JDK14\bin\javac Search.java


     JDK1.4を使用する場合

    /opt/FJSVawjbk/jdk14/bin/javac Search.java

     コンパイル後に、「Search.class」ファイルが作成されます。

  5. 作成した.classファイルの格納先のパスをCLASSPATHに設定し、次の実行例のように、サンプルプログラムを実行します。

    実行例を示します。


     JDK1.4を使用する場合

    C:\Interstage\JDK14\bin\java Search


     JDK1.4を使用する場合

    /opt/FJSVawjbk/jdk14/bin/java Search

JNDIアプリケーション作成時の注意事項

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

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

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

DirContext ctx = new InitialDirContext(env);
NamingEnumeration results = ctx.search("dc=com", "cn=User001", constraints);
while (results != null && results.hasMore()){
    SearchResult sr = (SearchResult)results.next();
}
DirContext ctx = new InitialDirContext(env);
NamingEnumeration results = ctx.search("dc=com", "cn=User001", constraints);
results.close();

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

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