Lotus Notes の不在通知エージェント(改訂版): 第2部

不在通知エージェントの管理とトラブルシューティング

Lotus Notes の不在通知エージェントに関する 2 部構成の記事の後半として、不在通知エージェントの管理方法、Domino Web Access での不在通知機能の使い方、不在通知に関する問題のトラブルシューティングを取り上げます。

Julie Kadashevich, Senior Software Engineer, IBM

Julie Kadashevich has been working as a developer on the programmability team of Domino server since 1997. Her specific area of expertise has to do with anything related to agents.



2005年 9月 27日

この連続記事の第1部では、Notes の不在通知エージェントについて改めて説明しました。不在通知エージェントがどのように機能するのか外部的および内部的に詳しく解説されています。第 2 部では、不在通知エージェントの設定に注目します。また、エージェントのトラブルシューティングについても考察します。第 1 部と同様に、この記事は Notes Client の使い方や Notes/Domino 環境の管理に慣れている方を対象に書かれています。

AdminP と不在通知エージェント

第 1 部で述べたように、[編集者] レベルのユーザーに対して不在通知エージェントを有効にするには AdminP が使用されます。不在通知エージェントを設定および有効化するために AdminP 要求が発行されると、その要求に対応する文書が Admin4.nsf データベースに表示されます (図 1 参照)。

図1. 不在通知エージェント用の AdminP 要求
図1. 不在通知エージェント用の AdminP 要求

要求が処理されると、返答文書が生成されます (図 2 参照)。

図2. AdminP 返答文書
図2. AdminP 返答文書

AdminP が不在通知エージェントの設定と有効化を完了すると、エージェントは有効かつサーバーによって署名された状態でリストに表示されます。AdminP がどれだけ迅速にエージェントを有効化できるかは、次のものに依存します。

  • AdminP が実行しているスレッド数
  • 保留されている他の AdminP 要求の数
  • サーバー上で AdminP が要求を処理する頻度
  • 単一サーバー環境または複数サーバー環境のどちらで運用しているか

単一サーバー環境では、ホーム・メールサーバーとシステム管理サーバーは同一で、有効化の要求はホーム・メールサーバー上の Admin4.nsf に送信されます。有効化の遅延は最小となります。複数サーバーの Domino 環境では、有効化の要求はホーム・メールサーバー上の Admin4.nsf に送信され、Admin4.nsf の ACL での [システム管理サーバー] の設定に基づいて、ハブサーバーへ複製されます。ハブサーバーは要求を処理し、承認または拒否します。Admin4.nsf は、承認または拒否された要求と一緒に、ユーザーのホーム・メールサーバーに複製されます。有効化の遅延は、2 つのサーバー間の複製スケジュールによって決まります。

単一サーバー環境では、ホーム・メールサーバーとシステム管理サーバーは同一で、有効化の要求はホーム・メールサーバー上の Admin4.nsf に送信されます。有効化の遅延は最小となります。複数サーバーの Domino 環境では、通常、AdminP 要求はユーザーのホーム・メールサーバーで生成されますが、次のような可能性も考えられます。

  • 要求で指定されたサーバーがユーザーのホーム・メールサーバーでない (たとえば、ロケーション文書の情報が誤っている場合)
  • ユーザーが admin4.nsf へのアクセス権を持っていない
  • ユーザーが、接続されていないローカルのレプリカコピーで作業している

これらの場合、情報はホーム・メールサーバーへ複製されます。2 番目と 3 番目のケースでは、情報はシステム管理サーバーへメール送信されたあと、複製されます。

これらの特殊なケースでは、有効化の要求はホーム・メールサーバー上の Admin4.nsf に送信され、Admin4.nsf の ACL での [システム管理サーバー] の設定に基づいて、ハブサーバーへ複製されます。ハブサーバーは要求を処理し、承認または拒否します。Admin4.nsf は、承認または拒否された要求と一緒に、ユーザーのホーム・メールサーバーに複製されます。有効化の遅延は、2 つのサーバー間の複製スケジュールによって決まります。

次のサーバー・コマンドを発行することにより、AdminP に要求の処理を強制することができます。

tell adminp process all
tell adminp process new

AdminP 要求が失敗するケース

前述のように、メールファイルの所有者は、Admin4.nsf の ACL で少なくとも [作成者] のアクセス権を持たなければなりません。Admin4.nsf データベースのデフォルトのアクセス権は [作成者] なので、ご使用の環境でデフォルトを変更していない限り、特別な設定は必要ありません。AdminP 要求は、要求者の名前がメールファイルの所有者と同一かどうかをチェックし (編集者は自分のメールファイルだけでエージェントを有効にできるため)、エージェントを有効にする前に、エージェントが正当な署名を持っているかどうかを検証します。

正当な署名とみなされるのは、次の場合です。

  • Lotus Notes Templates Developer/Lotus (権限が暗黙的に認められているので、[セキュリティ] タブで指定する必要はありません)
  • サーバー ID (これも、[セキュリティ] タブで指定する必要はありません)
  • [他のユーザーとして実行するエージェントを署名] 権限を持つ任意の署名者

また、ユーザーのロケーション文書内のサーバー名が完全修飾されていない場合や、誤っている場合も、AdminP要求は失敗します。


R5 との互換性

Domino 5.0.8 から、Agent Manager は [編集者] レベルのユーザーによってオンにされたエージェントを認識できるようになりました。これらのエージェントは Agent Manager によって認識され、Domino 5.0.8 以降のサーバーで実行されます。しかし、Domino Designer 5.0.8 のユーザーインターフェースと R5 メールテンプレートは、この新機能に対応していません。このため、リリース 5 の [編集者] レベルのユーザーはエージェントを有効にできず、Domino Designer 5.0.x では、Notes Client 6.x によって有効にされたエージェントの状態を視覚的に区別できません。

有効化された状態を追跡するために、Domino Designer 6 の [エージェント] ビューには、次のアイコンが追加されました。

  • 数字の 5 が付いたチェックマークは、Domino 5 (R5.0.7 以前) のサーバー用にのみエージェントが有効化されていることを示します。また、このアイコンは、[編集者] レベルのユーザーによって Notes/Domino 6 でエージェントが無効にされたことを示します。エージェントは、Domino 6 (および R5.0.8 以降) のサーバーによって無効にされたものとして扱われますが、R5.0.7 以前が実行されている Domino 5 のサーバーでは有効として扱われます。
  • 数字の 6 が付いたチェックマークは、Notes/Domino 6 (および、R5.0.8 以降) で実行されるエージェントを表します。また、このアイコンは、[編集者] レベルのユーザーによって Notes/Domino 6 でエージェントが有効にされたことを示します。エージェントは、Domino 6 (および R5.0.8 以降) のサーバーによって有効にされたものとして扱われますが、R5.0.7 以前が実行されている Domino 5 のサーバーでは無効として扱われます。
  • 数字のないチェックマークは、Notes/Domino 5 と Notes/Domino 6 の両方に有効なエージェントを示します。エージェントは [編集者] レベルのユーザーによる有効化/無効化が行われていない状態で、リリース 5 と Notes/Domino 6 で同じように動作します (このアイコンの画像については、第 1 部の記事を参照してください)。

不在通知エージェントを他のユーザーのために有効にする

第 1 部で述べたように、本来、不在通知エージェントは、代理をサポートするようには設計されていません。お客様からこの機能へのご要望があり、テンプレート・チームはこの課題を解決するために努力しています。現時点では、代理の対策として 2 つの方法があります。

対策 1. 任意のレベルのユーザーを有効にする

この対策を施すには、[他のユーザーとして実行するエージェントを署名] 権限が必要です。Domino Designer で、不在通知エージェントを有効にしたいユーザーのメールファイルを開きます。(EditOfficeProfile) エージェントを選択し、メニューの [実行] をクリックします。[不在通知] プロフィールが表示され、不在にする期間とメールのテキストメッセージを編集できます。

次に、不在通知エージェント (エージェントリストには OutOfOffice という名前で表示されています) を開き、メールの所有者の名前を [代理で実行] フィールドで指定します。[実行するサーバー] にユーザーのホーム・メールサーバーが設定されていることを確認し、エージェントを保存します。エージェントリストでエージェントを有効にします。

[代理で実行] フィールドにメールの所有者名を入力するときは、Domino の短縮階層名で入力する必要があります (例: Rain Cloud/Lily)。ドメインを付けずに名前を入力すると (例: Rain Cloud)、次のエラーを受け取ります。

mm/dd/yyyy 07:08:34 PM AMgr: Start executing agent
'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf' by Executive '1'
mm/dd/yyyy 07:08:34 PM AMgr: 'Sandy Beech/Smallville/Acme' is
the agent signer of agent 'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf'
mm/dd/yyyy 07:08:34 PM AMgr: 'Agent 'OutOfOffice OutOfOffice' in
'mail\rcloud.nsf' will run on behalf of ‘Rain Cloud’
mm/dd/yyyy 07:09:52 PM AMgr: Error executing agent
'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf'.:
You are not authorized to perform that operation
mm/dd/yyyy 07:09:52 PM AMgr: Agent 'OutOfOffice OutOfOffice'
is scheduled to run next at: 07/22/2005 07:13:32 PM

対策 2. [設計者] または [管理者] のユーザーを有効にする

システム管理者が他のユーザーの不在通知エージェントを有効にしなければならない場合は、メールファイルの所有者の名前を一時的に自分 (システム管理者) の名前に変更できます。これを行うには、[ツール] - [プリファレンス] を選択し、[メールファイルの所有者] フィールドに名前を入力します。これで、不在通知オプションが [ツール] に表示されます。この方法により、システム管理者は、オリジナルのメールファイルの所有者のために不在通知を有効にできます。システム管理者は、不在にするユーザーの名前を件名の行またはメッセージのテキストに含むメッセージを作成できます。しかし、不在通知メッセージは、不在通知エージェントを有効にしたユーザー (この場合はシステム管理者) の ID によって署名されます。これは、メッセージがシステム管理者の名前で送信されることを意味します。不在通知エージェントが実行されるサーバーは、現在のロケーション文書の [ホーム/メールサーバー] の設定によって決められます。このため、ユーザーのホーム・メールサーバーとは異なるサーバーを指すロケーション文書があるマシンを使用した場合は、これを 2 つの方法で修正できます。1 つは、Domino Designer でエージェントを編集し、スケジュール設定されているサーバー名を変更する方法です。もう 1 つは、ユーザーのホーム・メールサーバーを指すよう現在のロケーション文書を変更する方法です。

この対策を使用すると、「おかえりなさい。不在通知プロフィールを終了してください。」のメッセージは、エージェントが実際に有効にされたメールファイルの所有者ではなく、システム管理者 (エージェントを有効にしたユーザー) に送信されます。


Domino Web Access での不在通知エージェント

R5.0.8 で、Domino Web Access (DWA) に不在通知機能が追加されました。リリース 6.0.2 までは、Domino Web Access と Notes Client は 2 つの異なるエージェントを使用して不在通知機能を実行していました。Notes は OutOfOffice エージェントを使用し、Domino Web Access は iwa_OutOfOffice を使用しました。6.0.2 から、Notes Client と Domino Web Access はメールテンプレート内の同じ OutOfOffice エージェントを共有しています。Notes と Domino Web Access が不在通知機能を実現する方法の最も大きな違いは、Domino Web Access はエージェントの有効化と無効化の両方に、常に AdminP を使用する点です。これに対し Notes は、最初の設定/有効化のときにのみ AdminP を使用します。

Domino Web Access 用にエージェントを有効および無効にするときは常に AdminP が使用されるため、[他のユーザーとして実行するエージェントを署名] 権限を持つ ID によってエージェントを署名する必要があります。Domino Designer でエージェントを編集すると、編集したユーザーの ID でエージェントが署名されます。このユーザーが、[他のユーザーとして実行するエージェントを署名] 権限を持たない場合、AdminP は失敗し、「操作を実行する権限がありません」というメッセージが表示されます。

リリース 5.0.8 では、不在通知エージェントを使用する Domino Web Access ユーザーは、自分自身のメールファイルの ACL で少なくとも [設計者] のアクセス権を持つ必要がありました。これは、Domino 5.x サーバーが、AdminP によってスケジュールされたエージェントを有効化する機能を持っていないためです。Domino 6.0.2 から、Domino Web Access ユーザーには、自分自身のメールファイルへの [編集者] のアクセス権 (デフォルト) だけが必要です。

デフォルトでは、不在通知エージェントはインターネットからのメールには返信しません。この動作は、不在通知設定文書の [例外] タブでこのオプションを無効にすることによって変更できます。

Domino Web Access を使用して不在通知エージェントを有効にした場合は、Domino Web Access を使用して無効にしてください。同様に、Notes Client を使用してエージェントを有効にした場合は、Notes Client を使用して無効にしてください。2 つのクライアントを切り替えると、問題が発生することがあります。問題が発生した場合は、不在通知エージェントをテンプレートから復元します。これを行う最も簡単な方法は、メールテンプレートの設計を置換することです。Domino Designer で、(OutOfOffice) エージェントを削除し (これで、オリジナルバージョンが確実に得られます)、次に、[ファイル] - [データベース] - [設計の置換] を選択します。テンプレートサーバー名として [Local] を選択します。リストを下にスクロールし、[Domino Web Access (6)] を選択します。ファイル名の iNotes6.ntf が表示されます。[置換] ボタンをクリックします。これは、すぐに実行されるオペレーションで、1 分ほどで完了します。


トラブルシューティング

このセクションでは、サポートチームが扱った不在通知エージェントのいくつかの問題を振り返り、これらの問題のトラブルシューティングに関するヒントを示します。

ユーザーが期待どおりの不在通知を受け取らない

エンドユーザーは、各送信者から送られてくるすべてのメールに通知が返されるもの、と思っている可能性があります。しかし、設計により、エージェントは最初の 1 通にのみ返信します。エンドユーザーに対し、不在ユーザーから 1 通でも通知があったかどうか確認してください。もし、1 通もない場合は、次の段階に進みます。

ユーザーに、[ツール] - [不在通知] を使用してエージェントを有効にしたかどうかを確認します。以下のトラブルシューティングの手順では、ユーザーがそのように操作したにもかかわらず、何らかの不具合があった、という前提で説明を進めます。最初に判断しなければならないのは、エージェントが実行されなかったのか、あるいはエージェントは実行されているのにメッセージが送信されなかったのか、という点です。

最初の可能性として、エージェントが有効にされなかったことが考えられます。[編集者] レベルのユーザー用の最初の有効化プロセスは、即時実行されない点にも注意が必要です。次の可能性として、エージェントが実行を開始するときのエージェント・セキュリティの設定が挙げられます。3 番目の可能性として、メールサーバーの設定ミスが考えられます。最後に、エージェント自体の設計更新のために、不在通知エージェントがオフにされている可能性もあります。それぞれの可能性を診断する方法について見ていきましょう。

エージェントは有効になっているか?
エージェントが有効になっているかどうかを調べます。有効なときに、不在通知エージェントがどのようにエージェントリストに表示されるのかを図 3 に示します。

図3. 有効にされた不在通知エージェント
図3. 有効にされた不在通知エージェント

無効にされた不在通知エージェントを図 4 に示します。

図4. 無効にされた不在通知エージェント
図4. 無効にされた不在通知エージェント

[最終更新者] の列に表示されている名前をメモしてください。

エージェントが無効と表示され、エージェントの所有者レベルが [設計者] の場合は、所有者が [LotusScript/Java エージェントの作成] 権限を持つかどうかをチェックします。この権限を持たない場合、エージェントはエージェントリストでは有効にはなりません。[LotusScript/Java エージェントの作成] 権限を持たない設計者が不在通知エージェントを有効にすると、エラー「操作を実行する権限がありません」がステータスバーに表示されます (図 5 参照)。現在の状態が [有効] に変わり、エラーは無視されます (これは、将来のリリースで修正すべきエラーに起因します)。

図5. 権限がないことを示すエラーメッセージ
図5. 権限がないことを示すエラーメッセージ

[設計者] レベルのユーザーが [LotusScript/Java エージェントの作成] 権限を持っていない場合は、この権限をこのユーザーに与えてください。これにより、このユーザーはエージェントを有効化できるようになります ([管理者] レベルのユーザーはこの権限がデフォルトで与えられているので、このような状況は発生しません)。

メールの所有者が [編集者] のアクセス権を持っていると、通常、不在通知エージェントはすぐには有効になりません。この場合は、これを示す警告が [不在通知] ダイアログの一番上に表示されます (図 6 参照)。

図6. 要求が処理中であることを示すエラーメッセージ
図6. 要求が処理中であることを示すエラーメッセージ

エージェントは [編集者] レベルのユーザー用に設定される必要があり、この設定は AdminP への要求を介して実行されるので、このような遅延が生じます。一般的に、遅延の時間は、単一サーバー環境では数分、複数サーバー構成では約 30 分 (サーバー間での要求の複製が必要なため) と幅があります。

エージェントが無効であると表示され、署名者が「Lotus Notes Template Developers/Lotus」の場合は、更新日付を確認してください。ユーザーによってエージェントが有効にされたと思われる日付よりも更新日付が新しい場合は、不在通知エージェントのコードの更新の一部として、Design タスクによってエージェントが無効にされたものと考えられます。このような更新は頻繁には発生しませんが、発生した場合は、エージェントを有効にしたユーザーの署名は保持されません。エージェントのバイトコードが変更されると同時に、それまでのユーザー署名も無効になります。Design タスクは、メールデータベース内の使用中のエージェントを、テンプレート内の更新されたエージェントで置き換えます。更新されたエージェントは、ユーザーの署名ではなくテンプレート設計者の署名を持ち、無効にされます (正しい権限では実行できないため)。

Notes/Domino 7 より前のリリースでは、この状況を検出することは困難でした。エンドユーザーは、エージェントがタスクの実行を停止したことに気付いても、その原因がわかりませんでした。Notes/Domino 7 では、DDM (Domino ドメインモニター) を介して、図 7 に示すようなイベントレポートがシステム管理者に通知されます。システム管理者は、必要に応じて修復作業を実行できます。

図7. イベントレポート
図7. イベントレポート

DDM イベントレポートには、エージェントの名前と、代理実行されているユーザーの名前が含まれています。システム管理者は Domino Designer でエージェントを編集し、更新によって無効にされたユーザーの名前を [代理で実行] フィールドに設定し、エージェントを有効にすることができます。システム管理者は、サーバー文書の [セキュリティ] セクションで [他のユーザーとして実行するエージェントを署名] 権限を持つ必要があります。

エージェントは実行を試みたか?
エージェントを有効化し、ユーザーが不在期間内のときは、エージェントはまだアクティブな状態と考えられます。エージェントが Agent Manager のスケジュール・キューに表示されているかどうかチェックしてください。スケジュール・キューを表示するには、サーバー・コンソールで「tell amgr schedule」コマンドを発行します。エージェントがスケジュール設定されていると、次のような行が出力されます。

S S 05:08 PM Today OutOfOffice|OutOfOffice
mail\etornado.nsf

このコマンドは、メールファイルの所有者のホーム・メールサーバーで発行する必要があります。スケジュール・キューにエージェントがない場合は、どのサーバーでエージェントの実行スケジュールが設定されているのかを調べます。エージェントが実行を試みたかどうかは、エージェントログまたはサーバーログを調べることによって判断できます。デフォルトでは、エージェントは 6 時間ごとの実行が設定されていることに注意してください。Agent Manager のキューをチェックすることにより、最初の実行前でも、実行予定がスケジュールされているかどうかを確認できます。

エージェントログを表示するには、エージェントリストでエージェントを右クリックし、[ログ] を選択します。エージェントの実行が成功している場合は、図 8 のように表示されます。タイムスタンプによって、エージェントがいつ実行されたのかがわかります。

図8. エージェントログ
図8. エージェントログ

不在通知エージェントをクライアントで実行することによってテストした場合は、サーバーでの実行時に生成されたログが上書きされてしまいます。また、エージェントに何らかの変更を加えると、最後の実行ログが削除されます。このいずれかにあてはまる場合は、サーバーログをチェックして、エージェントが実行されたかどうか、実行時にエラーが発生したかどうかを調べる必要があります。エージェントが実行されなかった場合は、「指定したエージェントは実行されたことがありません」というメッセージが表示されます。これは、変更後 (または、有効にした後)、エージェントが実行されていないことを意味します。

エージェントが実行されたかどうかをサーバーログで確認するには、問題が発生しているユーザーのメールデータベースの名前をサーバーログで検索します。
エージェントの実行に関する情報を得るには、Agent Manager のログをオンにする必要があります。エージェントログに関しては、2 つの Notes.ini オプションがあります。 LOG_AGENTMANAGER=1は最小限のログを生成し、AMGR_DEBUG=*は詳細なログを生成します。エージェントが正しく有効化されていると、サーバー・コンソールに次のような出力が表示されます (これは、Notes.ini 変数LOG_AGENTMANAGER=1を設定したときの出力です)。

[編集者] レベルのユーザーの場合:

mm/dd/yyyy 04:35:36 PM AMgr:
Start executing agent
'OutOfOffice OutOfOffice' in 'mail\etornado.nsf' by Executive '1'
mm/dd/yyyy 04:35:36 PM AMgr: 'Fisheye/Lily' is the agent signer of agent
'OutOfOffice OutOfOffice' in 'mail\etornado.nsf'
mm/dd/yyyy 04:35:36 PM AMgr: 'Agent 'OutOfOffice OutOfOffice' in
'mail\etornado.nsf' will run on behalf of 'Emily Tornado/Lily'

エージェントの署名者はサーバー (Fisheye/Lily) で、エージェントは [編集者] レベルのメール所有者 (Emily Tornado/Lily) の代わりに実行されていることに注目してください。これが、AdminP による設定とエージェントの有効化の結果です。

[設計者]/[管理者] レベルのユーザーの場合:

mm/dd/yyyy 04:45:36 PM AMgr: Start executing agent
'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf' by Executive '1'
mm/dd/yyyy 04:45:36 PM AMgr: 'Rain Cloud/Lily' is the agent signer
of agent 'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf'
mm/dd/yyyy 04:45:36 PM AMgr: 'Agent 'OutOfOffice OutOfOffice' in
'mail\rcloud.nsf' will run on behalf of 'Rain Cloud/Lily

メールの所有者がエージェントの署名者であるとともに、[代理で実行] の値 (Rain Cloud/Lily) にもなっています。これは、メールの所有者が直接エージェントを実行したからです。

Notes.ini 変数AMGR_DEBUG=*を使用して、[設計者]/[管理者] レベルのユーザー用に実行に成功したときの例を以下に示します。エージェントの開始時刻だけでなく、署名者、誰の代わりに実行しているのか、スクリプトライブラリの署名者、エージェントの実行時間 (ティックで表示)、次回の実行日時などの情報が含まれています。

mm/dd/yyyy 03:07:41 PM
AMgr: Start executing agent
'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf' by Executive '1'
mm/dd/yyyy 03:07:41 PM AMgr: 'Rain Cloud/Lily' is the agent signer
of agent 'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf'
mm/dd/yyyy 03:07:41 PM AMgr: 'Agent 'OutOfOffice OutOfOffice' in
'mail\rcloud.nsf' will run on behalf of 'Rain Cloud/Lily'
Agent 'OutOfOffice|OutOfOffice' calling script library 'Common':
Agent signer 'CN=Rain Cloud/O=Lily', Script library signer
'CN=Lotus Notes Template Development/O=Lotus Notes'
Agent 'OutOfOffice|OutOfOffice' calling script library 'TIMEUtilities':
Agent signer 'CN=Rain Cloud/O=Lily', Script library signer
'CN=Lotus Notes Template Development/O=Lotus Notes'
mm/dd/yyyy 03:08:39 PM AMgr: Agent 'OutOfOffice OutOfOffice' in
'mail\rcloud.nsf' ran successfully; elapsed time was '25' ticks
mm/dd/yyyy 03:08:39 PM AMgr: Agent 'OutOfOffice OutOfOffice'
is scheduled to run next at: 07/19/2005 09:05:39 PM

エージェントが開始され、セキュリティ権限に関するエラーによって失敗した場合は、エージェントの署名者の権限に問題があります。可能性のあるエラーは次の 2 つです。エラーは、メールの所有者の ACL レベルに依存します。

LotusScript エージェントを実行する権限がない場合。[設計者] または [管理者] のアクセス権を持つメールの所有者が、サーバー文書で LotusScript エージェントの実行権限を与えられていないためにエージェントが失敗したときは、次のエラーが発生します。

mm/dd/yyyy 06:03:51 PM
AMgr: Start executing agent
'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf' by Executive '1'
mm/dd/yyyy 06:03:51 PM AMgr: 'Rain Cloud/Lily' is the
agent signer of agent 'OutOfOffice OutOfOffice' in 'mail\rcloud.nsf'
mm/dd/yyyy 06:03:51 PM AMgr: 'Agent 'OutOfOffice OutOfOffice'
in 'mail\rcloud.nsf' will run on behalf of 'Rain Cloud/Lily'
mm/dd/yyyy 06:04:50 PM AMgr: Agent 'OutOfOffice OutOfOffice'
in 'mail\rcloud.nsf' does not have proper execution access,
cannot be run
mm/dd/yyyy 06:04:50 PM AMgr: Agent 'OutOfOffice OutOfOffice'
is scheduled to run next at: 07/20/2005 06:08:50 PM

[他のユーザーとして実行するエージェントを署名] 権限がない場合。[編集者] レベルのユーザーのためにエージェントを手動で設定したシステム管理者が、[他のユーザーとして実行するエージェントを署名] 権限を持たないときは、次のエラーが発生します。

mm/dd/yyyy 05:59:32 PM
AMgr: Start executing agent
'OutOfOffice OutOfOffice' in 'mail\etornado.nsf' by Executive '1'
mm/dd/yyyy 05:59:32 PM AMgr: 'Rain Cloud/Lily' is the
agent signer of agent 'OutOfOffice OutOfOffice'
in 'mail\etornado.nsf'
mm/dd/yyyy 05:59:32 PM AMgr: 'Agent 'OutOfOffice OutOfOffice'
in 'mail\etornado.nsf' will run on behalf of 'Emily Tornado/Lily'
mm/dd/yyyy 05:59:32 PM Agent Manager: Agent
'OutOfOffice OutOfOffice': Users without rights to sign 'On Behalf'
agents ('Rain Cloud/Lily') can only run agents
on their own behalf.
mm/dd/yyyy 06:00:31 PM AMgr: Agent 'OutOfOffice OutOfOffice' in
'mail\etornado.nsf' does not have proper execution access,
cannot be run
mm/dd/yyyy 06:00:31 PM AMgr: Agent 'OutOfOffice OutOfOffice'
is scheduled to run next at: 07/21/2005 06:04:31 PM

どちらの「権限」エラーも、Domino ディレクトリのサーバー文書の [セキュリティ] タブにある [Programmability の制限] セクションで、エージェントの署名者に適切な権限を与えることによって修正できます (図 9 参照)。[設計者] と [管理者] には、少なくとも、LotusScript/Java エージェントを実行する権限が必要です。エージェントを手動で設定するシステム管理者には、少なくとも、[他のユーザーとして実行するエージェントを署名] 権限が必要です。「Lotus Notes Template Developers/Lotus」グループおよびサーバー ID は [他のユーザーとして実行するエージェントを署名] 権限を暗黙的に持っているので、サーバー文書で明示的に指定する必要はありません。

図9. [Programmability の制限] の各フィールド
図9. [Programmability の制限] の各フィールド

すべてのレベルのユーザーに対し、エージェントの実行によって生成された出力を見つけられないときは、Agent Manager 用の Notes.ini 変数の 1 つをオンにしたかどうかをチェックします。オンにしている場合は、エージェントの実行が設定されているサーバーをチェックします。エージェントが他のサーバーで実行されるように設定されている可能性があります。

[編集者] レベルのユーザーに対し、エージェントの実行によって生成された出力を見つけられない場合は、[ユーザーの有効化を許可する] フィールドがオンになっているかどうか、[代理で実行] フィールドにユーザー名が指定されているかどうかをチェックします。十分な時間が経過してもこれらの値が設定されない場合は、AdminP 要求が正しく処理されていません。

メールは送信されたか?
エージェントの実行が開始したにもかかわらずメールが送信されない場合は、メール配信の問題を示す次のサーバーコンソール・エラーがないかチェックします。

  • サーバーへのパスが見つかりません
  • サーバーが応答しません
  • ...リモートサーバーは TCP/IP ホストとして登録されていません

通常、これらのエラーはサーバー設定の誤りによって生じます。サーバー文書の次のフィールドが正しく設定されていることをチェックしてください。

  • サーバー名(ServerName) は [基本] タブにあり、サーバーの短縮階層名を指定する必要があります。
  • メールサーバー(MailServer)は [基本] タブにあります。このエントリーが正しくない場合に返される典型的なエラーは「サーバーが応答しません」です。サーバー名が変更されたのに、このエントリーが更新されていない場合に、このエラーが発生します。設定値として、サーバーの短縮階層名を指定してください (例: Fisheye/Lily)。
  • ネットアドレス(NetAddress) は、[ポート] セクションの [Notes ネットワークポート] タブにあります。このフィールドには、完全修飾インターネットホスト名、内部 IP アドレス、または Domino Server の短縮名を指定する必要があります。サーバー文書内の TCP/IP ポート設定の [ネットワークアドレス] エントリーが、hosts ファイルまたは DNS での設定に正確に一致することをチェックしてください。[ネットワークアドレス] フィールドでは、サーバーの完全修飾ドメイン名 (fisheye.lily.com) を使用しなければなりません。

トラブルシューティングのもう 1 つのテクニックとして、問題を簡素化し、不在通知エージェントよりも単純なメッセージをエージェントからテスト送信する方法があります。次の LotusScript コードを使用して、メッセージを送信するだけのエージェントを作成します。メッセージが送信されない場合、問題は不在通知エージェントにあるのではなく、サーバー設定にあることが確実になります。

     Dim session As New NotesSession
     Dim db As NotesDatabase
     Dim doc As NotesDocument
     Set db = session.CurrentDatabase
     Set doc = New NotesDocument( db )
     doc.Form = "Memo"
     doc.SendTo = "your name /your org"
     doc.Subject = "Testing mail"
     Call doc.Send( False )

同じメッセージに対し、ユーザーが複数の通知を受け取る

ユーザーから多数の不在通知を受け取るというクレームがあった場合は、一般的に、不在通知エージェントが複数のサーバーで実行されていると考えられます。不在通知エージェントの設定で特定のサーバー名の代わりに [- すべてのサーバー -] を選択すると、メールファイルのレプリカが存在するすべてのサーバーでエージェントが実行されます (エージェントのロジックによっては、同じエージェントを複数のサーバーで実行すると、複製の競合が発生することがあります)。

トリガをデフォルトの [新規メールの受信後] に変更すると、エージェントは自分のホーム・メールサーバーでのみ実行されます。Notes.ini 変数「AMgr_DisableMailLookup」の設定がなく、新規メールの受信後に実行する設定のエージェントをホーム・メールサーバー以外で実行するように設定している場合、エージェントは実行されません。R4.62 以降では、「AMgr: Agent 'agent' will not run. It is intended to run on 'servername」というランタイムエラーが生成されます。servername は自分のホーム・メールサーバーの名前です。

不在通知エージェントでは、ユーザーが過去の日付を指定することは禁止されていません。これによって、余分なメッセージが生成されます。不在通知プロフィールで指定されている日付を確認してください。

エージェントをオフにする確認をユーザーが複数回受け取る

会社に戻り、不在通知エージェントを無効にしても、不在通知エージェントをオフにすることの確認を引き続き受け取ることがあります。この問題の最も一般的な原因は、不在通知エージェントがまだ有効になっているメールファイルのレプリカ (コピー) がどこかに存在することです。このトラブルシューティングとしては、メッセージの文書プロパティーを見て、どのサーバーが実際にメッセージを送信したのかを確認するとよいでしょう (ドメインに複数のサーバーがある場合)。次に、メッセージを送信したサーバーを特定した後、「tell amgr sched」コマンドをサーバー・コンソールで発行し、そのサーバーで現在有効になっているエージェントを明らかにします。エージェントはローカルのメールファイルでも有効にできることを忘れないでください。これは、サーバーの「tell amgr schedule」コマンドでは表示できません。

ユーザー名を変更した後、不在通知エージェントに問題がある

不在通知エージェントの設定情報は、ユーザーのメールファイル内のプロフィール文書に保存されます。ユーザーが自分自身の名前を変更すると、AdminP によってメールファイルの所有者フィールドが変更されます。しかし、AdminP は、不在通知エージェントの設定情報が含まれるプロフィール文書を変更しません。不在通知のプロフィール文書を削除することで、この問題を解決できます。

     Sub Initialize
     Dim session As notessession
     Dim uiws As New notesuiworkspace
     Dim m_officeprofile As notesdocument
     Dim nSuccess As Integer
     
     Set session = New notessession
     Set m_officeprofile = 
     session.CurrentDatabase.GetProfileDocument
     ("OutOfOfficeProfile")
     m_officeprofile.Remove(True)
     
     End Sub

フィールドまたは段落が 32K を超える

プロフィール文書は、エージェントが返信したユーザー名の記録にも使用されます。エージェントの実行期間中に、記録された名前の数が多くなりすぎることがまれにあります。この場合、ユーザーはエージェントを有効または無効にしたときにエラーメッセージ「フィールドまたは段落が 32K を超えています」を受け取ります。プロフィール文書を削除することで、この問題を解決できます。

[編集者] レベルのユーザーとローカルレプリカ

R5 では、ローカルレプリカで不在通知エージェントを有効にすることは推奨されていません。リリース 6 では、このオプションがサポートされています。ローカルレプリカでエージェントを有効にすると、サーバーはホーム・メールサーバーに設定され、この情報はエージェントが実行されるサーバーに複製されます。Notes/Domino 6.0.5/6.5.4 よりも前のバージョンでは、これは [設計者] または [管理者] のアクセス権を持つユーザーに対して機能しましたが、[編集者] レベルのユーザーが状態を変更しても、サーバーへは複製されませんでした。この問題は Notes/Domino 6.0.5/6.5.4 で修正されました (Notes/Domino 6.0.5/6.5.4 は 2005 年前半に利用可能になりました)。

トラブルシューティングでの確認事項

トラブルシューティング・セクションの最後として、ユーザーが問題を報告したときに確認すべき事項をまとめておきます。

  • 不在通知エージェントが機能しないのは、一人のユーザーに対してだけですか、それともすべてのユーザーに対してですか?すべてのユーザーに機能しないとき、ほとんどの場合は、メールの設定に問題があります。また、Agent Manager および AdminP タスクが実行されているか確認します。
  • エージェントは「Notes Template Developers」以外の ID で署名されていますか?他の ID で署名されている場合は、エージェントに何らかの変更が加えられています。それは予期した署名 ([編集者] レベルのユーザーのサーバー、[設計者]/[管理者] ユーザーのメール所有者) ですか?そうでない場合は、署名者のアクセス権をチェックします。
  • 現在、エージェントが実行されているのであれば、エージェントは Agent Manager のスケジュール・キューにありますか?
  • デバッグ・レベルは「Log_AgentManager = 1」に設定されていますか?
  • サーバー・コンソールにエラーは表示されていますか?
  • ユーザーが [編集者] のアクセス権を持つとき、AdminP タスクでユーザーの代理として発行された要求がありますか?
  • エージェントが正しいサーバーで実行されるようスケジュール設定されていますか?
  • 最近、ユーザーは名前を変更しましたか?
  • 最近、ユーザーの ACL が変更されましたか?ユーザーの前のアクセス権が [設計者] で、これが [編集者] に変更されると、不在通知エージェントが、AdminP を失敗させる ID で署名されることがあります。

まとめ

不在通知エージェントは、Notes で最もよく使われるエージェントの 1 つです。ほとんどの状況で、不在通知エージェントは完璧に動作します。しかし、何らかの問題が発生した場合、システム管理者は状況を正しく把握し、それに対応しなければなりません。この連続記事を読むことにより、エージェントの内部で何が起きているのかを理解し、これらの問題をより容易に処理できるようになることを願っています。


謝辞

お客様が不在通知エージェントで経験した問題を集めていただいたことに対し、Lotus サポートチーム、特に Amy Knox 氏に感謝します。この記事の執筆に際し、サポート・ナレッジ・ベースおよび developerWorks: Lotus の Notes/Domino フォーラムの投稿がたいへん参考になりました。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=339593
ArticleTitle=Lotus Notes の不在通知エージェント(改訂版): 第2部
publish-date=09272005