ここでは、よくあるアダプタ接続問題のデバッグ方法について説明します。
このセクションのトピックは、次のように構成されています。
通常、アダプタクラスの com.waveset.adapter.adapter_classname をトレースすれば、アダプタの接続問題を特定できます。例を示します。
com.waveset.adapter.ADSIResourceAdapter
トレースを有効にする手順については、「Identity Manager サーバーのトレース」を必要に応じて参照してください。
よくある認証問題には、次のようなものがあります。
認証プロパティーが欠落している。
指定した DataSource タイプのプロパティー名をトレースの名前セット出力に含める必要があります。
Identity Manager ユーザーに、一致するリソースアカウントがない。
リソースアダプタの認証に成功したが、リソースアカウント ID と一致する Identity Manager ユーザーが見つからなかったという例外が発生した場合は、そのユーザーに関連付けられているリソースの accountId が、リソースアダプタの認証メソッドで返された accountId と同じであることを確認してください。
Identity Manager ユーザーのリソース accountId を検証するには、Identity Manager の「トレース設定の編集」ページ (debug/Show_Trace.jsp ) をレビューします。不一致が合った場合は、authenticate メソッドから返される名称を変更するか、使用リソースの ID テンプレートを変更してください。テンプレートは、authenticate メソッドで返される accountId と一致するリソース accountId を生成する必要があります。
カスタム Active Sync アダプタで最もよくある問題は、フォーム関連のものです。この種のエラーは通常、必須フィールドにパスワードや電子メール情報など必要な情報を入力しなかったために起こります。
Identity Manager は、ビューの最終 XML の後に、フォーム検証エラーをアダプタログに出力します。例を示します。
20030414 17:23:57.469: result from submit (blank means no errors): 20030414 17:23:57.509: Validation error: missing required field password |
Identity Manager は、アダプタログにすべてのメッセージも出力します。このメッセージには、アカウント作成時と更新時、アダプタエラー、スキーママップデータなどが記載されます。
Active Sync リソースアダプタは、最後に処理した変更内容についての情報を SYNC.resourceName XMLData オブジェクトに格納します。
次に、よくある Domino ゲートウェイとアダプタの設定エラーと、この問題の解決手順を説明します。
エラーメッセージに「"新しい Domino ゲートウェイ" にアクセスできません、接続が拒否されました」というエラーメッセージが表示された場合は、Identity Manager のゲートウェイを終了して再起動してみてください。
「ID ファイル名が指定されていません、userID ファイルへのパスが正しく設定されていません」というエラーメッセージが表示された場合は、userID の目標位置を指定し、リソースアダプタを編集してこの属性を正しいパスに設定します。通常、userID ファイルの目標位置は、ゲートウェイのインストール先ディレクトリにあります。
「このサーバーを使用する権限がありません。」というエラーメッセージが表示された場合は、ID ファイルに正しいアクセス権限が設定されていません。このファイルに正しい権限を指定してから、やり直してください。
RACF、ACF2、または TopSecret のホストアダプタが接続を再利用できなかったりキャッシュできないと、ユーザーが頻繁にログインしなくてはならなくなります。これにより、パフォーマンスに悪影響を与えます。この問題は、キャッシュのタイムアウト設定に原因があることがよくあります。
キャッシュのタイムアウト設定を確認するには、Identity Manager のアダプタ接続プールを次のようにトレースします。
Identity Manager の「Edit Configuration Object」ページから、com.waveset.adapter.HostConnPool#reapConnections メソッドをレベル 4 でトレースします。
トレースを有効にする手順については、「Identity Manager サーバーのトレース」を必要に応じて参照してください。
アダプタが操作を実行中に、十分な長さの期間のトレースを取り込みます (最低 30-60 分)。
アプリケーションサーバーの stdout のトレース出力またはトレースファイルをレビューして、Info reaping connection エントリを見つけます。
もしもこのエントリが 30 分おきに 1 回以上発生している場合は、接続が不必要にタイムアウトになっているということです。
この問題を解決するには、Idle Timeout リソース属性値を上げて、接続が頻繁にリープされすぎないようにします。Idle Timeout 属性値は、接続がログアウトされるまでのアイドル期間を制御します。デフォルト値は 90 秒ですが、これですと新たなログインが頻繁に発生します。
理想的には、配備環境に合わせて、平均的なアイドル時間より長い値を指定してください。たとえば、Idle Timeout 属性値を 30 分 (1800000 ミリ秒) 以上に調節します。
ここでは、次のような PeopleSoft のアダプタ問題をトラブルシューティングする方法について説明します。
PeopleSoft リソースアダプタから「テスト接続」を実行すると、多様な例外状態が発生する原因となります。
Waveset.properties ファイルを開き、 exception.trace=true を設定します。
テスト接続を再試行し、次のような結果が表示される場合があります。
FormState: expansion complete java.lang.NullPointerException: PSProperties not loaded from file WavesetException: WavesetException: ==> com.waveset.util.WavesetException: FormState: derivation Log in to the PeopleSoft web interface to verify that you are using the correct UID and password. |
この PeopleSoft アプリケーションサーバーのログには、ログインしようとしている試行がありません。
この問題は、接続先の PeopleSoft インストールに付属している psjoa.jar ファイルを使用しなかったためによく起こります。(PeopleSoft リソースアダプタの詳細は、『Sun Identity Manager 8.1 リソースリファレンス』 を参照してください。)
SAP or SAP HR Active Sync アダプタから SAP システムへの接続をテストしようとしてエラーが発生した場合は、コマンドウィンドウを開き、インストール先ディレクトリ WEB-INF/lib からこのコマンドを実行します。
java -jar sapjco.jar
sapjco.jar コマンドは、インストールされている SAP Java Connector (JCO) のバージョンと、このアダプタが正しくインストールされているかを表示します。このコマンドは、JavaTM Native Interface (JNITM) の参照先プラットフォーム、および SAP システムと通信している RFC ライブラリも返します。
この参照先プラットフォームのライブラリが見つからない場合は、SAP マニュアルを参照して、SAP Java Connector の正しいインストール方法を調べてください。
ここでは、UNIX アダプタによくある問題をデバッグする方法について説明します。
UNIX リソースアダプタへのプロビジョニング中にタイムアウトエラーが表示された場合は、最大ログ出力が得られるメソッド/クラスレベル 4 で com.waveset.adapter.ScriptedConnection をトレースすれば、プロビジョニングプロセスが失敗している場所を見つけることができます。
管理上のコマンドを実行する root になるときに、リソースアダプタが su root コマンドを su - root コマンドの代わりに実行すると、カスタムプロンプトなど、root に定義されているカスタム環境変数が環境に何も継承されなくなります (PS1 の環境変数)。
UNIX アダプタを設定する際、次のようにすれば Root Shell Prompt フィールドに入力すべきプロンプトを判断できます。
「ログインユーザー」フィールドに指定したユーザーでシステムに Telnet または ssh します。
パスワードを入力してログインしたら、ダッシュなしで su root を入力して改行キーを押します。
root パスワードを入力します。
次に表示されたプロンプトが、Root Shell Prompt フィールドに入力すべきプロンプトです。