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

第5章 アプリケーションの作成(C API)> 5.3 サンプルプログラム

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

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

コンパイル手順

  1. “C:\Interstage\IREP\sample\C”配下のすべてのファイル/フォルダを作業ディレクトリにコピーします。
     
  2. Visual C++などの開発ツールで作業ディレクトリ配下の build\build.dsw ファイルを開きます。
     

     「build」フォルダで提供しているファイルは Visual C++ 5.0 向けのプロジェクトファイルです。Visual C++ 6.0/.NET を使用する場合は、プロジェクト起動時にそれぞれの形式に変換する旨の確認表示がありますので「はい」を選択してください。
     
  3. コンパイルオプションを設定します。設定方法については、“コンパイル/リンクの際のオプション”を参照してください。
     
  4. 接続するリポジトリサーバの環境に合わせて、サンプルソース上でパラメタ値を変更します。該当するパラメタについては、“パラメタ一覧”を参照してください。なお、パラメタの詳細については、“API関数の一覧”にある各関数パラメタの説明を参照してください。
     
  5. Visual C++ でコンパイルするサンプルに対応するプロジェクトをビルドします。ビルドが完了すると、「build」フォルダ配下にプロジェクトファイル名と同じフォルダが作成され、実行ファイルが格納されます。

    Visual C++ の使用方法についてはVisual C++ 付属のヘルプなどを参考にしてください。
     

  1. “/opt/FJSVirep/sample/C”配下のすべてのファイルを作業ディレクトリにコピーします。
     
  2. 作業ディレクトリに“書き込み”の権限を設定します。

    chmod +w example

     

  3. 接続するリポジトリサーバの環境に合わせて、サンプルソース上でパラメタ値を変更します。該当するパラメタについては、“パラメタ一覧”を参照してください。なお、パラメタの詳細については、“API関数の一覧”にある各関数パラメタの説明を参照してください。
     
  4. makeコマンドによりサンプルプログラムをコンパイルします。makeコマンドの実行の際に、「makefile」ファイルが存在することを確認してください。“サンプルプログラムのファイル一覧”にある各LDAP操作のソースファイルに対応する実行ファイルが作成されることを確認してください。

パラメタ一覧

 パラメタ一覧を以下に示します。

 

サンプル種別(注)

パラメタ

概要

備考

共通パラメタ

host

接続するリポジトリサーバのホスト名、またはIPアドレス

 

port

リポジトリサーバのポート番号

デフォルトのポート番号は以下のようになります。
- LDAP_PORT: 389
- LDAP_SSL_PORT: 636(SSL通信用)

binddn

BINDするためのDN

 

passwd

BINDするためのパスワード

 

sslenv

SSLENV構造体のアドレス

構造体の各メンバについては、“ldapssl_init”を参照してください。

エントリの検索

s_base

サーチベースのDN

 

scope

検索対象範囲

以下のどれか1つを指定します。
- LDAP_SCOPE_BASE: s_baseで指定したエントリを検索
- LDAP_SCOPE_ONELEVEL: s_baseで指定したエントリの1階層下のエントリを検索
- LDAP_SCOPE_SUBTREE: s_baseで指定したエントリとその配下の全エントリの中から検索

filter

検索フィルタ

すべてのエントリを検索する場合は、“(objectClass=*)”を指定してください。

attrs

通知する属性名

複数の属性名を配列で指定します。配列の最後には、NULLを設定する必要があります。

属性値の比較

cmp_dn

比較を行うエントリのDN

 

attr

比較を行う属性名

 

value

比較対象の文字列データ

 

エントリの変更

mod_dn

変更するエントリのDN

 

mods

変更する属性情報

(LDAPMod構造体のポインタ配列のアドレス)

構造体の各項目に設定する値は、“ldap_modify”を参照してください。

エントリの変名

old_dn

変名するエントリのDN

 

new_dn

変名後のDN

変名後のDNをもつエントリが存在しないように、サンプルプログラム内で事前にエントリが削除されます。

new_rdn

新しいRDN

 

mods

追加する属性情報

(LDAPMod構造体のポインタ配列のアドレス)

サンプルプログラム内で変名するエントリが事前に作成されます。構造体の各項目に設定する値は、“ldap_add”を参照してください。

NMODS

追加するエントリの属性の数

modsの配列長を指定してください。

work_area

作業用の構造体

日本語を扱う場合に、modsの内容に合わせ変更する必要があります。

エントリの追加

add_dn

追加するエントリのDN

 

mods

追加する属性情報

(LDAPMod構造体のポインタ配列のアドレス)

構造体の各項目に設定する値は、“ldap_add”を参照してください。

NMODS

追加する属性名の数

modsの配列長を指定してください。

work_area

作業用の構造体

日本語を扱う場合に、modsの内容に合わせ変更する必要があります。

エントリの削除

del_dn

削除するエントリのDN

 

注)サンプル種別は、“サンプルプログラムのファイル一覧”と対応しています。

実行手順

 上記で作成された実行ファイルを直接実行します。

1)エントリの変更(同期型)

# ./modattrs ・・・ サンプルプログラム実行
./modattrs is start
./modattrs: ldap_init( "host1", 389 )
./modattrs: ldap_set_option( LDAP_OPT_PROTOCOL_VERSION, 3 )
./modattrs: ldap_simple_bind_s( "cn=manager,ou=interstage,o=fujitsu,dc=com", "******" )
./modattrs: ldap_modify_s( "uid=100001,ou=interstage,o=fujitsu,dc=com", ****** )
./modattrs: ldap_unbind( )
./modattrs is normal end

 例1では、サンプルプログラムが正常に終了したことを示します。なお、上記はSolaris OE版の実行例です。

2)サンプルプログラムが失敗する場合(非同期型エントリ検索)

# ./search ・・・ サンプルプログラム実行
./search is start
./search: ldap_init( "host1", 389 )
./search: ldap_set_option( LDAP_OPT_DEREF, 3 )
./search: ldap_set_option( LDAP_OPT_PROTOCOL_VERSION, 3 )
./search: ldap_simple_bind_s( "cn=manager,ou=interstage,o=fujitsu,dc=com", "******" )
ldap_simple_bind_s: Can't contact LDAP server
./search: ldap_unbind( )
./search is abnormal end

 例2では、サンプルプログラム(search.c)中のldap_simple_bind_s()でエラーとなっています。エラーメッセージ「Can't contact LDAP server」から、リポジトリサーバが起動されていない、または接続先サーバ情報に誤りがあるなどの原因が考えられます。

 サンプルプログラムで出力されるメッセージについては、“LDAPエラーコード”を参照してください。

 なお、上記はSolaris OE版の実行例です。


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

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