プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド
11g リリース1 (11.1.1)
B56242-07
  目次へ移動
目次

前
 
 

C Netscape LDAP SDK APIからOracle LDAP SDK APIへの移行

この付録では、コードを移行する際に重要な、Netscape LDAP SDKとOracle Internet Directory LDAP SDKとの違いについて説明します。

Oracle Internet Directory SDK C APIの詳細は、第8章「C APIリファレンス」で説明されています。

この付録の内容は次のとおりです。

C.1 機能

Oracle Internet Directory LDAP SDKの次の機能は、NetscapeのSDK機能と異なります。

  • Netscape SDKでは、参照を処理するために、クライアントはLDAPリバインド・コールバックを登録する必要があります。Oracle LDAP SDKでは自動的に処理されます。

  • LDAP構造へのアクセス方法が異なります。Netscape LDAP SDKのLDAPハンドルは不透明型です。このハンドル内の個々のフィールドにアクセスするには、アクセサリ機能が必要です。Oracle Internet Directory LDAP SDKでは、LDAP構造が公開されており、クライアントは構造内の個々のフィールドを変更できます。

  • Oracle LDAP SDKでは、ldap_init()ではなくldap_open()を使用します。

  • Oracle LDAP SDKでは、SSL接続の初期化には異なるファンクション・コールおよびプロシージャが必要です。SSL用のOracle Internet Directoryファンクション・コールの詳細は、第8章「C APIリファレンス」を参照してください。

  • Oracle Internet Directory C APIは、ライブラリおよびその他のファイルなどのOracle環境に依存します。Oracle Application ServerまたはOracle Databaseをインストールし、アプリケーションを作成する前に、環境変数$ORACLE_HOMEを適切な場所に設定する必要があります。

  • LDAP SDKユーザーは、メモリーをクリアするcalloc()などの割当て機能を使用して、LDAPMod structure()を割り当てる必要があります。

  • Oracle Internet Directory APIはスレッド・セーフではありません。

C.2 ファンクション

次のファンクションはNetscape LDAP SDKでは使用できますが、Oracle LDAP SDKでは使用できません。

  • Oracle LDAP SDKには、ldap_ber_free()ファンクションはありません。かわりに、ber_free()を使用します。

  • Oracle LDAP SDKには、ldエラーおよび一致した文字列を取得するためのldap_get_lderrno()ファンクションはありません。LDAP.ld_matchedおよびLDAP.ld_errorフィールドにアクセスすることで、この情報を直接取得できます。ユーザーがアクセスする必要のあるLDAP構造のフィールドは、この2つのみです。

C.3 マクロ

  • Oracle LDAP SDKにはLDAPS_PORTは定義されていません。かわりに、LDAP_SSL_PORTを使用します。

  • Oracle LDAP SDKにはLDAP_AFFECT_MULTIPLE_DSAは定義されていません。これはNetscape固有のマクロです。