InfoDirectory使用手引書
目次 索引 前ページ次ページ

第5部 保守編> 第14章 トラブル事例

14.5 LDAPアクセスに関するトラブル

事例1 DSAにアクセスするとLDAPエラーコード(0x51 Can't contact LDAP server)が通知される。(その1)

【トラブル現象】
 LDAPクライアントからDSAにアクセスできない場合がある。

【原因】

 Active Directoryなどの他製品のディレクトリサーバが、ポート番号389を使用している可能性があります。


 他製品のディレクトリサーバが、ポート番号389を使用している可能性があります。

【対処方法】
 以下の手順でDSAのポート番号を変更してください。
 管理ツールを起動してください。[サーバツール]メニューから[サーバ管理]を選択して、[サーバ管理]ウィンドウを起動します。次に、[サーバパラメタ]タブで[プロセスの追加/削除]ボタンを押し、[プロセス設定]ダイアログを表示します。[有効なプロセス]から“mtldapd”プロセスを選択して[プロパティ]ボタンを押し、[LDAPプロセスの詳細設定]ダイアログでポート番号を変更してください。

 

事例2 DSAにアクセスするとLDAPエラーコード(0x51 Can't contact LDAP server)が通知される。(その2)

【トラブル現象】
 LDAPクライアントからDSAにアクセスすると、LDAPエラーコードとして0x51(Can't contact LDAP server)が通知される。

【原因】
 LDAPクライアントとDSA間のネットワークが接続されていない可能性があります。または、DSAが停止している可能性があります。

【対処方法】
 pingコマンドなどでDSAが起動しているマシンとネットワークが接続されているか確認してください。

 ネットワークが接続されていることを確認できた場合、以下のようにDSAの起動状態を確認してください。
 [管理ツール]ウィンドウ → [サーバツール]メニュー → [DSA運用管理]ウィンドウを選択して、アクセスしたいDSAの状態を確認してください。

 DSAが起動していない場合、[管理ツール]ウィンドウ → [サーバツール]メニュー → [DSA運用管理]ウィンドウを開き、[DSA]メニューから[DSA起動]を選択して、[管理者認証]ダイアログを起動します。そして、DSA管理者または管理ツール管理者のIDとパスワードを入力してください。

 

事例3 DSAにアクセスするとLDAPエラーコード(0x51 Can't contact LDAP server)が通知される。(その3)

【トラブル現象】
 LDAPクライアントからDSAにアクセスできない状態になった。

【原因】
 DSAが異常終了、または停止状態でLDAPクライアントからアクセスできない状態になっているか、もしくはLDAPクライアントのアクセス方法に問題があります。

【対処方法】
 以下の手順にしたがい、対処してください。

  1. DSAの状態確認
     スケジューラログからすべてのプロセスが起動されているか確認してください。
     IPCメッセージキュー、メモリ(スワップ)などをチューニングしていないためにDSAが異常終了した可能性があります。マシン、およびDSAのチューニングを実施してください。
     チューニングを実施してもDSAの起動に失敗する場合、「DSA作成ディレクトリ」配下の「Plogs」、「Plogs」、「logs」ファイルを技術員まで送ってください。
  2. LDAPコマンドによる確認
     すべてのプロセスが正常に起動している場合、LDAPコマンドを使用して、DSAにアクセスできるかどうか確認します。
     検索条件については、運用で実際にアクセスする指定を行ってください。LDAPコマンドの詳しい使用方法は、LDAPコマンドを参照してください。

     ldapsearch -D cn=admin -w admin -b "c=jp" "c=*"

    LDAPコマンドでアクセスできるが、アプリケーションでアクセスできない場合、DSAにアクセスする情報に誤りがあります。
     DSA側のアクセスログから、どのような要求を指定しているか再度、確認してください。
     アクセスログよりも詳細な情報が必要な場合、“mtldapd”のトレースレベルを“3”にして再度、DSAにアクセスして、どのような要求を指定しているか確認してください。なお、mtldapd のトレースログの確認方法については、トレース解析を参照してください。

  3. 1)、または2) を実施しても判明できない場合
     「DSA作成ディレクトリ/Elogs」配下と、「DSA作成ディレクトリ/Plogs」配下のファイルを技術員まで送ってください。

     

事例4 検索フィルターにサブストリング指定すると応答時間が遅い場合がある。

【トラブル現象】
 LDAPクライアントから検索フィルターにサブストリングを指定して、検索要求を行うと応答時間が遅い場合がある。

【原因】
 DSAに検索フィルターで指定された属性に対するサブストリング用のインデックスが、作成されていないために検索要求に対する応答時間が遅い可能性があります。

【対処方法】
 サブストリング用のインデックスを作成する必要があります。“Interstage Application Server チューニングガイド 「InfoDirectoryの環境定義」”の“検索時のチューニング”を参照して作成ください。

 

事例5 LDAP検索でページングまたはサーバソートを指定しても期待した結果が通知されない。

【トラブル現象】
 LDAP検索で、ページングとサイズリミット、またはサーバソートとサイズリミットを指定した場合、期待とおりの結果が通知されない。(サイズリミットの値が有効とならない)

【原因】
 LDAPクライアント側でページング、またはサーバソートの指定有無で、DSA側の処理が異なります。
 LDAPクライアント側でページング、またはサーバソートを指定しない場合、サイズリミットの値にしたがって動作します。しかし、ページング、またはサーバソートを指定した場合、LDAPクライアント側で指定したサイズリミットは有効となりません。DSA側のサイズ制限が有効となります(デフォルト値は、1000です)。そのためLDAPクライアント側で期待した結果にならない現象となります。

【対処方法】
 [管理ツール]ウィンドウ → [サーバツール]メニュー → [サーバ管理]ウィンドウ → [データベース]タブ → [ディレクトリコンフィグレーション]ダイアログを開いてください。管理制限のサイズ制限とページ制限のサイズ制限を変更します。詳しくは、“Interstage Application Server チューニングガイド 「InfoDirectoryの環境定義」”の“ページング検索したい場合”を参照してください。

 

事例6 DSAにアクセスするとLDAPエラーコード(0x33 DSA is busy)が通知される。

【トラブル現象】
 DSA内に存在しているエントリを検索しても、LDAPエラーコードとして0x33(DSA is busy)が通知される。

【原因】

 DSA内部で最大同時接続数の制限を超過した可能性があります。

 IPCメッセージキューのチューニングを実施していないため、IPCメッセージキューが枯渇した可能性があります。以下のエラー情報が出力されている場合、本原因であると特定できます。

  1. 「DSA作成ディレクトリ/Elogs」配下に以下の情報が採取されている場合があります。DDTファイルとodse_recovの1セットです。

     − DDTXXXXXXXXXXZ(XXXXXXXXX:GMT日付)
     failing results
     ===============
     
     ip_result C0E
     

  2.  odse_recovファイルを参照して“fault-message:ip_call failure”と“fault-number:3086”というメッセージが出力されていた場合、IPCメッセージキューの枯渇が発生していると判断できます。

     − odse_recov

     MDSA FAULT REPORT: Recoverable error
     process-details: odsmdsa, 0
     report-esn: 347, 2001/05/29 17:37:25, 187
     dsa-version: 1.0
     fault-number: 3086
     fault-location: 10444
     fault-message: ip_call failure
     failing-info:
      SEQ[
      SEQ[
     …
      &0A[00]]
      &AC[
      INT[00]]
      &AD[
      INT[00]]]
     fault-errno: 4 : interrupted system call
     dump file created

  3. odse_fatalファイルを参照して、odsmdsaプロセスで、“fault-location:10175”というメッセージが出力されていた場合、それと同時刻にDDTファイルが存在すれば、IPCメッセージキューの枯渇が発生していると判断できます。

     − odse_fatal
     
     MDSA FAULT REPORT: Fatal error
     process-details: odsmdsa, 0
     report-esn: 347, 2001/05/29 17:37:56, 188
     dsa-version: 1.0
     fault-number: 1798
     fault-location: 10175
     fault-message: Failed to transmit result operation
     failing-result: -1
     failing-info:
      SET[
      &A0[
        SET[]]]
     fault-errno: 4 : interrupted system call
     dump file created

【対処方法】
 “Interstage Application Server チューニングガイド 「InfoDirectoryの環境定義」”を参照して、IPCメッセージキューのチューニングを行ってください。

 

事例7 LDAP検索で、LDAPエラーコード(0x0b Admin limit exceeded)が通知される。(その1)

【トラブル現象】
 LDAP検索で、数万件のエントリがヒットする条件で検索すると、LDAPエラーコード(0x0b Admin limit exceeded)が通知されて検索に失敗する。

【原因】
 MAXAPDUOUT環境変数でチューニング不足の可能性があります。

【対処方法】
 MAXAPDUOUT環境変数は、以下の計算式で算出する必要があります。MAXAPDUOUTは、DAP、またはDSPプロトコルの最大受信プロトコルサイズを設定します。MAXAPDUOUTの単位は、Kバイトです。
 「 MAXAPDUOUT = 1エントリサイズ * 1検索要求でヒットするエントリ数 * 約1.5 」

 各エントリのデータサイズが、ほぼ一定であれば、「1エントリサイズ」は、LDIFファイルで出力したときのデータサイズで計算してください。1エントリサイズの平均値を算出することができない場合、トラフィックログからMAXAPDUOUTに設定すべき最小値を確認することができます。

  1. 全エントリの登録
     LDAPコマンドなどで、全エントリを登録してください。
  2. 全エントリの検索
     DSAに登録されているエントリを全エントリを検索してください。この時、他のLDAPクライアントからのアクセスは、避けてください。(トラフィックログを参照する場合、判断しにくくなります)
  3. トラフィックログのファイル名を確認
     DSA/Tlogs配下で、最新のファイル名を確認してください。
     (例: Traffic.log.20040124-020825)
  4. トラフィックログの表示
     3)で確認したファイル名を指定して、下記のように出力します。ファイルサイズが大きい場合、一時ファイルに格納して確認してください。
     例1. odstlog -p Tlogs/Traffic.log.20040124-020825
     例2. odstlog -p Tlogs/Traffic.log.20040124-020825 > tlog.log
  5. トラフィックログの参照方法
     トラフィックログの末尾から参照して、[EVENT-TYPE: search-op-event]のブロックを参照してください。その中の[apdu-size-out]に設定されている値が、MAXAPDUOUTに設定すべき最小値となります。なお、トラフィックログに記載されている単位は、バイトですので、MAXAPDUOUTには、1000を除算した値を設定してください。下記の例では、MAXAPDUOUTには、1416以上を設定する必要があります。
    MAXAPDUOUTのデフォルト値は、1024 (単位は、Kバイト)です。

EVENT-TYPE: search-op-event
primary-esn: 1, 2004/02/09 21:04:17, 7458
parent-esn: 1, 2004/02/09 21:04:17, 7457
originator: admin
auth-level: 1
service-perms: manager
result-date-time: 2004/02/09 21:04:21
request-outcome: OK
apdu-size-in: 67
apdu-size-out: 1415591
processing: local-processing-only
resource: 3860
service-control-options:
prefer-chaining
dont-dereference-aliases
target-object: root
operation-deadline: 2004/02/09 21:06:17
search-subset: whole-subtree
search-filter:
userid
filter-deepest-level: 1
search-aliases:
all-attributes-selected
info-types: types-and-values
no-extra-attribute-types-selected
num-of-entries: 370
limit-problem: admin-limit-exceeded

 

事例9 LDAP検索で、LDAPエラーコード(0x20 No such object)が通知される。

【トラブル現象】
 LDAP検索で、DSAに対して検索要求を行うが、エントリが1件も該当せずLDAPエラーコード(0x20 No such object)が通知される。

【原因】
 以下の要因が考えられます。

【対処方法】
 LDAP検索のパラメタ、アクセス制御などを見直してください。

 

事例8 LDAP検索で、LDAPエラーコード(0x04 Size limit exceeded)が通知される。

【トラブル現象】
 LDAP検索で、数万件のエントリがヒットする条件で検索すると、LDAPエラーコード(0x04 Size limit exceeded)が通知されて検索に失敗する。

【原因】
 MAXSEARCH環境変数、管理制限(管理ツールのサーバ管理)でチューニング不足の可能性があります。

【対処方法】
 “Interstage Application Server チューニングガイド 「InfoDirectoryの環境定義」”を参照して、MAXSEARCH環境変数、または管理制限のチューニングを行ってください。

 


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

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