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

不在通知エージェントの基本

Lotus Notes の不在通知エージェントは、Notes で最もよく使用されていて、役に立つエージェントの1つです。この連続記事の第1部では、エージェントの動作とカスタマイズ方法について詳しく説明します。

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月 20日

この2部構成の記事では、Lotus Notes/Domino の不在通知エージェントについて改めて解説します。1998年に「Demystifying the Out of Office agent (US)」という記事が発表されました。この記事は長年にわたってよく読まれてきましたが (Notes/Domino リリース 4.5 および 5.x を実行しているユーザーにはまだ役に立つ内容です)、発表以来、不在通知エージェントの多くの機能が変更されました。そこで、新しい連続記事として Notes/Domino 6.x および 7.0 の不在通知機能をもう一度取り上げることにします。第1部では、不在通知エージェントの紹介から始め、エージェントを有効にする方法での主な違いを明らかにします。第2部では、不在通知エージェントの設定に関する一般的な疑問点を検討し、トラブルシューティングの手法について解説します。

この記事は、不在通知エージェントを初めて使用する Notes ユーザーや、Notes ユーザーによるこのエージェントの実行を補助するシステム管理者の方を対象に書かれています。

不在通知エージェントの概要

不在通知エージェントは、Notes メール・テンプレートに含まれている LotusScript エージェントです。不在通知エージェントを有効にすると、ユーザーの不在時に受信したメールに対し、エージェントが自動的に返信します。エージェントを設定するときに、ユーザーはメッセージのテキストを指定したり、メッセージを返信しないユーザーまたは特殊なメッセージを返信するユーザーを設定できます。また、不在通知エージェントでは、不在期間をカレンダーで「予定あり」とマークするよう選択できます。不在時に同じユーザーから複数のメッセージを受信しても、このエージェントは最初のメッセージにのみ自動的に返信します。

不在通知エージェントの設定と有効化

不在通知エージェントを有効にするには、メール・データベースを開き、[ツール] をクリックして [不在通知] を選択します。または、[アクション] - [ツール] - [不在通知] を選択します。カレンダーから [ツール] - [不在通知] を選択することによっても有効にできます。Domino Web Access では、[ツール] - [不在通知] を選択することで不在通知エージェントを有効にできます。

[不在通知] を選択すると、不在通知エージェントを設定するためのタブ付きのダイアログが表示されます (図1参照)。

図1. [不在通知] ダイアログ
図1. [不在通知] ダイアログ

[日付] タブは、必須データが含まれる唯一のタブです。このタブを使用して、不在にする期間を入力します。ここで指定した期間は、不在を示す期間としてメッセージのテキストに含められます。エージェントは、オフにされるまで実行を継続します。オフィスに戻った日には、「おかえりなさい」というメッセージが不在通知エージェントから送られてきます。このメッセージには、不在時にメッセージを送信したユーザー名のリストとエージェントをオフにすることの確認が含まれています。

[不在通知] ダイアログの次の3つのタブはオプションです。これらのタブでは、送信するメッセージ・テキスト、特定のユーザーだけに送信する代替メッセージ、例外リスト (不在時に通知を送信しないユーザー) を設定します。これらのデフォルト値を変更する必要がない場合は、[日付] タブで [有効] ボタンをクリックすると、不在通知エージェントが有効になります。エージェントを有効にすると、不在通知ダイアログに現在のステータスが「有効」と表示されます。

それでは、ダイアログのオプションのタブを簡単に見ておきましょう。2 番目のタブ [不在通知メッセージ] では、返信メールに含めるテキストを追加できます (図2参照)。

図2. [不在通知メッセージ] タブ
図2. [不在通知メッセージ] タブ

3番目のタブ [特別なメッセージ] では、このタブで指定したユーザーに特別なメッセージを送信できます (図3参照)。

図3. [特別なメッセージ] タブ
図3. [特別なメッセージ] タブ

4番目のタブ [例外] では、自動返信を送らないユーザーを指定できます (図4参照)。

図4. [例外] タブ
図4. [例外] タブ

フィールドにグループ名が入力された場合、グループは個々のメンバーに展開されます。これは単に効率のために行われるため、時間のかかるこの操作は、メッセージの処理が必要になるたびにサーバーで実行されるわけではありません。この展開の短所は、グループのメンバーに関する情報が保持されないことです。後でグループのメンバーが変更された場合、グループ名を再入力して再展開しない限り、この変更は不在通知エージェントには反映されません。

メモ:前述のように、Domino Web Access でも不在通知エージェントを使用できます。設定手順は、Notes の場合と同様です。ただし、インターフェースは若干異なります (図5参照)。

図5. Domino Web Access での不在通知エージェントの有効化
図5. Domino Web Access での不在通知エージェントの有効化

不在通知エージェントがサポートしないことは?

不在通知エージェントは代理をサポートしません (別のユーザーのために不在通知エージェントをオンにする方法は、第2部の記事で解説します)。また、不在通知エージェントは、[作成者] レベルのアクセス権を持つユーザーには機能しません。さらに、不在通知エージェントは、同一の送信者から送信されてきた各メールごとには通知せず、最初のメールだけに通知します (このように設計されています)。

不在通知エージェントは、いつ、どこで実行されるのか?

不在通知エージェントはユーザーのホーム・メールサーバーを自動的に検出し、このサーバー上で実行されるようにエージェントを有効にします (右横の囲みを参照)。デフォルトでは、エージェントは午前4時から深夜 12 時までの間、6 時間ごとに実行されます (深夜 12 時から午前4時までは、他のメンテナンス・タスクが多数実行されるので、不在通知エージェントは実行されません)。エージェントの実行頻度を変更する方法については、この記事の「不在通知エージェントのカスタマイズ」セクションを参照してください。

ホーム・メールサーバー

ユーザーのホーム・メールサーバーとは、ルーターがメールを配信するサーバーのことです (ユーザーのメール・ファイルのレプリカを保持している他のサーバーに対して、このように呼ばれます)。システム管理者は Domino ディレクトリのユーザー文書でユーザーのホーム・メールサーバーを指定し、ユーザーは現在のロケーション文書でホーム・メールサーバーを確認できます ([ファイル] - [モバイル] - [ロケーションの編集] を選択し、[サーバー] タブの [ホーム/メールサーバー] フィールドを見ます)。不在通知エージェント自体は、ユーザーの現在のロケーション文書で定義されているホーム/メールサーバーを自動的に選択します。

不在通知エージェントを実行するために必要なユーザーの権限は?

Domino エージェントは、データベースの ACL 権限とプログラム実行 (Programmability) の制限によって制御されます。ユーザーの ACL は各データベースごとに定義され、ユーザーがそのデータベースに対して何を変更できるかを示します (たとえば、文書の読み取り、書き込み、変更、エージェントの変更など)。プログラム実行の制限は Domino ディレクトリの [セキュリティ] タブで定義され、サーバー上でエージェントを実行できるユーザーや、セキュリティに影響するメソッドを使用できるユーザー権限を指定します。不在通知エージェントに必要な制限付きのアクセス権のレベルをユーザーが持っていても、セキュリティに影響するどのメソッドも実行できません。

Notes/Domino 6 より前のリリースでは、不在通知エージェントを実行するために、ユーザーは自分のメール・ファイルに対し、少なくとも [設計者] のアクセス権と LotusScript/Java エージェントを作成する ACL 権限が必要でした。また、ユーザーはサーバーで LotusScript エージェントを実行する権限も必要でした。

リリース 6 から、メール・データベースに対して [編集者] のアクセス権を持つユーザーも不在通知エージェントを実行できるようになりました。[編集者] レベルのユーザーには、サーバー上で LotusScript/Java エージェントを実行する権限は必要ありません。ただし、ユーザーがエージェントを実行できるように、AdminP プロセスまたはシステム管理者によるエージェントの設定が必要です。[編集者] レベルのユーザーは、システム管理要求データベース (Admin4.nsf) に対して [作成者] のアクセス権が必要です。システム管理要求は、ユーザーの代わりに送信されるからです。Admin4.nsf データベースのデフォルトのアクセス権は [作成者] なので、デフォルトが変更されていない限り、特別な設定は必要ありません。

連続記事の第2部では、[編集者] レベルのユーザー用の設定について詳しく解説します。


不在通知エージェントのカスタマイズ

前述のように、不在通知エージェントは、メール・テンプレートに含まれている LotusScript エージェントです。エージェントの名前は OutOfOffice です。Domino Designer のエージェント・リストでこのエージェントを表示できます (図 6)。

図6. OutOfOffice エージェント
図6. OutOfOffice エージェント

メール・ファイルに対して [設計者] または [管理者] のアクセス権を持っているユーザーは、エージェント・リストでエージェントをダブルクリックすることで、エージェントを変更できます。変更できるのは、エージェントの実行時期、実行するサーバー、週末に実行するかどうかなどです。ニーズに合わせてエージェントのロジックを変更する高度なカスタマイズをしているユーザーもいます。スケジュールとエージェントを実行するサーバー名を変更するには、[エージェント] プロパティー・ボックスの最初のタブにある [スケジュール] ボタンをクリックします (図7参照)。

図7. エージェントのプロパティー
図7. エージェントのプロパティー

エージェントを変更するときは、次の点に注意してください。

  • 変更する前に、常にデータベースのバックアップを作成してください。誰しもミスを犯す可能性があります。バックアップを作成しておけば、すべての変更内容を元に戻せます。
  • テンプレートを変更すると、変更した内容が Domino Server 上のすべてのユーザーに反映されます。
  • デフォルト (6 時間おき、つまり1日4回) よりも頻繁に実行するようエージェントを変更する場合は、サーバーの負荷が少し高まることに注意が必要です。
  • エージェントの実行場所として [すべてのサーバー] を選択し、メール・ファイルのコピーが複数のサーバーにあると、エージェントが複数のサーバーで実行され、各メッセージが複数回処理される可能性があります。これは、受信した各メールごとに複数の通知が送られることを意味します。
  • エージェントのトリガーを [新規メールの受信前] に変更すると、エージェントは機能しません。[新規メールの受信前] トリガーは、このエージェントのロジックが使用する UnprocessedDocuments プロパティーを生成しません。
  • エージェントのトリガーを [新規メールの受信後] に変更すると、エージェントはユーザーのホーム・メールサーバーで実行されます ([実行するサーバー] の設定は無視されます)。繰り返しますが、サーバーの負荷が少し高まることに注意が必要です。
  • 実行するサーバーとして [Local] を選択する場合は、[定期ローカルエージェントの有効化] オプションを選択し ([ファイル] - [プリファレンス] - [ユーザー])、メールがユーザーのローカル・マシンに複製されるように設定します ([編集者] レベルのユーザーが不在通知エージェントをローカルレプリカで実行する方法については、この連続記事の第2部を参照してください)。
  • 複雑な変更を加えた場合 (たとえば、エージェントのコードの変更など)、変更内容を元に戻さない状態では、IBM Support から問題解決の支援を受けることが困難または不可能になることもあります。
  • テンプレートの新しいリリースが公開されると、Design タスクによってテンプレートが自動的に更新されます ([更新時に再設計/設計の置換を禁止する] が選択されていない場合)。メール・テンプレートの将来のバージョンに変更内容を再び組み込む必要があるので、変更内容のバックアップ・コピーを保管しておきます。

クラスター環境での不在通知エージェント

不在通知エージェントは、エージェントを有効にしたすべてのサーバーで実行されます。一般に、同じメッセージに複数の通知を送信するのを避けるために、エージェントは1つのサーバーで実行します。1 つのサーバーでエージェントを有効化し、そのサーバーがダウンした状況を考えます。もし、エージェントが有効になっていないレプリカにフェイルオーバーすると、エージェントは2番目のサーバーでは実行されません。最初のサーバーが再び利用可能になったとき、エージェントは遅れを取り戻そうとして、サーバーがダウンしている間に処理できなかったすべての文書を処理します。同じメッセージに対してユーザーが複数の通知を受け取る場合は、この連続記事の第2部の「トラブルシューティング」セクションを参照してください。


不在通知エージェントを有効にするときのアクセス権による違い ([管理者] または [設計者] と [編集者])

通常、すべてが正しく機能している場合は、ユーザーはアクセス権による違いを意識する必要はありません。また、エージェントを有効にするときに、特別な操作も不要です。このセクションの内容は、何らかの障害が発生したときのトラブルシューティングを補助する目的でのみ書かれています。

[設計者] または [管理者] 用にエージェントを有効にする方法と、[編集者] 用にエージェントを有効にする方法の違いは、[編集者] レベルのユーザーがエージェントの変更権限を持たないところから生じます。エージェントの有効化は、エージェントへの署名とスケジュールに沿って実行可能にすることの2つの部分で成り立っています。エージェントへの署名はエージェントの設計を変更するので、[設計者] または [管理者] のアクセス権が必要です。

エージェントを再署名せずに実行可能にすることで、エージェントの有効化の過程を2つの部分に分離しています。このため、[編集者] レベルのユーザーが特殊な設計を持つエージェントを有効化できます。また、誰の代理としてエージェントを実行するかを指定する方法が必要でした (この特殊なケースでは、エージェントの有効なユーザー ID を判断する方法として、署名を使用することは避ける必要がありました)。この機能を実現するために、エージェントの新しいプロパティーを2つ作成しました。[代理で実行] フィールドには、エージェントを代理実行されるユーザーの名前を格納します ([編集者] レベルのメール所有者)。[ユーザーの有効化を許可する] チェックボックスをオンにすると、[編集者] レベルのユーザーがエージェントを有効または無効にできます (図8参照)。

図8. エージェントの新しいプロパティー
図8. エージェントの新しいプロパティー

どのサーバー・エージェントも、[編集者] のアクセス権を持つユーザーが有効化できるよう指定することができます。しかし、この設定を行うことができるのは特殊な権限を持つユーザーだけです。この特殊な権限はサーバー文書の [セキュリティ] タブで定義され、[他のユーザーとして実行するエージェントを署名] 権限と呼ばれます。これは高レベルの特権なので、割り当てには十分な注意が必要です (サーバーは暗黙的にこの権限を持っています)。

[編集者] レベルのユーザーは、エージェントに署名しないため、LotusScript または Java エージェントを実行する権限は必要ありません。エージェントは、ユーザーの代理としてエージェントを実行するよう設定した ID によって署名されます。[他のユーザーとして実行するエージェントを署名] 権限があるどの ID も [制限付き LotusScript/Java エージェントの実行] 権限を持っているので、このエージェントは実行されます。

[編集者] レベルのユーザー用に実行するための不在通知エージェントの設定

ほとんどの場合、[編集者] レベルのユーザー用に不在通知エージェントを動作させるために、エージェント・プロパティーの [基本] タブと [セキュリティ] タブで特別な設定は必要なく、Domino ディレクトリのサーバー文書で [編集者] レベルのユーザーに特別なセキュリティ権限を与える必要もありません。Notes Client と AdminP タスクによって、ユーザーの代わりにこれらのすべての設定が適切に実行されます。[編集者] 用の設定は、[設計者] レベルおよび [管理者] レベルの設定よりもはるかに簡単です。つまり、[設計者] および [管理者] レベルのユーザーには、Domino ディレクトリのサーバー文書の [セキュリティ] タブで LotusScript エージェントを実行できるユーザーとして指定し、LotusScript エージェントを作成する ACL 権限を割り当てる必要があります。[編集者] レベルのユーザーにとって最も簡単なケースは、テンプレートがまったく変更されておらず、テンプレートの設計要素が「Lotus Notes Template Developers」で署名されている場合です。

しかし、何らかの問題が発生する場合は、このセクションを読み、不在通知エージェントを有効にするために何が必要なのかを知り、それを設定するための方法を理解することが重要です。

[ユーザーの有効化を許可する] オプションが選択されていると、[編集者] レベルのユーザーはエージェントを有効または無効にできます。しかし、このユーザーはエージェントを編集したり、内容を表示したりすることはできません。このオプションが選択され、メールの所有者が [設計者] または [管理者] レベルのアクセス権を持つ場合、このオプションは効果がありません。[ユーザーの有効化を許可する] が選択されていない場合 (デフォルトの設定)、エージェントは [設計者] または [管理者] レベルのアクセス権と LotusScript エージェントの実行権限を必要とします。

[編集者] レベルのユーザーに対する [ユーザーの有効化を許可する] は、手動で設定することもプログラムで設定することもできます。不在通知エージェントは、AdminP に要求を送信することでこのタスクをプログラム的に実行します。つまり、[編集者] レベルのユーザーが初めて不在通知エージェントを有効にしたときに、この方法でエージェントを設定し、有効にします。必要であれば、システム管理者はこの初期設定を手動で行うことができます。

プログラムによる手法は ConfigureMailAgent メソッドを使用します。このメソッドは、AdminP 要求 [ユーザー名の設定とスケジュールエージェントの有効化] を作成します。AdminP は [ユーザーの有効化を許可する] チェックボックスを設定し、[代理で実行] フィールドにユーザー名を入力し、サーバー ID を使用してエージェントに署名します。詳細については、この連続記事の第2部を参照してください。

[編集者] レベル用に手動で設定するには、ユーザーのメール・ファイルに対する [設計者] または [管理者] のアクセス権と、サーバー文書での [他のユーザーとして実行するエージェントを署名] 権限が必要です。エージェントを設定するには、まず、Domino Designer を起動し、[エージェント] プロパティー・ボックスを開きます。[代理で実行] フィールドに、ユーザーの階層名の短縮名を入力します。次に、[ユーザーの有効化を許可する] チェックボックスを選択します。エージェントは、エージェントを設定したユーザーによって署名されます。

[編集者] レベルのユーザー用の設定以外にも、不在通知エージェントには、メールの所有者が不在になる日付 (および、デフォルトの不在メッセージへの変更などのその他の情報) が必要です。これらの情報は、「(OutOfOfficeProfile)」と呼ばれる不在通知エージェントのプロフィール文書に保存されます。この文書の作成または更新は、ユーザーの不在通知エージェントの実行を介して行うか、(EditOfficeProfile) エージェントを実行することによって行います。これについては、第2部で説明します。

ユーザーが [ツール] - [不在通知] を選択して不在期間を指定する前に、手動による設定が行われている場合は、ユーザーがエージェントを実行すると、エージェントはすぐに有効になります。ユーザーが [ツール] - [不在通知] を選択し、何らかの理由によってそれが失敗した後に手動で設定された場合、エージェントはシステム管理者によって有効にされ、ユーザーの指定に沿って通知の送信が開始されます。

手動または AdminP 経由にかかわらず、この初期設定が行われた後は、AdminP は必要なくなります。ユーザーは [ツール] - [不在通知] を使用して、直接エージェントを有効または無効にできます。ACL に変更があった場合は ([管理者] から [編集者] へ、またはこの逆)、「ユーザーによる有効化」の設定を変更しなければならないので、ユーザーが次回に不在通知エージェントを有効にしたときに、AdminP が再び実行されます。

エージェントの設計を更新するために設計の更新が必要な場合は、設定情報が削除され、[編集者] レベルのユーザー用にエージェントを再設定するために AdminP が再び呼び出されます。エージェントの設計の更新は、テンプレート内のエージェントのコードが変更された場合にのみ発生します。Design タスクによってエージェントが更新されるたびに、テンプレート・エージェントのタイム・スタンプが実際のデータベース内のエージェントに保存されます。テンプレート内のエージェントのタイム・スタンプが、前回の更新時に保存されたタイム・スタンプよりも新しい場合にのみ、更新が実行されます。

[編集者] レベルのユーザーによって無効にされた不在通知エージェントがエージェント・リストにどのように表示されるのかを図9に示します。

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

数字の5が付いたチェックマークのアイコンは、エージェントは R5 サーバーで有効にされたように動作しますが、リリース 6 以降によって無効にされていることを示します。R5 と リリース 6 または 7 での [編集者] レベルのアクセス権の互換性については、この連続記事の第2部を参照してください。

[編集者] レベルの所有者が再びエージェントを有効にしたときに、エージェントがどのように表示されるのかを図 10 に示します (エージェント名の横のアイコンに注目してください)。

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

[最終更新者] に、サーバー名ではなくユーザー名が表示されています。これは、AdminP によって最初の有効化が行われたからです。エージェントがサーバーによって署名されていることは変わらないので、エージェントはサーバー上で問題なく実行されます。署名者の ID は、[設計] プロパティーの [ツール] タブの一番下に表示されます (図 11 参照)。

図11. [署名者] フィールド
図11. [署名者] フィールド

不在通知エージェントを有効化する各方法の違いを下表にまとめました。方法には、[設計者]/[管理者] のアクセス権を持つユーザーによる方法、[編集者] のアクセス権を持つユーザーによって自動的に行う方法、[編集者] のアクセス権を持つユーザーによって手動で行う方法、Domino Web Access を介して行う方法の4つがあり、この順番で各列に記述されています。

-- [設計者]/[管理者][編集者]/自動[編集者]/手動Domino Web Access
有効化の実行者Notes ClientAdminP (初回)、Notes Client (2 回目以降)システム管理者 (初回)、Notes Client (2 回目以降)AdminP
有効化のタイミング即時遅延 (初回)、即時 (2 回目以降)即時遅延 (常に)
エージェントを有効にした後の署名メール・ファイルの所有者サーバーシステム管理者サーバー
エージェントを有効にした後の [代理で実行] フィールド使用されないメール・ファイルの所有者名メール・ファイルの所有者名メール・ファイルの所有者名
メール・ファイルの所有者に対するサーバーの制限メール・ファイルの所有者には制限付きの実行権限が必要メール・ファイルの所有者には何の権限も必要ないメール・ファイルの所有者には何の権限も必要ないメール・ファイルの所有者には何の権限も必要ない
署名者に対するサーバーの制限メール・ファイルの所有者と署名者は同じで、制限付きの実行権限が必要サーバーは暗黙の権限を持つので、サーバーには何の権限も与える必要はないシステム管理者には、[他のユーザーとして実行するエージェントを署名] 権限または制限なしの実行権限が必要サーバーは暗黙の権限を持つので、サーバーには権限を与える必要はない

まとめ

この記事では、不在通知エージェントの概要を取り上げました。不在通知エージェントとは何か、そしてどのように動作するのかを説明しました。また、エージェントを有効にするいくつかの方法の主な違いについて明らかにしました。

この連続記事の第2部では、不在通知エージェントの設定方法をさらに詳しく見ていきます。さらに、システム管理者やユーザーが遭遇する可能性のあるいくつかの問題を取り上げ、トラブルシューティングの方法について解説します。

参考文献

コメント

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=337705
ArticleTitle=Lotus Notes の不在通知エージェント(改訂版): 第1部
publish-date=09202005