この付録では、Oracle Internet Directoryの実行時またはインストール時に発生する可能性のある一般的な問題について説明します。この章の内容は、次のとおりです。
注意: この付録で言及するOracle Single Sign-OnおよびOracle Delegated Administration ServicesはすべてOracle Single Sign-On 10g(10.1.4.3.0)以上およびOracle Delegated Administration Services 10g(10.1.4.3.0)以上のことです。 |
この項では、Oracle Internet Directoryの一般的なエラー・メッセージ、問題点および解決方法について説明します。この付録には、次の項があります。
第S.1.4項「Oracle Internet Directoryのクラッシュ時のコア・ダンプとスタック・トレースの取得」
第S.1.9項「opmnctlを使用したOracle Internet Directoryコンポーネントの作成に関するトラブルシューティング」
第S.1.15項「Oracle Internet Directoryパスワード・ウォレットに関するトラブルシューティング」
第S.1.24項「Oracle Internet Directoryがポリシー・ストアである場合のパフォーマンス・チューニング」
Oracle Databaseのインストール時および構成時には、マルチバイト・キャラクタに伴う問題を回避するため、キャラクタ・セットAL32UTF8を選択することをお薦めします。
Oracle Internet DirectoryはOracle Databaseに依存するため、データベース・エラーによりディレクトリ・サーバーの問題が発生することがあります。この項では、Oracle Internet Directoryのログに表示されるデータベース・エラーを示します。
Oracle Internet Directoryが停止しています。ログ・ファイルにORA-3113またはORA-3114が記録されています。
問題
Oracle Internet DirectoryのOracle Databaseとの接続が失われています。
解決方法
データベースとリスナーのステータスを、これらが稼働しているホストで直接あるいは間接的に確認します。必要に応じて再起動します。OIDMONでデータベースの起動が自動的に検出され、OIDLDAPDサーバーが再起動されます。
エラーsgslunrRead
または30SendPort
が表示されます。
問題
これらのエラーは、LDAPクライアントの接続が突然切断されたことを示しています。
考えられる原因は次のとおりです。
クライアント・プログラムが、バインド解除や中止を実行せずに、接続を終了した。
クライアントのマシンが停止した。
ネットワークのコンポーネント(ロード・バランサやファイアウォールなど)が、構成されたタイムアウト設定が原因で接続を切断した。
ネットワークが停止中。
解決方法
これらのエラーは、サーバー外部の状況が原因です。必要な場合は、ネットワーク管理者に報告してください。
この項では、発生する可能性のあるOracleディレクトリ・サーバーのエラー・メッセージを示します。各メッセージに続いて、そのエラーに関して最も可能性の高い原因が記述されています。『Oracle Fusion Middleware Error Messages Reference』も参照してください。
サーバーに対して匿名ユーザーによるバインドを実行しようとすると、コマンドラインに次のエラー・メッセージが表示されます。
ldap_bind: Inappropriate authentication ldap_bind: additional info: Server is Configured to Deny Anonymous Binds
問題
匿名バインドが無効になっています。ほとんどの環境では、一部のクライアントのみが匿名アクセスを必要とします。
解決方法
匿名ユーザーによるバインドを有効にしてください。
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にアイデンティティ管理レルムを作成しようとしたりすると、エラーが発生することがあります。ユーザーの編集には、既存ユーザーの属性を編集する作業も含まれます。
解決方法
しばらくしてから、ユーザーをもう一度編集してください。
表S-1に、標準エラー・メッセージとその原因を示します。Oracle Internet Directoryは、第S.1.3.4項「ディレクトリ・サーバーのその他のエラー・メッセージ」でリストされ、説明されているメッセージ以外のメッセージも戻します。
表S-1 標準エラー・メッセージ
エラー | 原因 |
---|---|
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 |
メモリー不足です。 |
表S-2に、ディレクトリ・サーバーのその他のエラー・メッセージとその原因を示します。これらのメッセージには、エラー・コードは表示されません。
Oracle Internet Directoryアプリケーションは、次のメッセージの一部に表示されるparameter
タグを適切な実行時の値で置き換えます。
表S-2 その他のエラー・メッセージ
エラー | 原因 |
---|---|
%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構文に誤りがあります。 |
|
不十分なアクセス権限 |
ユーザーが間接参照されたエントリへのアクセス権限を持っていません。 |
Oracle Internet Directoryがクラッシュしたときに得られる情報の種類は、インスタンス固有の構成エントリのorclsdumpflag
属性を変更して制御できます。
サーバーがクラッシュした場合、次のディレクトリにコア・ファイルが残されます。
ORACLE_INSTANCE/diagnostics/logs/OID
orclsdumpflag
が0
に設定されている場合、サーバーがクラッシュすると、コア・ダンプに加えてスタック・トレースも残されます。スタック・トレースの場所は次のとおりです。
ORACLE_INSTANCE/diagnostics/logs/OID/compName/oidldapd_stack00_pid.dmp
オペレーティング・システム固有の設定によっては、コア・ダンプまたはスタック・トレースの生成が影響を受ける場合があります。オペレーティング・システムのドキュメントで、次の設定が必要かどうかを確認します。
コア・ダンプを有効にするためにcoredump
パラメータを設定する必要があります。
ulimit
コマンドで指定されている最大ファイル・サイズが、コア・ダンプに十分な大きさであることが必要です。
ORACLE_HOME
/bin/oidldapd
のバイナリ・ファイルのファイル権限でグループによる読取りが許可されている必要があります。次のように入力してグループに読取り権限があることを確認できます。
chmod g+r $ORACLE_HOME/bin/oidldapd
これはルート・ユーザーで行います。
オペレーティング・システムのTCP/IPの不具合によって、Oracle Internet Directoryサービスに影響が及ぶ場合があります。
F5ロード・バランサを使用してOracle Internet Directoryサーバーの可用性を監視する場合は、『Oracle Fusion Middleware高可用性ガイド』のOracleASクラスタ(アイデンティティ管理)用のロード・バランサの構成に関する説明を参照して、LDAPベースまたはHTTPベースの監視を使用するようにロード・バランサを構成します。TCPベースの監視を使用すると、Microsoft Windows 2003 Serverのオペレーティング・システム・バグのため、サービスが使用できなくなることがあります。
この項では、パスワード・ポリシーに関連したエラー・メッセージと問題について説明します。
パスワード・ポリシーが、特定のユーザーまたは一連のユーザーに適用されていません。たとえば、ユーザーは、定義されているパスワード・ポリシーによって許可されていない構文を使用してパスワードをリセットできます。
問題
パスワード・ポリシーの作成のみでは十分でありません。ポリシーによって管理されるサブツリーも指定する必要があります。
解決方法
ポリシーの識別名を指定したpwdPolicysubentry
属性を追加し、サブツリーのルートに移入します。
表S-3に、パスワード・ポリシー違反が発生した結果、クライアントに送信されるエラー・メッセージを示します。エラー・コードは、標準のLDAPエラー・コードではありません。このエラー・メッセージは、LDAP結果の追加情報の一部として送信されます。
表S-3 パスワード・ポリシー違反のエラー・メッセージ
エラー番号 | 例外 | コメントまたは解消方法 |
---|---|---|
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 |
|
ユーザー・アカウントが使用禁止になっています。 |
この項では、一般的なパフォーマンス関連の問題を解決するための簡単な説明を示します。
問題
様々な問題があります。
解決方法
次のことを確認してください。
ODS
ユーザーに関連付けられているスキーマがANALYZED
であること
複数のフィルタ・オペランドを含む検索の場合は、フィルタの指定順序が、最も特殊な条件から最も一般的な条件の順であることを確認します。たとえば、&(objectclass=person)(uid=john.doe)
よりも&(uid=john.doe)(objectclass=person)
の方が適切です。
問題
様々な問題があります。
解決方法
次のことを確認してください。
データベースに十分な数のREDOログ・ファイルがあること
データベースのUNDO表領域の大きさが十分であること
ODS
ユーザーに関連付けられているスキーマがANALYZED
であること
統計を見積もる際には、OIDデータベース統計収集ツールを使用して、様々なデータベースODSスキーマ・オブジェクトを分析することができます。
第24章「ロギングの管理」で説明したトレース機能とデータベース・トレース・イベント10046は、パフォーマンスの問題を診断する際に役立ちます。
関連項目: OIDデータベース統計収集ツールの使用方法は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の 検索を最適化する手順は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』の「Oracle Internet Directory」の章を参照してください。 グループ・エントリのパフォーマンスに関する問題の詳細は、 |
問題
Oracle データベース・サーバーで、LDAP検索操作時に多くのプロセッサ・リソースが使用されています。
解決方法
次のようにします。
次を実行して、プロセッサ使用率の高いLDAP操作を特定します。
oidctl connect=connstr status -diag
このコマンドでLDAP操作と、これに対応して実行されるSQLが表示されます。
この種の問合せに対してデータベースを適切にチューニングします。『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』の「Oracle Internet Directory」の章を参照してください。
可能なら、アプリケーションの検索シグネチャを変更します。不可能な場合は、Oracle Internet Directory属性orclinmemfiltprocess
をチューニングします。『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』の「Oracle Internet Directory」の章を参照してください。
Oracle Internet DirectoryディスパッチャがSSLおよび非SSL接続に使用するポートは、次のようにして特定できます。
Oracle Enterprise Manager Fusion Middleware ControlでOIDメニューから「ポートの使用状況」を選択します。
コマンドラインから次を実行します。
ORACLE_INSTANCE/bin/opmnctl status -l
コマンドラインから次を実行します。
oidctl connect=oiddb status
問題
コマンドopmnctl createcomponent
が失敗し、ファイルORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn/provision.log
に次のエラーが表示されます。
INFO: $ORACLE_INSTANCE/config/tnsnames_copy.ora file does not exist
解決方法
次の条件を満たしていることを確認します。
ファイルORACLE_INSTANCE
/config/tnsnames_copy.ora
が存在しています。
OIDDB
connectStringがORACLE_INSTANCE
/config/tnsnames.ora
にあります。
ORACLE_INSTANCE
/config/OPMN/opmn/opmn.xml
のOIDスニペットのconnectStringが、ORACLE_INSTANCE
/config/tnsnames.ora
のものと同じです。デフォルトはOIDDB
です。
次に、opmnctl createcomponent
を再試行します。
この項では、Oracle Internet Directoryの起動時に起こる可能性のある問題について説明します。
問題
Oracle Enterprise Manager Fusion Middleware ControlでOracle Internet Directoryが停止していると表示されます。コマンド
opmnctl status
で、oidmon
とすべてのoidldapd
プロセスが停止していると示されます。
解決方法
OPMNログORACLE_HOME
/opmn/logs/opmn.log
で、oidmonが起動しない理由を確認します。
問題
Oracle Enterprise Manager Fusion Middleware ControlでOracle Internet Directoryが停止していると表示されます。コマンド
opmnctl status
で、oidmon
は稼働しているがoidldapd
プロセスは停止していると示されます。
解決方法
次のログを次に示す順に確認します。
oidmon
ログORACLE_INSTANCE
/diagnostics/logs/OID/
componentName
/oidmon-0000.log
には、oidmon
がoidldapd
プロセスを起動できない原因の詳細が含まれています。最も一般的な問題は次のとおりです。
Oracle Databaseに接続できない: Oracleデータベースとリスナーが稼働していることを確認します。
2つのノードの時差が250秒より大きい: システム時間を調整します。
oidmon
はoidldapd
プロセスの起動を再試行し続けますが、起動に失敗します。デバッグするには、手順2を参照してください。
Oracle Internet Directoryディスパッチャ・ログORACLE_INSTANCE
/diagnostics/logs/OID/
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
ディスパッチャ・プロセスが稼働していることがわかる場合があります。デバッグするには、手順3を参照してください。
Oracle Internet Directoryサーバー・ログORACLE_INSTANCE
/diagnostics/logs/OID/
componentName
/oidldapd01s
PID
-0000.log
には、サーバー・プロセスの稼働に失敗した原因に関する情報が含まれています。一般的な問題は次のとおりです。
Oracle Database接続プールが作成できない: Oracle DatabaseのPROCESSES
パラメータを確認し、必要に応じて値を増やします。
Oracle Internet DirectoryがSSLウォレット・ファイルを使用するよう構成されていますが、ファイルにアクセスできません。
問題
Oracle Internet Directoryサーバーが読取り専用モードで起動します。
解決方法
これは、通常Oracle Internet Directoryサーバーが、間違ったスキーマに対して起動されたことを表します。確認するには、次の2つのコマンドを入力します。
oidldapd -v
ldapsearch -p oidPort -D cn=orcladmin -q -b "" -s base "objectclass=*" Orcldirectoryversion
これらのコマンドで異なるバージョンが表示される場合、サーバーは読取り専用モードで起動します。
ディレクトリ・サーバーの起動および停止に関するトラブルシューティングを行うには、関係する各ツールの目的、すべてのツールがどのように連携するか、およびサーバーの起動および停止のプロセス全般について知っておく必要があります。
関連項目: 『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』の「Oracle Internet Directory」の章 |
次のように入力して、ディレクトリ・サーバー・インスタンスを起動します。
opmnctl startproc process-type=OID opmnctl stopproc process-type=OID
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=フェイルオーバー済
注意: OPMNがディレクトリ・サーバーを停止した場合、stateの値は当初4(シャットダウン)です。ただし、OPMNが再度ディレクトリ・サーバーを起動すると、stateの値は2(実行中)になります。 |
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.
この項では、ディレクトリ・サーバーを起動、停止または再起動するときに発生する場合がある問題について説明します。
OIDCTLまたはOIDMONが正常に動作しない場合は、いくつかの理由が考えられます。
問題
構文が正しくありません。
解決方法
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のOracle Internet Directory管理ツールに関する章を参照して、正しい構文を使用していることを確認します。OIDCTLを使用する場合の接続オプションの適切な値は、TNS別名(接続文字列)であり、ホスト名などの他の値ではありません。http://metalink.oracle.com
にあるMy Oracle Support(以前のMetaLink)のNote 155790.1を参照してください。
問題
Oracle Internet Directoryで指定されたデータベースが稼働していません。
Oracle Net Servicesの構成が正しくありません。
解決方法
Oracle Internet Directoryで指定されたデータベースとOracle Net Servicesのコンポーネントが正しく構成され、稼働していることを確認します。そのためには、OIDCTLと同じORACLE_HOME
にインストールされているSQL*Plusを使用して、データベースに接続できるかどうかを確認します。ODS
/ods_password
@
tns_alias
としてログインします(tns_alias
は、OIDCTLのconnect
オプションで使用する場合と同じです)。http://metalink.oracle.com
にあるMy Oracle Support(以前のMetaLink)のNote 155790.1を参照してください。
問題
oidldapd
ファイルがありません。
解決方法
$ORACLE_INSTANCE
/diagnostics/logs/OID/
componentName
/oidmon-XXXX.log
を参照してください。「No such file or directory
」というメッセージを探してください。この問題を修正するには、実行可能ファイルを置き換えます。
問題
oidldapd
実行可能ファイルの権限が不適切です。
解決方法
「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
問題
権限が不十分なユーザーとして実行しています。
解決方法
これが問題になっていることを確認するには、ORACLE_INSTANCE
/diagnostics/logs/ OID/
componentName
/oidmon-XXXXX.log
を参照します。
「Permission denied
」または「Open Wallet failed
」というメッセージを探してください。これは、root
またはdba
グループのユーザーとして実行していない場合に発生します。この問題を修正するには、正しいユーザーとして再試行します。
問題
ポートが使用中です。
解決方法
次を参照してください。
ORACLE_INSTANCE
/diagnostics/logs/ OID/
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にアップロードします。http://metalink.oracle.com
にあるMy Oracle Support(以前のMetaLink)のNote 155790.1を参照してください。
関連項目: フェイルオーバーの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の |
この項では、ディレクトリ・レプリケーションの問題について説明します。
レプリケーションの問題を調査するときは、必ずログ・ファイルの内容を確認してください。ログ・ファイルは、ORACLE_INSTANCE
/diagnostics/logs/OID/
componentName
/oidrepld-XXXX.log、oidldapd00-XXXX.log
およびORACLE_INSTANCE
/diagnostics/logs/OID/
componentName
/oidldapd00s
PID
-XXXX.log
(PID
はサーバー・プロセス識別子で、XXXX
は0000からorclmaxlogfiles configured
の番号)です。
レプリケーション・サーバーは複数のデバッグ・レベルをサポートしています。レプリケーションのデバッグを有効にするには、ldapmodify
またはFusion Middleware Controlの「共有プロパティ」、「レプリケーション」タブを使用してレプリケーション構成セットのorcldebuglevel
を変更します。
注意: デバッグをオンにすると、レプリケーションのパフォーマンスに影響が出ます。 |
ブートストラップの失敗
レプリケーションのブートストラップ・プロセス中に、参照整合性を無効にします。参照整合性が有効になると、ブートストラップは失敗します。
レプリケーション・サーバーを起動できない場合は、いくつかの問題があります。
問題
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
問題
レプリケーション・ウォレットORACLE_INSTANCE
/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サーバー・インスタンスをレプリケーション用に使用できます。
問題
Oracle Application ServerツールRepCAを使用して、Oracle Internet Directoryスキーマを既存のOracle 10.1.0.3 Databaseにロードする場合、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/repca*log
ファイルに次のようなエラー・メッセージが出力されることがあります。
SP2-0332: Cannot create spool file.
解決方法
このエラー・メッセージは無視してかまいません。
レプリケーションのブートストラップで、エラーが発生する場合があります。
問題
一部のネーミング・コンテキストのブートストラップに失敗しました。
解決方法
ブートストラップに失敗したネーミング・コンテキストを特定し、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違反のため、そのエントリをコンシューマ側で適用できません。
解決方法
第40章「レプリケーションの設定」のレプリケーション・ネーミング・コンテキスト構成規則に従って、レプリケーションのフィルタ処理を正しく構成します。
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
ツールを使用して必要なネーミング・コンテキストを削除してから、レプリケーション・サーバーを起動します。
問題
レプリケーション・サーバーの表領域が不足しています。
解決方法
サーバー・ログで、次のメッセージを探してください。
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サーバーを再起動します。
問題
様々な原因
解決方法
レプリケーション・サーバーが、マルチマスター・レプリケーションのすべてのノード、および単一マスター・レプリケーションまたはファンアウト・レプリケーションのコンシューマ・ノードで起動していることを確認します。
Oracle Databaseアドバンスト・レプリケーション・ベースのマルチマスター・レプリケーションでは、remtool
を使用して問題を診断し、修正します。
remtool -asrverify
は、DRGの設定が正しいかどうかを検証し、問題を報告します。
remtool -asrrectify
は、DRGの設定が正しいかどうかを検証し、問題を報告して、問題の修正を試みます。
レプリケーション・ログおよびLDAPログにエラー・メッセージが記録されていないかどうかチェックし、調査が終わったら、エラーの原因を修正します。
関連項目:
|
問題
レプリカ間でデータがレプリケートされません。OID管理者操作キューのエントリがいずれかのノードに適用された後、実行中のレプリケーション設定作業が停止してしまうことがあります。新規レプリカの追加や削除を行うと問題や障害が発生することもあります。
問題
様々な原因
解決方法
http://metalink.oracle.com
にあるMy Oracle Support(以前のMetaLink)で次のNoteを参照してください。
Note 171693.1「Resolving Conflicts」
Note 122039.1「Troubleshooting Basics for Advanced Replication」
Note 213910.1「Debugging OID Replication when ASR_CHG_LOG Never Gets Populated」
検索ボックスにreplicationなどの語を入力して、Notesを検索できます。
レプリケーションと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
を更新していなくても、ガベージ・コレクタはレプリケーション・サーバーによって適用された変更をパージします。
表S-4に、動的パスワード・ベリファイアのエラー・メッセージとその説明を示します。
表S-4 動的パスワード・ベリファイアのエラー・メッセージ
エラー・コード | 説明 |
---|---|
9022 |
ユーザー・エントリに可逆暗号化パスワードがありません。 |
9023 |
LDAPリクエスト制御で指定した暗号タイプはサポートされていません。 |
9024 |
LDAPリクエスト制御にusernameパラメータがありません。 |
ディレクトリがベリファイアを比較でき、比較の結果がFALSEの場合、ディレクトリは標準エラーLDAP_COMPARE_FALSEをクライアントに送信します。同様に、認証中のユーザーがディレクトリ・エントリを持たない場合、ディレクトリは標準エラーLDAP_NO_SUCH_OBJECTを送信します。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の「パスワード・ベリファイアのスキーマ要素」の章 |
Oracle Internet Directoryサーバーには、oidpwdlldap1
とoidpwdr
SID
の2つのパスワード・ウォレットがあります。
oidpwdlldap1
ファイルには、ODSユーザーの識別名およびパスワードが暗号化形式で格納されます。Oracle Internet Directoryサーバーは、起動時に、資格証明を使用してバックエンド・データベースに接続します。
oidctl
またはopmn
がOracle Internet Directoryサーバー・インスタンスの起動に失敗します。
問題
oidpwdlldap1
ウォレットに格納されているパスワードが、バックエンド・データベースのODSパスワードと同期していません。
解決方法
sqlplus
コマンドを使用して、データベースへの接続を再試行します。
sqlplus ods /ods_password@connect_string
接続に成功した場合は、oidpasswd
ツールを使用して正しいパスワードを持つ新規ウォレットを作成することで、ウォレット内のパスワードをODSパスワードと同期させます。たとえば、ORACLE_INSTANCE
が設定されているのを確認してから、次を入力します。
>> 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-----/
oidctl
またはopmn
が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
を使用し、このパスワードを再設定でき、これにより、レプリカのレプリケーション識別名のパスワードが再設定されます。
レプリケーション・パスワード・ウォレットをリセットした後、opmnctl
を使用して、レプリケーション・サーバー・インスタンスをもう一度再起動します。
次の手順に進む前に、bulkload
がスローしたすべてのエラーを調べ、修正することを強くお薦めします。bulkload
エラーを無視すると、後から深刻な問題が発生する可能性があります。
エラーの原因に関する情報を得るには、デバッグを有効にして(debug=t
)コマンドを実行します。デバッグ情報は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/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
コマンドを再発行します。
次の手順に進む前に、バルク・ツールがスローしたすべてのエラーを調べ、修正することをお薦めします。エラーの理由の詳細を取得するには、デバッグを有効にしてコマンドを実行します(debug=t
)。デバッグ情報は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/
の対応するログ・ファイルbulkdelete.log
、bulkmodify.log
またはldifwrite.log
にあります。データベースでは、デバッグ情報はods.ds_ldap_log
表にあります。
問題
bulkdelete
またはbulkmodify
コマンドライン・ツールが、データベースへの接続切断のために失敗しました。これは、たとえばホストのクラッシュや、Real Application Clustersでのフェイルオーバーが原因で、発生する可能性があります。
解決方法
データベースが正常に再起動したか確認します。次に、失敗したbulkdelete
またはbulkmodify
コマンドを再試行します。
次の手順に進む前に、バルク・ツールがスローしたすべてのエラーを調べ、修正することをお薦めします。エラーの理由の詳細を取得するには、デバッグを有効にしてコマンドを実行します(debug=t
)。デバッグ情報は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/catalog.log
およびデータベースのods.ds_ldap_log
表にあります。
問題
catalog
コマンドライン・ツールが、データベースへの接続切断のために失敗しました。これは、たとえばホストのクラッシュや、Real Application Clustersでのフェイルオーバーが原因で、発生する可能性があります。
解決方法
データベースが正常に再起動したか確認します。失敗したcatalog
コマンドを再試行します。最初の起動でadd="TRUE"
オプションを使用した場合は、最初のコマンドが部分的に完了しているため、再試行が失敗する可能性があります。再試行が失敗した場合、catalog delete="TRUE"
を使用して属性索引を削除し、コマンドをもう一度再試行します。
問題
ファイル内に1000を超える属性があるため、catalog
コマンドがエラーをスローします。
解決方法
1000を超える属性の索引を作成する必要がある場合は、複数のファイルを使用します。
問題
remtool -pdispqstat -v -bind host:port
などがハングします。停止中に、その他のツールを使用してサーバーにバインドしようとしても、失敗する可能性があります。
解決方法
パージ待ち状態の変更ログのバックログが大きい場合、remtool
の検索問合せの実行に長時間かかります。変更ログのパージが環境に応じて適切に構成されていることを確認してください。「変更ログのパージ」を参照してください。
また、ワーカー・スレッド数を増やし、remtoolによる問合せの実行時にその他のツールでのバインドを可能にすることもできます。『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』のインスタンス固有の構成エントリの属性に関する説明および「Oracle Internet Directory」の章を参照してください。
問題
ログに、エラー・メッセージServer Chaining error
とjavax.naming.AuthenticationException
が含まれています。
解決方法
ODSMで、拡張タブに移動し、「サーバー・チェーン」を展開します。有効になっている各エントリで、「ログイン資格証明の検証」、「ユーザー・コンテナの検証」および「グループ・コンテナの検証」をクリックします。
検証に失敗した場合、入力した値に誤りがないか確認します。問題が解消されない場合、外部ディレクトリ管理者に連絡し、入力した値が正しいかどうかを確認します。
Oracle Internet Directory用のOracle Directory Services Managerホームページで、Oracle Directory Services Manager、Oracle Internet Directoryおよび対応するOracle Databaseのバージョン情報を表示できます。Oracle Directory Services Managerの使用の詳細は、「Oracle Directory Services Managerの使用」を参照してください。
問題
システムに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
「opmnctlを使用したOracle Internet Directoryサーバーの再起動」の説明に従って、Oracle Internet Directoryを再起動します。
問題
Oracle Internet Directoryは稼働していますが、Oracle Enterprise Manager Fusion Middleware ControlまたはWLSTを使用してOracle Internet Directoryのパラメータを変更できません。バックエンドOIDに接続できない
というエラー・メッセージが表示される場合があります。
解決方法
これは、Oracle Internet Directoryのポート番号が変更されて、サーバーが再起動されていないか、Oracle Internet Directoryのコンポーネント登録が更新されていない場合に起こります。サーバーを再起動し、「opmnctlを使用したOracleインスタンスのコンポーネント登録の更新」に記載のとおりopmnctl
updatecomponentregistration
を実行します。
解決方法
これは、レプリケーション・ウィザードの使用時にサーバー認証または相互認証用に構成されたSSLポートを指定した場合に発生します。レプリケーション・ウィザードは、認証なし用に構成されているSSLポートにのみ接続できます。ログインを要求された場合またはノードを指定する場合は、常に、非SSLポートまたは認証なし用に構成されたSSLポートを指定します。
解決方法
これは、Oracle Internet DirectoryのSSLポートが相互認証用に構成されている場合に発生します。Oracle Enterprise Manager Fusion Middleware ControlおよびWLSTはSSLポートを介してOracle Internet Directoryを管理し、このポートは認証なしまたはサーバー認証用に構成されている必要があります。
この項では、Oracle Directory Services Managerに関する問題を示します。
問題
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 Managementインストレーション・ガイド』を参照してください。
問題
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がデプロイされているサーバーのホスト名に更新します。
構成を保存するには、「保存」をクリックします。
「変更のアクティブ化」をクリックして、サーバー構成を更新します。
問題
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との接続を新たに確立します。
関連項目:
|
問題
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のフェイルオーバー時に起こります。いずれの場合も、接続の再確立にかかる時間はわずかで、再度ログインすることなく続行できます。
問題
ODSMが、エラー: Posn: -1、サイズ: 0
というエラー・メッセージを表示します。
解決方法
このエラーは無視しても問題ありません。これは、通常、Oracle Internet DirectoryがODSM操作のエラーを検出したことを示しています。ODSMがOracle Internet Directoryに接続するために使用するJNDIは、実際のエラー・コードではなく、このエラー・コードを戻すことがあります。Oracle Internet Directoryサーバーのログ・ファイルには、意味のわかりやすいエラー・メッセージがより多く表示されます。
ポリシー・ストアとしてOracle Internet Directoryを使用している場合、Fusion Applications専用環境から共有環境への移行中に、セキュリティ・ストアの移行によりOracle Internet Directoryに対するOPSS問合せが低速になります。
問合せのパフォーマンスを向上させるには、Oracle Internet Directoryのポリシー・ストアに次のチューニング値を設定します。
Oracle Databaseチューニング・パラメータ
SGA_MAX_SIZE
: 4G以上
Oracle Databaseサーバー・プロセス: 500以上
Oracle Internet Directory属性
orclrscacheattr
- 次のように複数値属性を設定します。
orclrscacheattr: orcljaznprincipal orclrscacheattr: orcljaznpermissiontarget orclrscacheattr: orcljpsresourcename orclrscacheattr: uniquemember orclrscacheattr: orcljpsassignee
orclecachemaxsize
: 16G以上
orclinmemfiltprocess
- 次のように複数値属性を設定します。
orclinmemfiltprocess: (orcljpsresourcetypename=taskflowresourcetype) orclinmemfiltprocess: (orcljpsresourcetypename=regionresourcetype
http://support.oracle.com
のMy Oracle Support(以前のMetaLink)には様々な解決策が掲載されています。問題の解決策が見つからない場合は、サービス・リクエストを登録してください。
関連項目: Oracle Technology NetworkにあるOracle Fusion Middlewareリリース・ノートfor Microsoft Windows(32-Bit): |