A.17 Oracle Internet Directoryに関するトラブルシューティング
A.17.1 問題と解決策
この項では、Oracle Internet Directoryの一般的なエラー・メッセージ、問題点および解決方法について説明します。
この章のトピックは、次のとおりです:
A.17.1.1 インストール時のエラー
この項では、Oracleデータベースのインストール・エラーに関する情報を示します。
Oracle Databaseのインストール時および構成時には、マルチバイト・キャラクタに伴う問題を回避するため、文字セットAL32UTF8を選択することをお薦めします。
A.17.1.2 Oracleデータベース・サーバー・エラー
Oracle Internet DirectoryはOracle Databaseに依存するため、データベース・エラーによりディレクトリ・サーバーの問題が発生することがあります。
この項では、Oracle Internet Directoryのログに表示されるデータベース・エラーを示します。
A.17.1.2.1 Oracle Databaseサーバー接続の停止
Oracle Internet Directoryが停止しています。ログ・ファイルにORA-3113またはORA-3114が記録されています。
問題
Oracle Internet DirectoryのOracle Databaseとの接続が失われています。
解決策
データベースとリスナーのステータスを、これらが稼働しているホストで直接あるいは間接的に確認します。必要に応じて再起動します。OIDMONでデータベースの起動が自動的に検出され、OIDLDAPDサーバーが再起動されます。
A.17.1.2.2 クライアント接続の中断が原因のOracle Databaseサーバー・エラー
エラーsgslunrRead
または30SendPort
が表示されます
問題
これらのエラーは、LDAPクライアントの接続が突然切断されたことを示しています。
考えられる原因は次のとおりです。
-
クライアント・プログラムが、バインド解除や中止を実行せずに、接続を終了した。
クライアントのマシンが停止した。
-
ネットワークのコンポーネント(ロード・バランサやファイアウォールなど)が、構成されたタイムアウト設定が原因で接続を切断した。
-
ネットワークが停止中。
解決策
これらのエラーは、サーバー外部の状況が原因です。必要な場合は、ネットワーク管理者に報告してください。
A.17.1.2.3 スキーマ変更が原因のOracle Databaseサーバー・エラー
エラーORA-1562
が表示されます。
問題
ロールバック・セグメント領域に収まらないスキーマ・コンポーネントを追加しようとすると、このエラーが発生し、変更はコミットされません。
解決策
この問題を解決するには、データベース・サーバーのロールバック・セグメントのサイズを増やします。
A.17.1.2.4 Oracle Database TNSリスナー・エラー(ORA-12520)
問題
Oracleデータベースに接続できないか、データベース接続が停止と復帰を断続的に繰り返し、接続の停止時に次のエラーが返されます。
Error ORA-12520: TNS:listener could not find available handler for requested type of server
この問題の潜在的な原因とその解決方法は次のとおりです。
A.17.1.2.4.1 Oracle DatabaseのPROCESSESパラメータ値が小さい場合のトラブルシューティング
Oracle Databaseに同時に接続できるオペレーティング・システム・プロセスの最大数は、PROCESSESパラメータによって決定します。
この問題が断続的に発生し(つまり、データベース接続が停止と復帰を断続的に繰り返し)、接続の停止時にORA-12520エラーが返される場合、次の手順を使用して問題をトラブルシューティングします。
A.17.1.3 ディレクトリ・サーバーのエラー・メッセージとその原因
この項では、発生する可能性のあるOracleディレクトリ・サーバーのエラー・メッセージを示します。
各メッセージに続いて、そのエラーに関して最も可能性の高い原因が記述されています。『Oracle Fusion Middlewareエラー・メッセージ・リファレンス』のOIDエラー・メッセージに関する項も参照してください。
A.17.1.3.1 不適切な認証エラー
サーバーに対して匿名ユーザーによるバインドを実行しようとすると、コマンド行に次のエラー・メッセージが表示されます。
ldap_bind: Inappropriate authentication ldap_bind: additional info: Server is Configured to Deny Anonymous Binds
問題
匿名バインドが無効になっています。ほとんどの環境では、一部のクライアントのみが匿名アクセスを必要とします。
解決策
匿名ユーザーによるバインドを有効にしてください。
関連項目:
詳細は、「匿名ユーザーによるバインドの管理」を参照してください。
A.17.1.3.2 ユーザーまたはグループを編集したか、レルムを作成したことが原因の制約違反エラー
oidldap*.log
に次のエラーが表示されます。
ORA-01483: invalid length for DATE or NUMBER bind variable.
次のエラーも画面に表示される場合があります。
LDAP: error code 19 - Constraint Violation
これらのエラーは断続的に発生する場合があります。
問題
AL32UTF8文字セットを使用するOracle 10g DatabaseにOracleAS Metadata Repositoryをロードした場合、ユーザーやグループを編集しようとしたり、Oracle Internet Directoryにアイデンティティ管理レルムを作成しようとしたりすると、エラーが発生することがあります。ユーザーの編集には、既存ユーザーの属性を編集する作業も含まれます。
解決策
しばらくしてから、ユーザーをもう一度編集してください。
A.17.1.3.3 Oracleディレクトリ・サーバーから戻される標準エラー・メッセージ
表A-28に、標準エラー・メッセージとその原因を示します。Oracle Internet Directoryは、「ディレクトリ・サーバーのその他のエラー・メッセージ」でリストされ、説明されているメッセージ以外のメッセージも戻します。
表A-28 標準エラー・メッセージ
エラー | 原因 |
---|---|
00: LDAP_SUCCESS |
操作が正常に完了しました。 |
01: LDAP_OPERATIONS_ERROR |
リクエストの処理時に、サーバーで一般的なエラーが発生しました。 |
02: LDAP_PROTOCOL_ERROR |
クライアントのリクエストが、書式、構文などのLDAPプロトコル要件を満たしていませんでした。これは、次のような状況で発生します。サーバーで受信リクエストの解析中にデコード・エラーが発生した場合。リクエストが、エントリへの属性タイプの追加を指定する追加または変更リクエストであるのに、値が指定されていない場合。SSL資格証明の読取りでエラーが発生した場合。不明なタイプの変更操作が指定されている場合(LDAP_MOD_ADD、LDAP_MOD_DELETEおよびLDAP_MOD_REPLACE以外)。検索範囲が不明な場合。 |
03: LDAP_TIMELIMIT_EXCEEDED |
検索時間が指定した制限時間を超えました。検索の制限時間が未指定の場合、Oracle Internet Directoryでは、デフォルトの制限時間である1時間が使用されます。 |
04: LDAP_SIZELIMIT_EXCEEDED |
検索の問合せに一致するエントリが、指定したサイズ制限を超えました。検索のサイズ制限が未指定の場合、Oracle Internet Directoryでは、デフォルトのサイズ制限1000が使用されます。 |
05: LDAP_COMPARE_FALSE |
指定した値は、エントリ内の値と同一ではありません。 |
06: LDAP_COMPARE_TRUE |
指定した値は、エントリ内の値と同一です。 |
07: LDAP_STRONG_AUTH_NOT_SUPPORTED |
リクエストしたバインド方法がサーバーでサポートされていません。たとえば、SASLクライアントがOracle Internet DirectoryによるKerberos認証をリクエストすると、このエラーを受け取ります。 |
09: LDAP_PARTIAL_RESULTS |
サーバーから参照が戻されました。 |
10: LDAP_REFERRAL |
サーバーから参照が戻されました。 |
12: LDAP_UNAVAILABLE_CRITICALEXTENSION |
指定したリクエストはサポートされていません。 |
16: LDAP_NO_SUCH_ATTRIBUTE |
リクエストで指定したエントリ内に、該当する属性は存在していません。 |
17: LDAP_UNDEFINED_TYPE |
指定した属性の型が、スキーマ内で定義されていません。 |
19: LDAP_CONSTRAINT_VIOLATION |
リクエスト内の値が、特定の制約に違反しています。 |
20: LDAP_TYPE_OR_VALUE_EXISTS |
属性に指定した値が重複しています。 |
21: LDAP_INVALID_SYNTAX |
指定された属性構文が無効です。検索のフィルタ構文が無効です。 |
32: LDAP_NO_SUCH_OBJECT |
操作用に指定したベースが存在していません。 |
34: LDAP_INVALID_DN_SYNTAX |
識別名構文にエラーがあります。 |
49: LDAP_INVALID_CREDENTIALS |
資格証明が正しくないため、バインドに失敗しました。 |
50: LDAP_INSUFFICIENT_ACCESS |
クライアントに、この操作を実行するためのアクセス権限がありません。 |
53: LDAP_UNWILLING_TO_PERFORM |
一般的なエラーか、またはサーバーが読取り専用モードです。 |
65: LDAP_OBJECT_CLASS_VIOLATION |
エントリに対する変更が、オブジェクト・クラスの定義に違反しています。 |
66: LDAP_NOT_ALLOWED_ON_NONLEAF |
削除対象のエントリに子エントリがあります。 |
67: LDAP_NOT_ALLOWED_ON_RDN |
相対識別名属性でこの操作は実行できません。たとえば、エントリの相対識別名属性を削除することはできません。 |
68: LDAP_ALREADY_EXISTS |
追加条件が重複しています。 |
81: LDAP_SERVER_DOWN |
ディレクトリ・サーバーと通信できません。このメッセージはSDKから戻されます。 |
82: LDAP_LOCAL_ERROR |
クライアントで内部エラーが発生しました。このメッセージはクライアントのSDKから戻されます。 |
83: LDAP_ENCODING_ERROR |
クライアントで、リクエストをエンコーディングするときにエラーが発生しました。このメッセージはSDKから戻されます。 |
84: LDAP_DECODING_ERROR |
クライアントで、リクエストをデコードするときにエラーが発生しました。このメッセージはSDKから戻されます。 |
85: LDAP_TIMEOUT |
クライアントが、その操作に指定したタイムアウトに達しました。このメッセージはSDKから戻されます。 |
86: LDAP_AUTH_UNKNOWN |
認証方式が、クライアントのSDKで理解されません。 |
87: LDAP_FILTER_ERROR |
検索フィルタが正しくありません |
88: LDAP_USER_CANCELLED |
ユーザーが操作を取り消しました |
89: LDAP_PARAM_ERROR |
LDAPルーチンに対するパラメータが正しくありません |
90: LDAP_NO_MEMORY |
メモリー不足です |
A.17.1.3.4 ディレクトリ・サーバーのその他のエラー・メッセージ
Table A-29に、ディレクトリ・サーバーのその他のエラー・メッセージとその原因を示します。これらのメッセージには、エラー・コードは表示されません。
Oracle Internet Directoryアプリケーションは、次のメッセージの一部に表示されるparameter
タグを適切な実行時の値で置き換えます。
表A-29 その他のエラー・メッセージ
エラー | 原因 |
---|---|
%s属性が見つかりません。 |
特定の属性の型が、スキーマに定義されていません。 |
parameterが属性parameterに見つかりません。 |
値がその属性に見つかりません。(ldapmodify) |
オブジェクト・クラスparameterのスキーマ情報が管理ドメインに含まれていません。 |
リクエストで指定したオブジェクト・クラスが、スキーマに存在していません。 |
クラスの追加に使用したOID parameterは別のクラスで使用されています。 |
指定したオブジェクト識別子が重複しています。(スキーマ変更) |
属性parameterはすでに使用されています。 |
属性名が重複しています。(スキーマ変更) |
属性parameterに構文エラーがあります。 |
属性名の定義に構文エラーがあります。(スキーマ変更) |
属性parameterはこのスキーマでサポートされていません。 |
属性が定義されていません。(すべての操作) |
属性parameterは単一の値です。 |
属性は単一値です。(ldapaddおよびldapmodify) |
属性parameterがエントリに存在していません。 |
エントリに、この属性は存在していません。(ldapmodify) |
属性の定義が正しくありません。。 |
属性の定義に構文エラーがあります。(スキーマ変更) |
現在はサポートされていません |
このバージョンのLDAPリクエストは、このサーバーではサポートされていません。 |
削除対象のエントリが見つかりません。 |
削除操作に指定した識別名が見つかりません。 |
変更対象のエントリが見つかりません。 |
リクエストで指定したエントリが見つかりません。 |
parameterをエントリに追加中にエラーが発生しました。 |
modifyのadd操作が呼び出されたときに戻されました。システム・リソースが使用できないことが原因と考えられます。 |
属性値の暗号化時にエラーが発生しました。 |
ユーザー・パスワードの暗号化時にエラーが発生しました。(すべての操作) |
DNの正規化でエラーが発生しました。 |
指定されたDNが無効です。DNの解析で構文エラーが発生しました。(すべての操作) |
parameter属性のハッシングでエラーが発生しました。 |
属性に対するハッシュ・エントリの作成時にエラーが発生しました。(スキーマ変更) |
parameterオブジェクト・クラスのハッシングでエラーが発生しました。 |
オブジェクト・クラスに対するハッシュ・エントリの作成時にエラーが発生しました。(スキーマ変更) |
スキーマ・ハッシュの作成でエラーが発生しました。 |
スキーマに対するハッシュ表作成時にエラーが発生しました。(スキーマ変更) |
parameterの置換でエラーが発生しました。 |
この属性の置換でエラーが発生しました。(ldapmodify) |
属性parameterに対する値の正規化時にエラーが発生しました。 |
属性に対する値の正規化時にエラーが発生しました。(すべての操作) |
parameterが必須またはオプションの属性リストで見つかりません。 |
指定した属性が、オブジェクト・クラスの要件どおりに、必須属性またはオプション属性のリストに存在していません。 |
この機能は組み込まれていません |
その機能またはリクエストが現在はサポートされていません。(検索で索引付けされていない属性を指定するとこのエラーが生成されることがあります。) |
無効な非同期通信インタフェースはparameterです。 |
リクエストで指定した特定のアクセス制御情報アイテム(ACI)が無効です。 |
必須属性parameterが管理ドメインparameterに定義されていません。 |
未定義の属性を参照しています。(スキーマ変更) |
必須属性が不足しています。。 |
特定のエントリに対する必須属性が、特定のオブジェクト・クラスの要件どおりに存在していません。 |
一致規則parameterが定義されていません。 |
サーバーに一致規則が定義されていません。(スキーマ変更) |
最大接続数に達しました |
LDAPサーバーへの最大同時接続数に達しました。 |
DNを変更せずにエントリの命名属性を変更しようとしています。 |
ldapmodifyを使用して命名属性を変更することはできません。 |
新しい親が見つかりません。 |
識別名の変更操作で指定した新しい親が存在していません。(ldapmodifydn) |
オブジェクトはすでに存在しています。。 |
エントリが重複しています。(ldapaddおよびldapmodifydn) |
オブジェクトID parameterはすでに使用されています。 |
指定したオブジェクト識別子が重複しています。(スキーマ変更) |
オブジェクト・クラスparameterはすでに使用されています。 |
オブジェクト・クラス名が重複しています。(スキーマ変更) |
オブジェクト・クラスの属性が不足しています。 |
この特定のエントリに対するオブジェクト・クラスの属性が不足しています。 |
OID parameterに構文エラーがあります。 |
オブジェクト識別子の定義に構文エラーがあります。(スキーマ変更) |
エントリ内の属性の1つに重複した値があります。 |
作成中のエントリで、同じ属性に対して値を2つ入力しました。 |
parameterでの操作は許可されていません。 |
このエントリでの操作は許可されていません。(変更、追加および削除) |
ディレクトリ・サーバー・エントリでの操作は許可されていません。 |
ディレクトリ・サーバー・エントリで、この操作を行うことはできません。(削除) |
オプション属性parameterが管理ドメインparameterに定義されていません。 |
未定義の属性を参照している可能性があります。(スキーマ変更) |
ディレクトリ内に親のエントリが見つかりません。 |
親エントリが存在していません。(ldapaddおよびldapmodifydn) |
スーパー・オブジェクトparameterが管理ドメインparameterに定義されていません。 |
スーパー・タイプが、存在していないクラスを参照しています。(スキーマ変更) |
スーパー・タイプが未定義です。。 |
スーパー・タイプが存在していません。(スキーマ変更) |
スーパー・ユーザーの追加は許可されていません。 |
スーパーユーザー・エントリを作成できません。(ldapadd) |
構文 parameterが未定義です。 |
構文がサーバーに定義されていません。(スキーマ変更) |
RDNで指定された属性または値がエントリ内に存在していません。 |
相対識別名(RDN)として指定した属性値がエントリ内に存在していません。(ldapadd) |
検索範囲が不明です。 |
LDAPリクエストで指定した検索範囲が認識されません。 |
このバージョンはサポートされていません |
このバージョンのLDAPリクエストは、このサーバーではサポートされていません。 |
別名に問題があります。 |
次のいずれかの問題が発生しました。
|
別名の参照解除に問題があります。 |
アクセス制御上の問題であるため、別名を間接参照できません。 |
該当するオブジェクトがありません。 |
検索リクエストに指定されたベース識別名をサーバーで検索できません。 |
DN構文に誤りがあります。 |
|
不十分なアクセス権限 |
ユーザーが間接参照されたエントリへのアクセス権限を持っていません。 |
A.17.1.4 Oracle Internet Directoryのクラッシュ時のコア・ダンプとスタック・トレース
Oracle Internet Directoryがクラッシュしたときに得られる情報の種類は、インスタンス固有の構成エントリのorclsdumpflag
属性を変更して制御できます。
サーバーがクラッシュした場合、次のディレクトリにコア・ファイルが残されます。
$DOMAIN_HOME/tools/OID/logs
orclsdumpflag
が0
に設定されている場合、サーバーがクラッシュすると、コア・ダンプに加えてスタック・トレースも残されます。スタック・トレースの場所は次のとおりです。
$DOMAIN_HOME/servers/OID/logs/componentName/oidldapd_stack00_pid.dmp
オペレーティング・システム固有の設定によっては、コア・ダンプまたはスタック・トレースの生成が影響を受ける場合があります。オペレーティング・システムのドキュメントで、次の設定が必要かどうかを確認します。
-
コア・ダンプを有効にするために
coredump
パラメータを設定する必要があります。 -
ulimit
コマンドで指定されている最大ファイル・サイズが、コア・ダンプに十分な大きさであることが必要です。 -
$ORACLE_HOME
/bin/oidldapd
のバイナリ・ファイルのファイル権限でグループによる読取りが許可されている必要があります。次のように入力してグループに読取り権限があることを確認できます。chmod g+r $ORACLE_HOME/bin/oidldapd
これはルート・ユーザーで行います。
A.17.1.5 TCP/IPの問題
オペレーティング・システムのTCP/IPの不具合によって、Oracle Internet Directoryサービスに影響が及ぶ場合があります。
A.17.1.5.1 Windows 2003 Server上でサーバーの可用性をモニタリングするときはTCPベースのモニタリングを使用しない
F5ロード・バランサを使用してOracle Internet Directoryサーバーの可用性をモニタリングする場合は、『Oracle Fusion Middleware高可用性ガイド』の高可用性のためのOracle HTTP Serverの構成に関する項を参照して、LDAPベースまたはHTTPベースのモニタリングを使用するようにロード・バランサを構成します。TCPベースのモニタリングを使用すると、Microsoft Windows 2003 Serverのオペレーティング・システム・バグのため、サービスが使用できなくなることがあります。
A.17.1.6 パスワード・ポリシーに関するトラブルシューティング
この項では、パスワード・ポリシーに関連したエラー・メッセージと問題について説明します。
この項には、次の項目が含まれます。
A.17.1.6.1 パスワード・ポリシーが適用されない
パスワード・ポリシーが、特定のユーザーまたは一連のユーザーに適用されていません。たとえば、ユーザーは、定義されているパスワード・ポリシーによって許可されていない構文を使用してパスワードをリセットできます。
問題
パスワード・ポリシーの作成のみでは十分でありません。ポリシーによって管理されるサブツリーも指定する必要があります。
解決策
ポリシーの識別名を指定したpwdPolicysubentry
属性を追加し、サブツリーのルートに移入します。
関連項目:
詳細は、「パスワード・ポリシーの作成および適用」を参照してください。
A.17.1.6.2 パスワード・ポリシーのエラー・メッセージ
表A-30に、パスワード・ポリシー違反が発生した結果、クライアントに送信されるエラー・メッセージを示します。エラー・コードは、標準のLDAPエラー・コードではありません。このエラー・メッセージは、LDAP結果の追加情報の一部として送信されます。
表A-30 パスワード・ポリシー違反のエラー・メッセージ
エラー番号 | 例外 | コメントまたは解消方法 |
---|---|---|
9000 |
|
ユーザー・パスワードが期限切れです。 |
9001 |
|
ユーザー・アカウントがロックされています。 |
9002 |
|
ユーザー・パスワードが |
9003 |
|
ユーザー・パスワードが必要な文字数に達していません。 |
9004 |
|
ユーザー・パスワードに必要な数字が含まれていません。 |
9005 |
|
ユーザー・パスワードがNULLです。これは許可されていません。 |
9006 |
|
ユーザーの新規パスワードが、履歴に保存されている旧パスワードと同じです。これは認められません( |
9007 |
|
入力されたユーザー・パスワードは、 |
9008 |
|
ユーザー・パスワードが期限切れです。ユーザーには、 |
9012 |
|
パスワードには、少なくとも |
9013 |
|
パスワードには、少なくとも |
9014 |
|
パスワードには、少なくとも |
9015 |
|
パスワードには、 |
9016 |
|
パスワードには、少なくとも |
9017 |
|
指定された |
9018 |
|
削除しようとしている |
9019 |
|
|
9020 |
|
パスワードは、少なくとも |
9032 |
|
|
9033 |
|
ルートDSEの |
9034 |
|
ルートOracleコンテキストで定義されたパスワード・ポリシーのみが、ルートDSEで適用できます。(これにより、ディレクトリ全体の権限を持つ管理者が指定したポリシーのみが、ディレクトリ全体に適用できることが保証されます。) |
9050 |
|
ユーザー・アカウントが使用禁止になっています。 |
A.17.1.7 ディレクトリのパフォーマンスに関するトラブルシューティング
この項では、一般的なパフォーマンス関連の問題を解決するための簡単な説明を示します。
次のトピックを参照してください。
A.17.1.7.1 LDAP検索のパフォーマンスが不十分
LDAP検索のパフォーマンスが不十分です。
問題
様々な問題があります。
解決策
次のことを確認します。
-
ODS
ユーザーに関連付けられているスキーマがANALYZED
であること -
複数のフィルタ・オペランドを含む検索の場合は、フィルタの指定順序が、最も特殊な条件から最も一般的な条件の順であることを確認します。たとえば、
&(objectclass=person)(uid=john.doe)
よりも&(uid=john.doe)(objectclass=person)
の方が適切です。
「Oracle Databaseサーバーのパフォーマンス不足の診断」も参照してください。
A.17.1.7.2 LDAP追加または変更のパフォーマンス不足の向上
LDAP追加または変更のパフォーマンスが不十分です。
問題
様々な問題があります
解決策
次のことを確認します。
-
データベースに十分な数のREDOログ・ファイルがあること
-
データベースのUNDO表領域の大きさが十分であること
-
ODS
ユーザーに関連付けられているスキーマがANALYZED
であること
統計を見積もる際には、OIDデータベース統計収集ツールを使用して、様々なデータベースODSスキーマ・オブジェクトを分析することができます。
「ロギングの管理」で説明したトレース機能とデータベース・トレース・イベント10046は、パフォーマンスの問題を診断する際に役立ちます。
関連項目:
OIDデータベース統計収集ツールの使用方法は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のoidstats.sql
コマンド行ツールのリファレンスを参照してください。
検索を最適化する手順は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』のOracle Internet Directoryのパフォーマンス・チューニングに関する項を参照してください
グループ・エントリのパフォーマンスに関する問題の詳細は、http://metalink.oracle.com
にあるMy Oracle Support (以前のMetaLink)のノート243006.1を参照してください
A.17.1.7.3 Oracle Databaseサーバーのパフォーマンス不足の診断
問題
Oracleデータベース・サーバーで、LDAP検索操作時に多くのプロセッサ・リソースが使用されています。
解決策
次の手順を実行します。
A.17.1.7.4 AWRレポートを使用したデータベース・パフォーマンス問題に関するトラブルシューティング
自動ワークロード・リポジトリ(AWR)は、Oracle Databaseに存在する組込みリポジトリです。データベースは、定期的にその重要な統計とワークロード情報のスナップショットを作成し、そのスナップショットをワークロード・リポジトリに格納します。
デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はリポジトリに8日間保存されます。
データベース・パフォーマンス問題の原因となっているコンポーネントとしてOracle Internet Directoryが疑われる場合、次の項の説明に従って、AWRレポートを使用してさらに問題を調査できます。
A.17.1.7.4.2 AWRレポートの分析
AWRレポートを分析するには:
-
「Top 5 Timed Foreground Events」表を確認します。この表には、パフォーマンス問題の原因となる可能性があるイベントの情報が示されます。「Waits」および「Avg wait (ms)」列を確認し、平均待機時間が最大のイベントに注意します。
-
「SQL Statistics」セクションで、「SQL ordered by Elapsed Time」表を確認します。
-
「Elapsed Time per Exec (s)」列の値を確認します。
通常の状況では、問合せは1秒未満で実行される必要があります(表ではミリ秒単位で示されます)。問合せの実行に1秒以上かかっている場合、次のステップで調査する必要があります。
-
最大の「Elapsed Time per Exec (s)」が表示されているイベントについて、「SQL Id」列の下の値をクリックし、実行されたSQL問合せを表示します。
このSQL問合せに
"attrvalue = 'referral'"
などのフィールドが含まれる場合、1つのOracle Internet Directoryインスタンスのみが実行され、他のOracle Internet Directoryプロセスに対する参照が存在しない環境では、問合せの実行をスキップできます。
-
-
環境内に参照エントリが存在しない場合、次のように前の問合せの実行を回避することで、パフォーマンスを向上できます。
-
"cn=dsaconfig,cn=configsets,cn=oracle internet directory"
で、orclskiprefinsql
属性を1に設定し、検索で参照をスキップします。詳細は、「DSA構成エントリの属性」を参照してください。
-
Oracle Internet Directoryを再起動して、変更を有効にします。
-
A.17.1.8 ポート構成に関するトラブルシューティング
Oracle Internet DirectoryディスパッチャがSSLおよび非SSL接続に使用するポートは、次のようにして特定できます。
-
Oracle Enterprise Manager Fusion Middleware ControlでOIDメニューから「ポートの使用状況」を選択します。
-
コマンド行から次を実行します。
oid_instanceStatus(instanceName = 'instance-name')
-
コマンド行から次を実行します。
oidctl connect=oiddb status
A.17.1.9 Oracle Internet Directoryの起動に関するトラブルシューティング
この項では、Oracle Internet Directoryの起動時に起こる可能性のある問題について説明します。
次のトピックを参照してください。
A.17.1.9.1 Oracle Internet Directoryが停止している
問題
Oracle Enterprise Manager Fusion Middleware ControlでOracle Internet Directoryが停止していると表示されます。コマンド
oid_instanceStatus(instanceName = 'instance-name')
で、oidmon
とすべてのoidldapd
プロセスが停止していると示されます。
解決策
oidmon
ログ、$DOMAIN_HOME
/servers/OID/logs/
componentName
および/oidmon-0000.log
nodemanager
ログ、$DOMAIN_HOME
/nodemanager/nodemanager.log
を確認して、oidmonが起動しない原因を特定します。
問題
Oracle Enterprise Manager Fusion Middleware ControlでOracle Internet Directoryが停止していると表示されます。コマンド
oid_instanceStatus(instanceName = 'instance-name')
で、oidmon
は稼働しているがoidldapd
プロセスは停止していると示されます。
解決策
次のログを次に示す順に確認します。
-
oidmon
ログ、$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidmon-0000.log
には、oidmon
がoidldapd
プロセスを起動できない原因の詳細が含まれています。最も一般的な問題は次のとおりです。-
Oracle Databaseに接続できない: Oracleデータベースとリスナーが稼働していることを確認します。
-
2つのノードの時差が250秒より大きい: システム時間を調整します。
-
oidmon
はoidldapd
プロセスの起動を再試行し続けますが、起動に失敗します。デバッグするには、ステップ2を参照してください。
-
-
Oracle Internet Directoryディスパッチャ・ログ、
$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidldapd01-0000.log
には、oidldapd
サーバー・プロセスの起動に失敗した原因に関する情報が含まれています。最も一般的な原因は次のとおりです。-
Oracle Internet Directory用に構成されたポートが空いていない: 次を実行します。
netstat -an | grep oidPort
ポートが空くかどうかを確認します。
-
UNIXまたはLinuxシステムでは、Oracle Internet Directoryは1024未満のポート番号でリスニングするよう構成されています。また、実行可能バイナリ・ファイル
$ORACLE_HOME
/bin/oidldapd
は、root
に所有されておらず、setuid
ビットがセットされていません。 -
oidldapd
ディスパッチャはoidldapd
サーバー・プロセスの生成を続けますが、稼働に失敗します。この場合、UNIXまたはLinuxのps
またはWindowsのタスク・マネージャを使用すると、1つのoidldapd
ディスパッチャ・プロセスが稼働していることがわかる場合があります。
-
-
Oracle Internet Directoryサーバー・ログ、
$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidldapd01s
PID
-0000.log
には、サーバー・プロセスの稼働に失敗した原因に関する情報が含まれています。一般的な問題には、次のようなものがあります。-
Oracle Database接続プールが作成できない: Oracle Databaseの
PROCESSES
パラメータを確認し、必要に応じて値を増やします。 -
Oracle Internet DirectoryがSSLウォレット・ファイルを使用するよう構成されていますが、ファイルにアクセスできません。
-
A.17.1.9.2 Oracle Internet Directoryが読取り専用
問題
Oracle Internet Directoryサーバーが読取り専用モードで起動します。
解決策
これは、通常Oracle Internet Directoryサーバーが、間違ったスキーマに対して起動されたことを表します。確認するには、次の2つのコマンドを入力します。
oidldapd -v
ldapsearch -p oidPort -D cn=orcladmin -q -b "" -s base "objectclass=*" Orcldirectoryversion
これらのコマンドで異なるバージョンが表示される場合、サーバーは読取り専用モードで起動します。
A.17.1.10 クライアント接続の中断が原因のOracle Internet Directoryエラー
この項では、Oracle Internet Directoryでのクライアント接続の中断によるエラーを修正する方法を示します。
次のエラーが戻されます。
ServerDispatcher: sgslufread: Hard error on read, OS error = 110
問題
このエラーは、LDAPクライアントの接続が突然切断されたことを示しています。考えられる原因は次のとおりです。
-
クライアント・マシンがクラッシュしたか、またはクライアント・プログラムがバインド解除や中止を実行せずに接続を終了した。
-
ネットワークのコンポーネント(ロード・バランサやファイアウォールなど)が、アイドル接続タイムアウトなどの構成されたタイムアウト設定が原因で接続を切断した。
-
ロード・バランサが、LDAP pingのかわりにTCP pingを発行した。
解決策
このエラーは、サーバー外部の状況が原因です。必要な場合は、ネットワーク管理者に報告してください。
A.17.1.11 ディレクトリ・サーバーの起動、停止および再起動に関するトラブルシューティング
ディレクトリ・サーバーの起動および停止に関するトラブルシューティングを行うには、関係する各ツールの目的、すべてのツールがどのように連携するか、およびサーバーの起動および停止のプロセス全般について知っておく必要があります。
この項には次のトピックが含まれます:
関連項目:
『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』の「Oracle Internet Directoryのパフォーマンス・チューニング」の章。
A.17.1.11.1 ツールを使用したディレクトリ・サーバー・インスタンスの起動、停止および再起動
次のように入力して、ディレクトリ・サーバー・インスタンスを起動します。
$DOMAIN_HOME/bin/startComponent.sh <instance-name>
OIDCTL
OIDCTLを実行すると、OIDCTLはユーザーODS
としてデータベースに接続します。コマンドで使用するオプションに応じて、ODS.ODS_PROCESS_STATUS
_STATUSという表に行を挿入するか、この表の行を更新します。START
オプションを使用すると、行が挿入されます。STOP
またはRESTART
オプションを使用すると、行が更新されます。
ODS.ODS_PROCESS_STATUS表には次の情報が含まれています。
-
instance
: 一意のインスタンス番号。0から1000の任意の値です。 -
pid
: プロセス識別子。プロセスが起動されると、OIDMONによって更新されます。 -
state
: リクエストされた操作のタイプ。state
の値は次のいずれかです。-
0=停止
-
1=起動
-
2=実行中
-
3=再起動
-
4=停止
-
5=フェイルオーバー済
-
OIDMON
ディレクトリ・サーバー・インスタンスを起動、停止または再起動するには、OIDMONが実行中であることが必要です。このデーモンは、ODS.ODS_PROCESS_STATUS
表のstate
列の値を指定の間隔でチェックします。
state=0
の行が見つかると、pid
を読み取ってプロセスを停止します。state=1
またはstate=4
の行が見つかると、新規プロセスを起動し、pid列を新しいプロセス識別子で更新します。state=2
の行が見つかると、pid
を読み取り、そのpid
を持つプロセスが実行中であることを検証します。実行中でない場合は、新規プロセスを起動し、pid
列を新しいプロセス識別子で更新します。state=3
の行が見つかると、pid
を読み取ってプロセスを停止し、新規プロセスを起動して、それに合せてpid
を更新します。- これが失敗する場合、別のノードにリクエストをプッシュします。
つまり、OIDCTLは、ODS.ODS_PROCESS_STATUS
表の行に対して状態情報の挿入および更新を行います。OIDMONは、その情報を読み取り、指定されたタスクを実行します。
ディレクトリ・サーバーの起動、停止および再起動に関与するプロセスについて
ディレクトリ・サーバーの起動、停止および再起動には、いくつかのプロセスが関与します。OIDMONはその1つです。UNIXでは、OIDMONをoidmon
と呼びます。Microsoft Windows環境では、oidmon.exe
と呼びます。
OIDMONは、インスタンスを開始するため、前出の項で説明されているinstance
列の一意の番号を確認します。次に、Oracle Net Servicesのリスナー・プロセスとは異なる別のプロセス、リスナー/ディスパッチャを開始します。この新しいプロセスの識別子は、pid
列に格納されます。
一方、リスナー/ディスパッチャは、構成設定エントリに定義されたいくつかのサーバー・プロセスを起動します。これらのサーバー・プロセスは、OIDMONではなくリスナー/ディスパッチャによって制御されます。いずれかのプロセスが失敗すると、リスナー/ディスパッチャによって自動的に再起動されます。
リスナー/ディスパッチャとサーバー・プロセスが組み合されて、ディレクトリ・サーバー・インスタンスとなります。UNIXでは、このディレクトリ・サーバー・インスタンスをoidldapd
と呼びます。Microsoft Windowsでは、oidldapd.exe
と呼びます。
つまり、少なくとも3つのプロセスがあり、1つはOIDMON用で、少なくとも2つはディレクトリ・サーバー用です。すべてのプロセスが実行中の場合は、UNIXコンピュータに次のように表示されます。
% ps -ef|grep oid root 12387 12381 0 Mar 28 ? 0:05 oidldapd -i 1 -conf 0 key=811436710 root 12381 1 0 Mar 28 ? 0:10 oidmon start root 13297 1 0 Mar 28 ? 0:14 oidldapd
サーバー情報を取得する別の方法は、次を実行することです。
oidctl connect=oiddb status.
A.17.1.11.2 ディレクトリ・サーバーの起動、停止および再起動に関する問題
この項では、ディレクトリ・サーバーを起動、停止または再起動するときに発生する場合がある問題について説明します。
A.17.1.11.2.1 OIDCTLまたはOIDMONの失敗
OIDCTLまたはOIDMONが正常に動作しない場合は、いくつかの理由が考えられます。
問題
構文が正しくありません
解決策
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のOracle Internet Directory管理ツールに関する項を参照して、正しい構文を使用していることを確認します。OIDCTLを使用する場合の接続オプションの適切な値は、TNS別名(接続文字列)であり、ホスト名などの他の値ではありません。
問題
Oracle Internet Directoryで指定されたデータベースが稼働していません。
Oracle Net Servicesの構成が正しくありません。
解決策
Oracle Internet Directoryで指定されたデータベースとOracle Net Servicesのコンポーネントが正しく構成され、稼働していることを確認します。そのためには、OIDCTLと同じORACLE_HOME
にインストールされているSQL*Plusを使用して、データベースに接続できるかどうかを確認します。ODS
/ods_password
@
tns_alias w
としてログインします(tns_alias
は、OIDCTLのconnect
オプションで使用する場合と同じです)。
問題
oidldapd
ファイルがありません。
解決策
$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidmon-XXXX.log
を参照してください。「No such file or directory
」というメッセージを探してください。この問題を修正するには、実行可能ファイルを置き換えます。
問題
oidldapd
/oiddispd実行可能ファイルの権限が不適切です。
解決策
パート1
この解決方法は、Oracle Internet Directory 11gリリース1 (11.1.1.7.0)より前のリリースに適用されます。
「Exec of OIDLDAPD failed with error 13
」というメッセージを探します。UNIXの場合、$ORACLE_HOME/bin/oidldapd
ファイルには次の権限が必要です。
-rws--x--- 1 root dba 1691802 Jan 20 10:30 oidldapd
権限が正しくない場合は、ルートとして次のように入力します。
cd $ORACLE_HOME/bin chown root:dba oidldapd chmod 0710 oidldapd chmod u+s oidldapd
パート2
この解決方法は、Oracle Internet Directory 11gリリース1 (11.1.1.7.0)リリース以上に適用されます。
「Exec of OIDDISPD failed with error 13
」というメッセージを探します。UNIXの場合、$ORACLE_HOME/bin/oiddispd
ファイルには次の権限が必要です。
-rws--x--- 1 root dba 1691802 Jan 20 10:30 oiddispd
権限が正しくない場合、次のいずれかのオプションを実行できます。
A) rootとして次のコマンドを実行します。
cd $ORACLE_HOME oidRoot.sh
または
B) rootとして次のコマンドを入力します。
cd $ORACLE_HOME/bin chown root:dba oiddispd chmod 0710 oiddispd chmod u+s oiddispd
前の解決方法を適用した後、次のコマンドを使用して、所有権と権限が正しく設定されているかどうかを確認することをお薦めします。
$ORACLE_HOME/bin/ls -al oiddispd
問題
権限が不十分なユーザーとして実行しています。
解決策
これが問題になっていることを確認するには、$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidmon-XXXXX.log
を参照します。
「Permission denied
」または「Open Wallet failed
」というメッセージを探してください。これは、root
またはdba
グループのユーザーとして実行していない場合に発生します。この問題を修正するには、正しいユーザーとして再試行します。
問題
ポートが使用中です。
解決策
次を参照してください
$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidldapd00s
PID
-XXXX.log
。
メッセージ「バインド失敗...」
を確認します。これは、oidldapd
でリスニングするよう構成されているポートが他のプロセスによって使用中であることを示しています。ポートを使用しているプロセスを確認するには、次のように入力します。
netstat -a | grep portNum
必要に応じて、別のポートを使用するようにもう一方のプロセスを再構成するか、configsetを追加して別のポートをリスニングするようにoidladapd
を構成します。デフォルトでは、oidladapd
が2つのポート(SSLポートと非SSLポート)でリスニングすることに注意してください。
問題
クラスタ構成またはOracle Application Server Cluster(Identity Management)構成において、OIDMONは、ローカル・ノードでサーバーを起動できない場合に、クラスタ内の別のノードにそのサーバーをプッシュします。
解決策
oidmon.log
を参照します。「gslsgfrPushServer: Could not start
server
on
NodeA
, trying to start on node
NodeB
」というメッセージを探してください。この問題を修正するには、まずOIDMONがローカル・ノードでサーバーを起動できない理由を特定する必要があります。
問題
Oracle Net Servicesまたはデータベース自体で問題が発生している可能性があります。
解決策
oidmon.log
、oidldapd
xx
.log
(xx
はサーバー・インスタンス番号)を確認します。
ODS.ODS_PROCESS_STATUSの行が欠落しています。
問題
クラスタ構成またはOracle Application Server Cluster(Identity Management)構成において、OIDMONが両方のノードでoidldapd
を正常に起動しましたが、タイムスタンプの相違によりフェイルオーバーを開始しました。
解決策
トレース・ファイルoidldapd
xx
.log
( xx
はインスタンス番号)およびoidldapd
xx
syy
.log
(xx
はインスタンス番号で、yy
はプロセス識別子)を確認します。トレース・ファイルに役立つ情報やMy Oracle Support(以前のMetaLink)ドキュメントへのポインタがない場合は、(1)ディレクトリ・サーバーのプロセスを停止し、(2)古いトレース・ファイルを削除または名前変更して、(3)OIDMONおよびディレクトリ・サーバーを最大デバッグ・レベルの11744051で起動します。トレース・ファイルを取得するには、サーバーを単に再起動するのではなく、最初に停止してから起動する必要があります。新しいトレース・ファイルを確認し、必要に応じて、Oracle Support ServicesによってiTARをロギングし、トレース・ファイルをiTARにアップロードします。
関連項目:
フェイルオーバーの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のoidctl
コマンド行ツールのリファレンスを参照してください。
A.17.1.12 Oracle Internet Directoryレプリケーションに関するトラブルシューティング
この項では、ディレクトリ・レプリケーションの問題について説明します。
この項には次のトピックが含まれます:
A.17.1.12.2 レプリケーションの問題を診断するためのログ・ファイル
レプリケーションの問題を調査するときは、必ずログ・ファイルの内容を確認してください。ログ・ファイルは、$DOMAIN_HOME
/servers/OID/logs/componentName/oidrepld-XXXX.log、oidldapd00-XXXX.log
および$DOMAIN_HOME
/servers/OID/logs/componentName/oidldapd00s
PID
-XXXX.log
(PID
はサーバー・プロセス識別子、XXXX
は0000からorclmaxlogfiles configured
までの数値)です。
レプリケーション・サーバーは複数のデバッグ・レベルをサポートしています。レプリケーションのデバッグを有効にするには、ldapmodify
またはOracle Enterprise Manager Fusion Middleware Controlの「共有プロパティ」、「レプリケーション」タブを使用してレプリケーション構成セットのorcldebuglevel
を変更します。
ノート:
デバッグをオンにすると、レプリケーションのパフォーマンスに影響が出ます。
関連項目:
詳細は、「レプリケーション構成属性の管理」を参照してください。
A.17.1.12.3 レプリケーション・サーバーが起動しない
レプリケーション・サーバーを起動できない場合は、いくつかの問題があります。
問題
oidctl
の構文に誤りがあります
解決策
次の構文を使用してレプリケーション・サーバーを起動します。
oidctl server=oidrepld connect=connect string instance=instance_number \ flags="-h host -p port"
問題
レプリケーション・サーバーを起動するときにコマンド行で指定したホストおよびポートでOracle Internet Directoryが稼働していません。そのため、ターゲットOracle Internet Directoryへの匿名ユーザーによるバインドに失敗しました。
解決策
指定したホストおよびポートでターゲットOracle Internet Directoryが稼働していることを確認します。
問題
レプリケーション・サーバーが、レプリカ・エントリのorclreplicaprimaryurl
またはorclreplicasecondaryurl
属性で指定したホストおよびポートへのバインドを試みていますが、Oracle Internet Directoryは別のホストまたはポートで稼働しています。
解決策
Oracle Internet Directoryを別のホストまたはポートで実行する場合は、次の手順で、レプリカ・エントリのorclreplicasecondaryurl
属性に新しい情報を追加します。
-
変更ファイル
mod.ldif
を準備します。たとえば、ホストをmy.us.example.comに、ポートを4444に変更する場合は、次のように指定します。dn: orclreplicaid=replica_ID, cn=replication configuration changetype: modify add: orclreplicasecondaryurl orclreplicasecondaryurl: ldap://my.us.example.com:4444/
-
次を実行します。
ldapmodify -h host -p port -f mod.ldif
問題
レプリケーション・ウォレット$DOMAIN_HOME
/config/fmwconfig/components/OID/admin/oidpwdr
ORACLE_SID
内のReplBind
資格証明が破損しているか、無効です。つまり、ウォレットに格納されているパスワードと、ディレクトリに格納されているパスワードが同じではないか、ウォレットが存在しません。そのため、レプリケーションのバインドに失敗し、レプリケーション・サーバーがエラーで終了しました。
oidrepld
XX
.log
ファイルに、次のようなメッセージが記録される場合があります。
2005/07/21:11:13:28 * gslrcfdReadReplDnPswd:Error reading repl passwd 2005/07/21:11:13:28 * gslrcfcReadReplConfig:Error found. 2005/07/21:11:13:28 * Failed to read replication configuration information.
解決策
remtool
を使用して、レプリケーション・ウォレット内のレプリケーション・バインドの資格証明を修正するか、Oracle Internet Directoryとレプリケーション・ウォレットを同期させます。
-
remtool -pchgpwd
は、レプリカのレプリケーション識別名のパスワードを変更します。ディレクトリに格納されている現在のレプリケーション識別名パスワードを知っており、ディレクトリに格納されているパスワードとウォレット内の証明を両方変更する場合は、このオプションを使用します。 -
remtool -presetpwd
は、レプリカのレプリケーション識別名のパスワードをリセットします。ディレクトリに格納されている現在のレプリケーション識別名パスワードを知っており、ディレクトリに格納されているパスワードとウォレット内の証明を両方変更する場合は、このオプションを使用します。 -
remtool -pchgwalpwd
は、レプリカのレプリケーション識別名のパスワードをウォレット内でのみ変更します。ディレクトリに格納されているレプリケーション識別名のパスワードは知っているが、ウォレットのパスワードが正しいかどうか不明な場合、またはウォレット・ファイルを作成する必要がある場合に、このオプションを使用してください。
これらすべてのオプションは、ウォレットがまだ存在しない場合に新しいウォレットを作成します。
関連項目:
問題
レプリケーション・サーバーは、一方向認証または双方向認証用に構成されているSSLポートをバインドしようとしています。
解決策
非SSLポートまたは認証なしで構成されているSSLポートを使用するようレプリケーション・サーバーを構成します。別のOracle Internet Directoryサーバー・インスタンスをレプリケーション用に使用できます。
A.17.1.12.4 レプリケーションのブートストラップに関するエラー
レプリケーションのブートストラップで、エラーが発生する場合があります。
問題
一部のネーミング・コンテキストのブートストラップに失敗しました。
解決策
ブートストラップに失敗したネーミング・コンテキストを特定し、oidcmprec
ツールを使用して調整します。その後、コンシューマのレプリカ状態をオンライン・モードに設定して、レプリケーションを再開します。
問題
様々な原因。
解決策
ブートストラップに失敗した原因を特定し、修正します。その後、コンシューマのレプリカ状態をブートストラップ・モードに設定して、ブートストラップを再開します。
解決策
エラーの正確な原因を特定するには、ログ・ファイルoidldapd
xx
.log
を調べます。次の例に示すようなエラー・メッセージを探します。
2004/09/14:12:57:23 * Starting OIDREPLD against dlsun1418:4444... 2004/09/14:12:57:25 * Starting scheduler... 2004/09/14:12:57:26 * Start to BootStrap from supplier=dlsun1418_replica to consumer=dlsun1418_replica2 2004/09/14:12:57:27 * gslrbssSyncDIT:Replicating namingcontext=cn=oraclecontext ...... 2004/09/14:12:58:21 * gslrbssSyncDIT:Sync done successfully for namingctx: cn=oraclecontext, 222 entries matched 2004/09/14:12:58:21 * gslrbssSyncDIT:Replicating namingcontext=cn=joe smith ...... 2004/09/14:12:58:23 * BootStrap failure when adding DN=cn=Joe Smith, server=dlsun1418_replica2,err=Constraint violation. 2004/09/14:12:58:23 * gslrbssSyncDIT:Sync failed for namingctx: cn=joe smith, only 1 entries retrieved 2004/09/14:12:58:23 * gslrbssSyncDIT:Replicating namingcontext=cn=oracleschemaversion ...... 2004/09/14:12:58:25 * gslrbssSyncDIT:Sync done successfully for namingctx: cn=oracleschemaversion, 10 entries matched 2004/09/14:12:58:51 * gslrbsbBootStrap: Failure occurred when bootstrapping 1 out of 3 namingcontext(s) from the supplier
ブートストラップに失敗した原因を特定し、修正します。問題の原因となったネーミング・コンテキストを特定し、oidcmprec
を使用してネーミング・コンテキストの比較および調整を行うことができます。問題が解決したら、Oracle Internet Directoryレプリケーション・サーバーを起動して、再度ブートストラップを開始します。
問題
ブートストラップ中にOracle Internet Directoryサーバーが停止しました。
解決策
サプライヤ側のOracle Internet Directoryサーバーとコンシューマ側のOracle Internet Directoryサーバーが、レプリケーションのブートストラップ中に稼働していることを確認します。
問題
制約違反のため、ブートストラップ対象のエントリの一部をコンシューマ側で適用できません。
解決策
レプリケーションのブートストラップを開始する前に、コンシューマ側のOracle Internet Directoryスキーマがサプライヤ側のOracle Internet Directoryスキーマと同期していることを確認します。LDAPレプリカを追加する場合、remtool
によりコンシューマ・レプリカのOracle Internet Directoryスキーマはサプライヤ・レプリカのOracle Internet Directoryスキーマと必ず同期します。
問題
ブートストラップ中にレプリケーションの不適切なフィルタ処理が行われました。ブートストラップ中に1つ以上の属性をレプリケーションから除外できます。ただし、エントリの必須属性を除外する構成を行った場合、objectclass違反のため、そのエントリをコンシューマ側で適用できません。
解決策
「レプリケーションの設定」のレプリケーション・ネーミング・コンテキスト構成規則に従って、レプリケーションのフィルタ処理を正しく構成します。
LDAPレプリケーションをデバッグする場合、LDAPレプリカの状態をよく理解しておく必要があります。LDAPベースのレプリケーションが構成されている場合、レプリケーション・サーバーは、起動後、ローカル・レプリカからレプリカの状態を読み取ります。レプリケーション・サーバーの動作はローカル・レプリカの状態によって異なります。LDAPレプリケーション・エラーはoidldapd
xx
.log
に記録されます
関連項目:
問題
エントリ数が5000を超えるネーミング・コンテキストのブートストラップに失敗した後、そのレプリケーション・サーバーを再起動すると、次のようなエラー・メッセージがログ・ファイルoidrepld00.log
に出力される場合があります。
2005/04/05:13:21:55 * gslrbssSyncDIT:Replicating namingcontext=dc=com ...... 2005/04/05:15:36:09 * gslrbssSyncDIT:Subtree delete on dc=com failed. Error=DSA is unwilling to perform 2005/04/05:15:36:09 * gslrbssSyncDIT:Sync failed for namingctx: dc=com, only 0 entries retrieved
レプリケーション・サーバーは、ブートストラップ操作時に2つのステップを実行します。まず、コンシューマ側で、ブートストラップが必要なネーミング・コンテキストを削除します。次に、それらのネーミング・コンテキストに属するエントリをサプライヤからコンシューマへコピーします。数千のエントリを含むネーミング・コンテキストをレプリケーション・サーバーが削除すると、非常に大規模なトランザクションが発生します。この大規模なトランザクションに対応するには、UNDO表領域として十分な領域を確保する必要があります。データベースのUNDO表領域の領域が不十分な場合は、ORA-30036エラーが発生します。
解決策
UNDO表領域の領域を追加するようデータベース管理者に依頼します。または、bulkdelete
ツールを使用して必要なネーミング・コンテキストを削除してから、レプリケーション・サーバーを起動します。
A.17.1.12.5 変更がレプリケートされない
変更内容が別のノードにレプリケートされません。
問題
レプリケーション・サーバーの表領域が不足しています。
解決策
サーバー・ログで、次のメッセージを探してください。
OCI Error ORA-1653 : ORA-01653: unable to extend table ODS.ASR_CHG_LOG by 8192 in tablespace OLTS_DEFAULT
表領域を拡張し、表領域が増大し続けている原因を調べます。
問題
ターゲットのOracle Internet Directoryサーバーが停止しています。
解決策
ターゲットのOracle Internet Directoryサーバーを再起動します。
問題
様々な原因
解決策
レプリケーション・サーバーが、マルチマスター・レプリケーションのすべてのノード、および単一マスター・レプリケーションまたはファンアウト・レプリケーションのコンシューマ・ノードで起動していることを確認します。
レプリケーション・ログおよびLDAPログにエラー・メッセージが記録されていないかどうかチェックし、調査が終わったら、エラーの原因を修正します。
関連項目:
remtool
の使用の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のremtool
コマンド行ツールのリファレンスを参照してください。
A.17.1.12.6 レプリケーション操作の停止
問題
レプリカ間でデータがレプリケートされません。OID管理者操作キューのエントリがいずれかのノードに適用された後、実行中のレプリケーション設定作業が停止してしまうことがあります。新規レプリカの追加や削除を行うと問題や障害が発生することもあります。
問題
様々な原因
解決策
http://metalink.oracle.com
にあるMy Oracle Support (以前のMetaLink)で次のノートを参照してください。
ノート171693.1「Resolving Conflicts」
ノート213910.1「Debugging OID Replication when ASR_CHG_LOG Never Gets Populated」
検索ボックスにreplicationなどの語を入力して、Notesを検索できます。
A.17.1.13 変更ログのガベージ・コレクションに関するトラブルシューティング
レプリケーションとOracle Directory Integration Platformはいずれも変更ログを使用して、サプライヤ・ディレクトリの情報をコンシューマ・ディレクトリに伝達します。変更ログはすべてods_chg_log
という表に格納されます。また、レプリケーション変更ログはasr_chg_log
に格納されます。
この項では、変更ログのガベージ・コレクションの際に発生する可能性のある問題について説明します。
問題
ガベージ・コレクションが機能しておらず、Oracle Internet DirectoryがOracle Database 11.2.0.1を使用しています。
解決策
11.2.0.1.3 PSUをデータベースに適用します。
問題
レプリケーションの問題のため、変更ログはパージされません。たとえば、レプリケーション・サーバーが数日間停止した場合、レプリケーションのリカバリで必要になるので、レプリケーション変更ログはパージされません。
解決策
レプリケーションの問題を解決します。「Oracle Internet Directoryレプリケーションに関するトラブルシューティング」を参照してください。
問題
属性orclpurgetargetage
の設定が高過ぎ、サブスクライバ・プロファイルのorclLastAppliedChangeNumber
を更新していない、有効化されているが、アクティブではない変更ログ・サブスクライバが1つ以上あります。変更番号ベースのパージはまだコンシュームされていない変更ログをパージせず、時間ベースのパージは変更ログが十分に古くないためパージしません。
解決策
属性orclpurgetargetage
の値を小さくして、変更ログがより早くパージされるようにしてください。
解決策
非アクティブな変更ログ・サブスクライバを無効にして、変更ログ数ベースで変更ログがパージされるようにします。有効化されているが、アクティブではないサブスクライバ・プロファイルを探すには、次のように入力して、すべてのサブスクライバ・プロファイルのorclLastAppliedChangeNumber
を調べます。
ldapsearch -v -p port -h host -D cn=orcladmin -q \ -b "cn=changelog subscriber,cn=oracle internet directory" \ -s sub "objectclass=orclchangesubscriber" \ orcllastappliedchangenumber orclsubscriberdisable
orclSubscriberDisabled
がゼロで、orclLastAppliedChangeNumber
の値がまったく変化していないエントリを探してください。そのようなエントリが存在し、変更ログのガベージ・コレクタのorclpurgetargetage
がゼロ以上の場合は、orclpurgetargetage
の値を削除します。orclpurgetargetage
が定義されていない場合、またはゼロより小さい場合、別のサブスクライバがorclLastAppliedChangeNumber
を更新していなくても、ガベージ・コレクタはレプリケーション・サーバーによって適用された変更をパージします。
関連項目:
A.17.1.14 動的パスワード・ベリファイアに関するトラブルシューティング
この項では、動的パスワード・ベリファイアのエラー・メッセージのトラブルシューティングを実行する方法を示します。
表A-31に、動的パスワード・ベリファイアのエラー・メッセージとその説明を示します。
表A-31 動的パスワード・ベリファイアのエラー・メッセージ
エラー・コード | 説明 |
---|---|
9022 |
ユーザー・エントリに可逆暗号化パスワードがありません。 |
9023 |
LDAPリクエスト制御で指定した暗号タイプはサポートされていません。 |
9024 |
LDAPリクエスト制御にusernameパラメータがありません。 |
ディレクトリがベリファイアを比較でき、比較の結果がFALSEの場合、ディレクトリは標準エラーLDAP_COMPARE_FALSEをクライアントに送信します。同様に、認証中のユーザーがディレクトリ・エントリを持たない場合、ディレクトリは標準エラーLDAP_NO_SUCH_OBJECTを送信します。
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のパスワード・ベリファイアのスキーマ要素に関する項。
A.17.1.15 Oracle Internet Directoryパスワード・ウォレットに関するトラブルシューティング
Oracle Internet Directoryサーバーには、oidpwdlldap1
とoidpwdr
SID
の2つのパスワード・ウォレットがあります。
oidpwdlldap1
ファイルには、ODSユーザーの識別名およびパスワードが暗号化形式で格納されます。Oracle Internet Directoryサーバーは、起動時に、資格証明を使用してバックエンド・データベースに接続します。
A.17.1.15.1 Oracle Internet Directoryサーバーが起動しない
oidctl
デーモン・プロセスがOracle Internet Directoryサーバー・インスタンスの起動に失敗します。
問題
oidpwdlldap1
ウォレットに格納されているパスワードが、バックエンド・データベースのODSパスワードと同期していません。
解決策
sqlplus
コマンドを使用して、データベースへの接続を再試行します。
sqlplus ods /ods_password@connect_string
接続に成功した場合は、oidpasswd
ツールを使用して正しいパスワードを持つ新規ウォレットを作成することで、ウォレット内のパスワードをODSパスワードと同期させます。たとえば、DOMAIN_HOME
が設定されているのを確認してから、次を入力します。
>> oidpasswd connect=connect_string create_wallet=true
接続に失敗した場合は、データベース管理者としてバックエンド・データベースにログインし、sqlコマンドを使用してODSパスワードを変更する必要があります。
>> alter user ods identified by some_new_password
その後、oidpwdlldap1
を新たに作成して、新規パスワードを格納します。
解決策
Oracle Internet Directoryサーバーの起動を再試行します。
oidpwdr
SID
ファイルには、レプリカ識別名の識別名およびパスワードが暗号化形式で格納されます。Oracle Internet Directoryレプリケーション・サーバーは、起動時に、資格証明を使用してOracle Internet Directoryサーバーに接続します。
レプリケーション・パスワード・ウォレットoidpwdr
SID
の例を次に示します。
/------BEGIN REPL CREDENTIAL:cn=replication dn,orclreplicaid=qdinh-sun_ adeldap,cn=replication configuration----- ezNkZXMtY2JjLXBrY3M1cGFkfQUnaz0TsfzcP0nM1HcHAXchf5mJw+sb4y0bLvvw3RvSg7H S7/WsKJB02fdSGRlmfWAV+6llkRQ26g== -----END REPL CREDENTIAL:cn=replication dn,orclreplicaid=qdinh-sun_ adeldap,cn=replication configuration-----/
A.17.1.15.2 パスワードが同期されない
oidctl
またはwlst
がOracle Internet Directoryサーバー・インスタンスの起動に失敗し、バインドできないというメッセージがレプリケーション・サーバー・ログ・ファイルoidrepld00.log
に記録されます。
問題
oidpwdr
SID
に格納されたレプリカ識別名のパスワードが、Oracle Internet Directoryサーバーのレプリカ識別名のパスワードと同期していません。
解決策
ldapbind
コマンドを使用して、Oracle Internet Directoryサーバー・インスタンスへの接続を試みます。oidpwdr
SID
に格納されているレプリカ識別名とレプリカ識別名のパスワードを指定します。次に例を示します。
>> ldapbind -h host -p port -D "cn=replication dn,orclreplicaid=qdinh-sun_adeldap, cn=replication configuration" -q
接続に成功した場合は、オプション-pchgwalpwd
を指定してremtool
を使用し、oidpwdr
SID
ウォレットのパスワードをリセットでき、これにより、このウォレットのレプリカのみのレプリケーション識別名のパスワードが変更されます。レプリケーション識別名パスワードを覚えていない場合は、オプション-prestpwd
を指定してremtool
を使用し、このパスワードを再設定でき、これにより、レプリカのレプリケーション識別名のパスワードが再設定されます。
レプリケーション・パスワード・ウォレットをリセットした後、start(name='instance-name',type='OID')
コマンドを使用して、レプリケーション・サーバー・インスタンスをもう一度再起動します。
A.17.1.16 bulkloadエラーのトラブルシューティング
次のステップに進む前に、bulkload
がスローしたすべてのエラーを調べ、修正することを強くお薦めします。bulkload
エラーを無視すると、後から深刻な問題が発生する可能性があります。
エラーの原因に関する情報を得るには、デバッグを有効にして(debug=t
)コマンドを実行します。デバッグ情報は、$DOMAIN_HOME
/tools/OID/logs/bulkload.log
およびデータベースのods.ds_ldap_log
表にあります。
大部分のbulkload
エラーは、データ・ロード中または索引作成中に発生します。
問題
bulkload
コマンド行ツールが、データ・ロード中に失敗しました。
解決策
次のいずれかの方法を使用して、ディレクトリをデータ・ロード前の状態にリストアします。
解決策
-
bulkload
recover
オプションの使用 -
bulkload
を起動する前に取ったバックアップからのデータベースのリストア。
問題
bulkload
コマンド行ツールが、索引作成中に失敗しました。
解決策
bulkload.log
を調べます。索引作成失敗の原因となった問題を特定し、修正します。bulkload
にindex
オプションを指定して、再び実行します。
索引エラーの修正に失敗すると、Oracle Internet Directoryの表に重複エントリや重複行が生じる可能性があります。
問題
bulkload
コマンド行ツールが、データベースへの接続切断のために失敗しました。これは、たとえばホストのクラッシュや、Real Application Clustersでのフェイルオーバーが原因で、発生する可能性があります。
解決策
次の手順に従ってください。
-
データベースが正常に再起動したか確認します。
-
bulkload
の起動にcheck="TRUE"
オプションまたはgenerate="TRUE"
オプションのみを使用し、load="TRUE"
オプションを使用しなかった場合は、ステップ3に進んでください。失敗したオプションが
bulkload load="TRUE"
オプションだった場合、データベースを失敗前の状態にリストアする必要があります。どのように行うかは、bulkload load="TRUE"
コマンドを発行する前に、データベースのバックアップを取ったかどうかによって決まります。-
バックアップがある場合は、それを使用して、データベースを
bulkload
コマンドを発行する前の元の状態にリストアします。 -
バックアップがない場合は、
bulkload recover
コマンドを使用して、データベースをbulkload load="TRUE"
コマンド発行前の状態に戻します。
-
-
失敗した
bulkload
コマンドを再発行します。
A.17.1.17 bulkdelete、bulkmodifyおよびldifwriteエラーのトラブルシューティング
次のステップに進む前に、バルク・ツールがスローしたすべてのエラーを調べ、修正することをお薦めします。エラーの原因に関する情報を得るには、デバッグを有効にして(debug=t
)コマンドを実行します。
デバッグ情報は、$DOMAIN_HOME
/tools/OID/logs
の対応するログ・ファイルbulkdelete.log
、bulkmodify.log
またはldifwrite.log
にあります。データベースでは、デバッグ情報はods.ds_ldap_log
表にあります。
問題
bulkdelete
またはbulkmodify
コマンド行ツールが、データベースへの接続切断のために失敗しました。これは、たとえばホストのクラッシュや、Real Application Clustersでのフェイルオーバーが原因で、発生する可能性があります。
解決策
データベースが正常に再起動したか確認します。次に、失敗したbulkdelete
またはbulkmodify
コマンドを再試行します。
A.17.1.18 カタログ・エラーのトラブルシューティング
次のステップに進む前に、バルク・ツールがスローしたすべてのエラーを調べ、修正することをお薦めします。エラーの原因に関する情報を得るには、デバッグを有効にして(debug=t
)コマンドを実行します。
デバッグ情報は、$DOMAIN_HOME
/tools/OID/logs/catalog.log
およびデータベースのods.ds_ldap_log
表にあります。
問題
catalog
コマンド行ツールが、データベースへの接続切断のために失敗しました。これは、たとえばホストのクラッシュや、Real Application Clustersでのフェイルオーバーが原因で、発生する可能性があります。
解決策
データベースが正常に再起動したか確認します。失敗したcatalog
コマンドを再試行します。最初の起動でadd="TRUE"
オプションを使用した場合は、最初のコマンドが部分的に完了しているため、再試行が失敗する可能性があります。再試行が失敗した場合、catalog delete="TRUE"
を使用して属性索引を削除し、コマンドをもう一度再試行します。
問題
ファイル内に1000を超える属性があるため、catalog
コマンドがエラーをスローします。
解決策
1000を超える属性の索引を作成する必要がある場合は、複数のファイルを使用します。
A.17.1.19 remtoolエラーのトラブルシューティング
remtool
問合せはハングすることがあり、その後 その他のツールを使用してサーバーにバインドしようとすると、失敗することがあります。
問題
remtool問合せ
remtool -pdispqstat -v -bind host:port
などがハングします。停止中に、その他のツールを使用してサーバーにバインドしようとしても、失敗する可能性があります。
解決策
パージ待ち状態の変更ログのバックログが大きい場合、remtool
の検索問合せの実行に長時間かかります。変更ログのパージが環境に応じて適切に構成されていることを確認してください。「変更ログのパージの概要」を参照してください。
また、ワーカー・スレッド数を増やし、remtoolによる問合せの実行時にその他のツールでのバインドを可能にすることもできます。インスタンス固有の構成エントリの属性に関する説明および『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』の「Oracle Internet Directoryのパフォーマンス・チューニング」の「Oracle Internet Directory」の章を参照してください。
A.17.1.20 サーバー・チェーン・エラーのトラブルシューティング
この項では、サーバー・チェーン・エラーのトラブルシューティングに関する情報を示します。
問題
ログに、エラー・メッセージServer Chaining error
とjavax.naming.AuthenticationException
が含まれています。
解決策
ODSMで、拡張タブに移動し、「サーバー・チェーン」を展開します。有効になっている各エントリで、「ログイン資格証明の検証」、「ユーザー・コンテナの検証」および「グループ・コンテナの検証」をクリックします。
検証に失敗した場合、入力した値に誤りがないか確認します。問題が解消されない場合、外部ディレクトリ管理者に連絡し、入力した値が正しいかどうかを確認します。
A.17.1.21 バージョン情報の表示
Oracle Internet Directory用のOracle Directory Services Managerホームページで、Oracle Directory Services Manager、Oracle Internet Directoryおよび対応するOracle Databaseのバージョン情報を表示できます。
Oracle Directory Services Managerの使用の詳細は、「Oracle Directory Services Managerの概要」を参照してください。
A.17.1.22 Oracle Enterprise Manager Fusion Middleware ControlおよびWLSTに関するトラブルシューティング
システムに11g リリース1(11.1.1.4.0)のパッチを適用した後、Oracle Enterprise Manager Fusion Middleware ControlおよびWLSTが機能しません。
問題
システムに11g リリース1(11.1.1.4.0)のパッチを適用した後、Oracle Enterprise Manager Fusion Middleware ControlおよびWLSTが機能しません。
解決策
この問題は、SSLサーバー認証を有効にし、パッチ適用前に暗号スイートを構成した場合に発生します。パッチ適用後にこの問題を修正するには、ldapmodify
を使用して、インスタンス固有の構成エントリからorclsslciphersuite
属性を削除します。インスタンス固有のエントリ内のorclsslciphersuite
属性を削除するためのLDIFファイルは、次のとおりです。
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
delete: orclsslciphersuite
コマンドは次のとおりです。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
Oracle Internet Directoryを再起動します。
問題
Oracle Internet Directoryは稼働していますが、Oracle Enterprise Manager Fusion Middleware ControlまたはWLSTを使用してOracle Internet Directoryのパラメータを変更できません。バックエンドOIDに接続できない
というエラー・メッセージが表示される場合があります。
解決策
これは、Oracle Internet Directoryのポート番号が変更されて、サーバーが再起動されていないか、Oracle Internet Directoryのコンポーネント登録が更新されていない場合に起こります。
解決策
これは、レプリケーション・ウィザードの使用時にサーバー認証または相互認証用に構成されたSSLポートを指定した場合に発生します。レプリケーション・ウィザードは、認証なし用に構成されているSSLポートにのみ接続できます。ログインを要求された場合またはノードを指定する場合は、常に、非SSLポートまたは認証なし用に構成されたSSLポートを指定します。
A.17.1.23 Oracle Directory Services Managerに関するトラブルシューティング
この項では、Oracle Directory Services Managerに関する問題を示します。
この項には次のトピックが含まれます:
A.17.1.23.1 Fusion Middleware ControlからODSMを起動できない
問題
Oracle Internet Directoryターゲットの「Oracle Internet Directory」メニューから「Directory Services Manager」を選択し、「データ・ブラウザ」、「スキーマ」、「セキュリティ」または「拡張」を選択して、Oracle Enterprise Manager Fusion Middleware ControlからのOracle Directory Services Managerの起動を試みます。
ODSMは開きません。エラー・メッセージが表示される場合があります。
解決策
これはおそらくインストールの問題です。『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』の新しいWebLogicドメインでのODSMおよびFusion Middleware ControlによるOIDに関する項を参照してください
A.17.1.23.2 複数のNICおよびDHCPが有効な環境でFusion Middleware ControlからODSMを起動できない
問題
Oracle Directory Services ManagerがデプロイされているWebLogic管理対象サーバーで、複数のネットワーク・インタフェース・カード(NIC)があるか、またはDHCPが有効です。Oracle Enterprise Manager Fusion Middleware ControlからのOracle Directory Services Managerの起動が失敗し、404 errors
が返されます。
解決策
Oracle Directory Services ManagerのURL内のIPアドレスまたはホスト名にアクセスできるように、WebLogic Server管理コンソールを使用してWebLogic管理対象サーバーのリスニング・アドレスを変更します。
次のステップを実行します。
- ブラウザを使用して、WebLogic Server管理コンソールにアクセスします。
- WebLogic Server管理コンソールの左ペインで、「ロックして編集」をクリックしてサーバー構成を編集します。
- WebLogic Server管理コンソールの左ペインで、「環境」を展開して「サーバー」を選択します。
- 「サーバーのサマリー」ページで、Oracle Directory Services ManagerがデプロイされているWebLogic管理対象サーバーのリンクをクリックします。
- WebLogic管理対象サーバーの「設定」ページで、「リスニング・アドレス」を、Oracle Directory Services Managerがデプロイされているサーバーのホスト名に更新します。
- 構成を保存するには、「保存」をクリックします。
- 「変更のアクティブ化」をクリックして、サーバー構成を更新します。
A.17.1.23.3 フェイルオーバーの問題の解決
問題
Oracle HTTP Serverを使用してOracle Directory Services Managerのフェイルオーバーを実行する場合、このフェイルオーバーは透過的には行われません。
解決策
問題シーケンスおよびその解決策は次のとおりです。
- Oracle Directory Services Managerは、Oracle HTTP Serverを使用する高可用性アクティブ/アクティブ構成でデプロイされています。
- Oracle HTTP Serverの名前とポート番号を使用してOracle Directory Services Managerページを表示します。
- Oracle Internet Directoryサーバーへ接続します。
- 現在のOracle Directory Services Manager Oracle HTTP Serverホストとポートを介して、Oracle Internet Directoryサーバーを使用します。
- WebLogic Server管理コンソールを使用して、一度に1つずつ管理対象サーバーを停止します。
- Oracle Directory Services Managerページとポート、およびOracle Internet Directoryとの間でこれより前に確立した接続に戻ります。これを行うと、Oracle Directory Services Managerページとの接続を新たに確立することを推奨するメッセージが表示されます。
- Webブラウザでこの問題が発生した場合は、現在のOracle Directory Services Managerページを終了します。
- 新たにWebブラウザ・ページを起動して、同じOracle Directory Services ManagerのOracle HTTP Serverの名前とポートを指定します。
- これより前に使用していたOracle Internet Directoryとの接続を新たに確立します。
ノート:
-
高可用性構成でのOracle Directory Services Managerの詳細は、『Oracle Fusion Middleware高可用性ガイド』のOracle Directory Services Managerの高可用性に関する項を参照してください。
-
Oracle WebLogic ServerクラスタでOracle Directory Services ManagerをサポートするためのOracle HTTP Serverの構成
問題
ODSMが一時的にOracle Internet Directoryとの接続を失い、LDAPサーバーが停止しています。
というメッセージが表示されます。
解決策
ODSMがロード・バランサを介してOracle Internet Directoryに接続している高可用性構成では、あるOracle Internet Directoryのインスタンスから別のインスタンスへのフェイルオーバー時、ODSMはサーバーが停止していると報告します。他の構成では、このメッセージはOracle Internet Directoryが停止され、再起動されたことを示す場合があります。いずれの場合も、接続の再確立にかかる時間はわずかで、再度ログインすることなく続行できます。
問題
ODSMでは、Oracle RACデータベースを使用しているOracle Internet Directoryインスタンスとの接続が一時的に切断されます。ODSMに、メッセージ「Oracleデータベースへのアクセスに失敗しました(Oracleエラー・コード=
errcode
)。」
が表示されることがあります(ここで、errcode
は、3113
、3114
、1092
、28
、1041
または1012
のいずれか1つの値です)。
解決策
このエラーは、Oracle Internet Directoryインスタンスが使用しているOracle Databaseのフェイルオーバー時に起こります。いずれの場合も、接続の再確立にかかる時間はわずかで、再度ログインすることなく続行できます。
A.17.1.23.4 ODSMからエラー・メッセージが表示される
問題
ODSMが、エラー: Posn: -1、サイズ: 0
というエラー・メッセージを表示します。
解決策
このエラーは無視しても問題ありません。これは、通常、Oracle Internet DirectoryがODSM操作のエラーを検出したことを示しています。ODSMがOracle Internet Directoryに接続するために使用するJNDIは、実際のエラー・コードではなく、このエラー・コードを戻すことがあります。Oracle Internet Directoryサーバーのログ・ファイルには、意味のわかりやすいエラー・メッセージがより多く表示されます。
A.17.1.23.5 カーソルがフォーカスを失う
問題
Internet Explorer 7でキーボードのみを使用してODSMにアクセシビリティ・モードでアクセスすると、カーソルがフォーカスを失います。この動作は、次の環境で起こります。
-
ディレクトリにSSL有効モードでアクセスし、サーバー証明書が表示されます。
-
無効なパスワードを入力し、エラー・ダイアログが表示されます。
解決策
[Tab]キーを9回押し、[Enter]キーを押します。
A.17.1.23.6 ODSMの2つ目のポップアップに解決できないエラーが表示される
問題
Oracle Internet Directoryターゲットの「Oracle Internet Directory」メニューから「Directory Services Manager」を選択し、「データ・ブラウザ」、「スキーマ」、「セキュリティ」または「拡張」を選択して、Oracle Enterprise Manager Fusion Middleware ControlからOracle Directory Services Managerを起動できます。
ODSMのようこそ画面を含む新規ブラウザ・ウィンドウがポップアップ表示されます。たとえば、「スキーマ」タブを選択した場合は、ポップアップ・ウィンドウが開き、「スキーマ」ページがロードされます。
ここで、Oracle Internet Directoryターゲットの「Oracle Internet Directory」メニューから「Directory Services Manager」を選択し、「データ・ブラウザ」、「スキーマ」、「セキュリティ」または「拡張」を選択して、Oracle Enterprise Manager Fusion Middleware Controlからの2つ目のODSMの起動を試みたとします。
2つ目のブラウザ・ウィンドウがポップアップし、「解決できないエラーが発生しました。詳細は管理者に連絡してください。」
というエラーが表示されます。
解決策
エラー画面が表示されたときに、ブラウザの戻るボタンをクリックすると、ODSMページに戻ります。
A.17.1.24 ロックされたユーザー・アカウントに関するトラブルシューティング
間違った資格証明(パスワード)を使用してユーザーが複数のldapbind
、ldapcompare
またはldapsearch
操作を実行したために、ユーザー・アカウントがロックされることがあります。そのため、このユーザー・アカウントに依存するアプリケーションは、アカウントがロック解除されるまで正常に動作しない可能性があります。
ユーザー・アカウントをロック解除するには、LDAP操作に対して間違った資格証明を提供している不明なソース(IPアドレス)を最初に特定する必要があります。
この問題の原因となっている不明なソースを検出するステップは、次のとおりです。
-
ロギングを有効にしてすべての
ldapbind
、ldapcompare
およびldapsearch
着信操作を取得するようにデバッグ・レベルを設定します。次の例では、コンポーネント名として
oid1
を使用します。生成されるログ・ファイルは、次のディレクトリに格納されます。$DOMAIN_HOME/servers/OID/logs/componentName
-
次の内容が含まれる
debug.ldif
というファイルを作成します。dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orcldebugflag orcldebugflag: 1 dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orcldebugop orcldebugop: 193
orcldebugflag
を1に設定することで、debug.ldif
ファイルによるデバッグが有効になります。このファイルでは、orcldebugop
フラグを193に設定して、ユーザー・アカウントのロックの原因となっている可能性のある基本操作のldapbind
、ldapcompare
およびldapsearch
操作も記録します。orcldebugop
フラグの設定の詳細は、表24-4を参照してください。 -
ldapmodify
コマンドを使用してLDIFファイルをロードします。次に例を示します。ldapmodify -h oid_host -p oid_port -D cn=orcladmin -p admin_password -f debug.ldif
ロギングの詳細は、「ロギングの管理」を参照してください。
-
-
問題が再発するのを待機してから、次のOracle Internet Directoryサーバー・ログで、
ldapbind
、ldapcompare
およびldapsearch
操作に関する情報を確認します。$DOMAIN_HOME/servers/OID/logs/componentName/oidldap01s*.log
このログの場所で、
oidldap01s*.log
は、oid1
コンポーネントのすべてのサーバー・ログを指定します。詳細は、表24-1を参照してください。これらのログには大量の情報が含まれるため、ファイル全体で
"useraccount"
を検索して関連情報を検出します。一部のシステムでは、grep
コマンドを使用できます。次に例を示します。cd $DOMAIN_HOME/servers/OID/logs/componentName grep -A 5 -B 3 "useraccount" oidldap01s*.log
この例では、
"useraccount"
がロックされているユーザー・アカウントです。一部のシステムでサポートされる-Aおよび-Bオプションは、ユーザー・アカウントの上5行と下3行を返します。たとえば、ロックされているユーザー・アカウントが
faadmin
の場合、次のgrep
コマンドによって関連する行が返されます。grep -A 5 -B 3 "faadmin" oidldap01s*.log
-
grep
コマンドの出力を分析します。例として、次のサンプル出力について検討します。idldapd01s20149-0082.log-[2012-06-26T15:54:45-07:00] [OID] [TRACE:16] [] [OIDLDAPD] [host: adcdk04] [pid: 20149] [tid: 13] [ecid: 004kqVw6GZG2nJK_ITDCif0004up00Nd8Q,0] ServerWorker (REG):[[ oidldapd01s20149-0082.log-BEGIN oidldapd01s20149-0082.log ConnID:40614 mesgID:306 OpID:25 OpName:bind ConnIP:::ffff:10.240.109.21 ConnDN:cn=faadmin,cn=users,dc=us,dc=example,dc=com oidldapd01s20149-0082.log:INFO : gslfbidbDoBind * Version=3 BIND dn="cn=FAAdmin,cn=Users,dc=us,dc=example,dc=com" method=128 oidldapd01s20149-0082.log- ConnId = 40614, op=25, IpAddr=::ffff:10.240.109.21 oidldapd01s20149-0082.log-2012-06-26T15:54:45 * Adding pwdfailuretime in gslsbmApplyModtoEntry() oidldapd01s20149-0082.log-2012-06-26T15:54:45 * INFO:gsleswrASndResult OPtime=4929 micro sec RESULT=49 tag=97 nentries=0 oidldapd01s20149-0082.log-END oidldapd01s20149-0082.log-]]
この出力は、間違った資格証明を使用してLDAP操作を実行しているソースのIPアドレスを示しています。
-
リクエストID (特定のリクエストについて一定): ecid: 004kqVw6GZG2nJK_ITDCif0004up00Nd8Q,0
-
IPアドレス: IpAddr=::ffff:10.240.109.21
-
操作名: OpName:bind
-
バインドDN: BIND dn="cn=FAAdmin,cn=Users,dc=us,dc=example,dc=com"
-
-
前のステップの情報を使用して、問題の原因となっている操作を停止します。
ノート:
複数のLDAP操作がユーザーのロックの原因となっている可能性があるため、引き続きログ・ファイルを検索して、停止する必要のある他の操作のソースを見つけてください。
-
問題の原因となっている操作を停止した後、
orcldebugflag
およびorcldebugop
の値を0に設定してデバッグを無効にできます。-
次の内容が含まれる
debug_disable.ldif
というファイルを作成します。dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orcldebugflag orcldebugflag: 0 dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orcldebugop orcldebugop: 0
-
ldapmodify
コマンドを使用してLDIFファイルをロードします。次に例を示します。ldapmodify -h oid_host -p oid_port -D cn=orcladmin -p admin_password -f debug_disable.ldif
-
A.17.1.25 ポリシー・ストアの移行に関するトラブルシューティング
この項では、ポリシー・ストアの移行に関連するエラーのトラブルシューティングを実行する手順を説明します。
ポリシー・ストアとしてOracle Internet Directoryを使用している場合、Fusion Applications専用環境から共有環境へのポリシーの移行中に、Oracle Internet Directoryに対するOPSS問合せが低速になることが原因で、セキュリティ・ストアの移行の実行が非常に遅くなることがあります。状況によっては、タイムアウトのために移行が失敗する可能性があります。
解決策
OPSS問合せのパフォーマンスを向上させるには、Oracle Internet Directoryのポリシー・ストアに次のチューニング値を設定します。
-
Oracle Databaseチューニング・パラメータ
-
SGA_MAX_SIZE
: 4G以上 -
Oracle Databaseサーバー・プロセス: 500以上
-
-
Oracle Internet Directory属性
-
orclecacheenabled
: 2 (エントリ・キャッシュおよび結果セット・キャッシュの両方が有効) -
orclrscacheattr
- 次のように複数値属性を設定します。orclrscacheattr: orcljaznprincipal orclrscacheattr: orcljaznpermissiontarget orclrscacheattr: orcljpsresourcename orclrscacheattr: uniquemember orclrscacheattr: orcljpsassignee
-
orclecachemaxsize
: 16G以上 -
orclinmemfiltprocess
- 次のように複数値属性を設定します。orclinmemfiltprocess: (orcljpsresourcetypename=taskflowresourcetype) orclinmemfiltprocess: (orcljpsresourcetypename=regionresourcetype
-
A.17.2 追加情報
捜しているトラブルシューティング情報が見つからない場合は、次のリンクにアクセスしてください。
問題のその他の解決方法は、次のサイトを参照してください。
-
My Oracle Support (以前のMetaLink):
http://support.oracle.com
-
Oracle Technology Network (OTN)で参照可能な『Oracle Fusion Middlewareリリース・ノート』のコレクション:
問題の解決方法が見つからない場合は、Oracleにサービス・リクエストを登録してください。
Oracleサポート・サービスが問題のトラブルシューティングを行う際に役立つ、次の情報を用意してください。
-
次の内容を含む問題の発生状況と発生時期の詳細な説明:
-
問題の原因となった可能性のあるコマンド、プロシージャまたは操作。
-
問題を再現可能かどうか。
-
問題の原因が、
ldapsearch
、ldapadd
、ldapmodify
、ldapdelete
などのコマンドを使用して起動できるスタンドアロンの再現可能なLDAP操作であるかどうか。
-
-
Oracle Internet Directoryデバッグ・ログ(次の項を参照)。
A.17.2.1 Oracle Internet Directoryデバッグ・ログ
Oracle Internet Directoryデバッグ・ログは、問題の解決方法を見つける際に役立ちます。
ノート:
-
11.1.1.9.0リリース以降、パフォーマンスの悪いリクエストを別個のアラート・ログ・ファイルでロギングするのに役立つ、アラート・ロギング機能が導入されました。この機能では外れ値を追跡して、通常の診断ログでこうした情報が失われないようにします。スキーマ・キャッシュ・リフレッシュも、これらのアラート・ログ・ファイルの一部として記録されます。
-
12.2.1.3.0リリース以降、アラート・ログ・ファイルにはデータベース・パフォーマンス・メトリックが含まれます。操作の合計時間がDSA構成エントリで定義された
orclmaxlatencylog
よりも大きい場合、すべての操作について、ログ・レベルに関係なくDBロギングが行われます。属性の詳細は、「DSA構成エントリの属性」を参照してください。 -
リクエスト処理の一環として実行される個々のSQLおよびデータベースで費やされた対応する時間は、通常のOIDサーバー診断ファイルに記録されます。
デバッグ・ログは、次のディレクトリに生成されます。
$DOMAIN_HOME/servers/OID/logs/componentName
ここで、componentNameは、Oracle Internet Directoryインスタンスのコンポーネント名です。この項の例では、componentNameとしてoid1
を使用します。
特定の問題に対するOracle Internet Directoryデバッグ・ログを生成するには: