内容


重温 Lotus Notes 离开办公室代理:第 2 部分

管理离开办公室代理并进行故障检修

Comments

本系列的第 1 部分中,我们重新向您介绍了这个 Notes 离开办公室(Out of Office)代理。我们展示了关于离开办公室内部和外部是如何工作的详细概述。在第 2 部分中,我们现在将注意力转向离开办公室代理的配置。我们还将讨论代理的故障检修。与本系列的第 1 部分一样,我们假设您已熟悉 Notes 客户机的使用和 / 或 Notes/Domino 环境的管理。

AdminP 和离开办公室代理

正如本文第 1 部分所提到的,AdminP 用于为编辑者权限级别的用户启用离开办公室代理。当发出 AdminP 请求以配置和启用离开办公室代理时,Admin4.nsf 数据库中就会出现该请求的文档(参见图 1)。

图 1. 离开办公室代理的 AdminP 请求
离开办公室代理的 AdminP 请求
离开办公室代理的 AdminP 请求

在处理该请求时,会提交一个响应文档(参见图 2)。

图 2. AdminP 响应文档
AdminP 响应文档
AdminP 响应文档

当 AdminP 完成离开办公室代理的配置和启用时,代理列表将显示服务器已启用该代理并为其签名。AdminP 启用代理的速度取决于下列因素:

  • AdminP 正运行多少个线程
  • 挂起了多少个其他 AdminP 请求
  • 服务器上 AdminP 处理请求的频率是多少
  • 是在单服务器环境中进行操作,还是在多服务器环境中进行操作

在单服务器环境中,主邮件服务器和管理服务器是相同的,启用请求将提交给主邮件服务器上的 Admin4.nsf。启用过程中的延迟极小。在多服务器的 Domino 配置中,启用请求将发送给主邮件服务器上的 Admin4.nsf,然后基于 Admin4.nsf 的 ACL 中的“管理服务器”设置将之复制给 hub 服务器。hub 服务器处理该请求,批准或拒绝它。然后,Admin4.nsf 将批准的或拒绝的请求返回给用户的主邮件服务器。启用过程中的延迟取决于两个服务器之间的复制安排。

您可以通过发出下列服务器命令强制 AdminP 处理请求:

tell adminp process all
tell adminp process new

当 AdminP 请求可能失败时

正如前面提到的,邮件文件所有者必须至少拥有 Admin4.nsf 的 ACL 中的 Author 权限。Admin4.nsf 数据库上的默认权限就是 Author,因此除非您的环境中更改了这个默认值,否则就不需要进行修改。在继续启用代理之前,AdminP 请求将停下来查看请求者的名称是否与邮件文件所有者相同(因为编辑者只能启用他们自己邮件文件中的代理),以及该代理是否具有一个有效的签名。

下面是可能的有效签名列表:

  • Lotus Notes Templates Developer/Lotus(这不需要在 Security 选项卡中列出;权限是隐式授予的)
  • 服务器 ID(这也不需要在 Security 选项卡中列出)
  • 有权对代表其他用户运行的代理进行签名的任何签名者

与 R5 的兼容性

从 Domino 5.0.8 开始,代理管理器就可以识别由编辑者权限级别的用户所启用的代理。这些代理由代理管理器所识别,并在 Domino 5.0.8 以及稍后在服务器上执行。但是,Domino Designer 5.0.8 用户界面和 R5 邮件模板不适应这一新功能。因此,版本 5 编辑者权限级别的用户无法激活代理,而 Domino Designer 5.0.x 也无法用图形区分用 Notes 6.x 客户机所启用的代理的状态。

为了跟踪启用状态,我们向 Domino Designer 6 中的 Agents 视图添加了图标:

  • check-5 指明该代理仅仅是为版本 5 的服务器(R5.0.7 和更早的版本)所启用的。该图标还意味着该代理被 Notes/Domino 6 中编辑者权限级别的用户禁用。该代理将按照被 Domino 6 服务器(以及 R5.0.8 和更高版本)禁用,但在运行 R5.0.7 或更早版本的 Domino 5 服务器上启用那样被对待。
  • check-6 表示在 Notes/Domino 6(以及 R5.0.8 和更高版本)上运行的代理。该图标意味着代理被 Notes/Domino 6 中编辑者权限级别的用户启用。该代理将按照被 Domino 6 服务器(以及 R5.0.8 和更高版本)启用,但在运行 R5.0.7 或更早版本的 Domino 5 服务器上禁用那样被对待。
  • 不带数字的 check 指明为版本 5 和 Notes/Domino 6 启用代理。该代理不被编辑者权限级别的用户启用 / 禁用,并在版本 5 和 Notes/Domino 6 中表现相同。(关于该图标的图像,请参阅 本文章系列的第 1 部分。)

为其他用户启用离开办公室代理

正如本文章系列的第 1 部分中所提到的,离开办公室代理最初的设计不支持委派。我们从客户那里了解到他们需要该功能,我们的模板小组正在努力解决该问题。同时,下面提供了两个用于委派的变通方法:

变通方法 1. 启用任何权限级别的用户

为了实施这个变通方法,需要具有对代表其他用户运行的代理进行签名的权限。在 Domino Designer 中,打开希望启用离开办公室代理的用户的邮件文件。选择 EditOfficeProfile 代理,并单击菜单中的 Run。它将显示离开办公室配置文件,可以在该文件中指定离开的日期,并编辑邮件文本消息。

接着,打开离开办公室代理(它在代理列表中列为 OutOfOffice)并在“Run on behalf of”域中指定邮件所有者的名称。检查是否将所运行的服务器设置为用户的主邮件文件,并保存代理。然后,从代理列表中启用代理。

当将邮件所有者名称输入“Run on behalf of”域时,需要输入 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. 启用设计者 / 管理者用户

如果您作为管理者需要启用另一用户的离开办公室文件,就可以暂时将邮件文件所有者的名称更改为您自己的名称。可以通过选择 Tools – Preferences 并将您的名称输入“This mail file belongs to”域来完成该工作。这将使 Tools 下面出现 Out of Office 选项。这将允许您为原来的邮件文件所有者启动离开办公室代理。您可以撰写消息以包含离开的人的名称(在主题行和 / 或消息文本中)。但是,离开办公室消息将使用启动该离开办公室代理的人的 ID 来进行签名(本例中,此人就是您)。这意味着消息将以您的名义发送。离开办公室代理所运行的服务器来自于您当前场所文档中的主 / 邮件服务器设置。因此,如果您所使用的机器所带的场所文档指向不同于用户的主邮件服务器的服务器,那么有两种方法改正它。您可以在 Domino Designer 中编辑代理并更改所安排的服务器名称,也可以暂时更改当前场所文档以指向用户的主邮件服务器。

如果您使用该方法,Welcome Back and Please Disable 邮件消息就将发送给您(启用代理的人),而非真正启用代理的邮件文件所有者。

Domino Web Access 中的离开办公室代理

R5.0.8 中,Domino Web Access(DWA)中添加了离开办公室功能。在版本 6.0.2 之前,Domino Web Access 和 Notes 客户机使用两个不同的代理来执行离开办公室功能;Notes 使用 OutOfOffice 代理,而 Domino Web Access 使用 iwa_OutOfOffice。从版本 6.0.2 开始,Notes 客户机和 Domino Web Access 都共享邮件模板中的同一 OutOfOffice 代理。Notes 和 Domino Web Access 如何完成该功能的主要区别就是,Domino Web Access 总是使用 AdminP 来启用和禁用代理,而 Notes 仅仅使用 AdminP 进行初始的配置 / 启用。

AdminP 通常用于为 Domino Web Access 启用和禁用代理,因此它要求用有权为代表其他用户运行的代理进行签名的 ID 来对代理进行签名。如果通过 Domino Designer 编辑代理,就将用您自己的 ID 来进行签名。如果您没有为代表其他用户运行的代理进行签名的权限,AdminP 就会失败,并显示消息“You are not authorized to perform this operation.”。请查阅本文后面的小节“检修 AdminP 请求故障”。

如果希望 Domino Web Access 用户使用离开办公室代理,他们就至少需要其邮件文件的 ACL 中的 Designer 权限。此外,为了使用离开办公室代理,必须将 Maximum Internet Name 和 Password 设置增加到设计者或更高。

默认情况下,离开办公室代理不回答来自 Internet 的电子邮件。可以通过在离开办公室配置文档的 Exceptions 选项卡上禁用该选项来更改该行为。

如果使用 Domino Web Access 启用离开办公室代理,就要使用 Domino Web Access 禁用它。同样,如果使用 Notes 客户机启用代理,就要使用 Notes 禁用它。如果在两个客户机之间进行切换,就可能碰到问题。如果碰到问题,就通过模板恢复离开办公室代理。这样做最容易的方法就是替换邮件模板的设计。从 Domino Desginer 中,删除“(OutOfOffice)”代理(这确保您将获得原始版本),然后选择 File - Database - Replace Design。为模板服务器名称选择 Local。向下滚动列表,并选择 Domino Web Access (6)。这将显示文件名 iNotes6.ntf。单击 Replace 按钮。这是一个快速操作,大约需要一分钟。

故障检修

本小节将讨论我们的支持小组所处理的一些离开办公室代理问题,并提供一些检修排除这些问题的提示。

用户没有按预期收到离开通知

有可能终端用户期望获得对于每个发送者所发送的每一条消息的通知。但是,代理有意仅仅响应第一条。询问终端用户他们是否收到来自某人的消息,如果没有,就继续下列步骤。

与用户进行核对以确定他们是否使用 Tools - Out of Office 启用了代理。在下列故障检修步骤中,我们假设他们这样做了,但是发生了一些错误。我们需要确定的第一件事情就是代理是否运行,或是否代理已运行但没有发送消息。

第一个可能的失败原因就是没有启用代理。请记住,编辑者权限级别用户的初始启用过程不是瞬时的。另一个可能的失败原因就是代理开始运行时的代理安全性配置。第三个可能的问题就是错误地配置了邮件服务器。最后,可能由于代理本身的设计更新而关闭了离开办公室代理。我们将一一查看如何诊断这些可能性。

是否启用了代理呢?
检查是否启用了代理。图 3 展示了离开办公室代理启用时在代理列表中是如何显示的:

图 3. 启用的离开办公室代理
启用的离开办公室代理
启用的离开办公室代理

图 4 展示了禁用的离开办公室代理:

图 4. 禁用的离开办公室代理
禁用的离开办公室代理
禁用的离开办公室代理

请注意“Last Modified By”列中出现的名称。

如果看到代理是禁用的,而代理所有者的权限级别是设计者,就停下来检查以确定该所有者是否具有创建 LotusScript/Java 代理的权限。如果他们没有,将不会启用代理列表中的代理。当不具有创建 LotusScript/Java 代理的权限的设计者启用离开办公室代理时,将在状态栏上收到错误“You are not authorized to perform this operation”(参见图 5)。当前状态将更改为 Enabled,并且可以忽略错误。

图 5. 未授权的错误消息
未授权的错误消息
未授权的错误消息

如果设计者权限级别的用户没有创建 LotusScript 代理的权限,就授予他们该权限。他们现在应该可以启用代理了。(默认情况下,该权限已经授予给了管理者权限级别的用户,因此他们不会碰到这种情况。)

如果邮件所有者具有编辑者权限,那么没有立即启用离开办公室代理就是正常的。这种情况下,将在离开办公室对话框的顶部看到对于这一结果的警告(参见图 6)。

图 6. 请求进行中的错误消息
请求进行中的错误消息
请求进行中的错误消息

发生该延迟是因为需要为编辑者权限级别的用户配置代理,这是通过对 AdminP 的请求完成的。延迟一般是从单服务器环境中的几分钟到多服务器配置中的 30 分钟左右(因为需要在服务器之间复制请求)。如果经过了足够的时间,而仍然没有启用代理,就请查阅本文后面的小节“检修 AdminP 请求故障”。

如果看到代理是禁用的,并由 Lotus Notes Template Developers/Lotus 签名,而且修改日期比假定用户打开代理时更近一些,这就意味着更新办公室代理代码时的 Design 任务禁用了代理。这些更新只是偶尔发生,但遗憾的是,当它们发生时,就无法保存启用代理的用户的签名。代理的字节代码一变更,旧的用户签名就变成无效的了。Design 任务将用来自模板的更新代理替换邮件数据库中的活动代理,更新的代理具有模板设计者的签名而非用户的签名,并且是禁用的(因为它无法在正确的权限下运行)。

在 Notes/Domino 7 以前,该签名难以检测;终端用户将注意到代理停止执行其任务,但无法判断是为什么。在 Notes/Domino 7 中,使用由 Domino Domain Monitoring(DDM)完成的事件报告(如图 7 中所示)通知管理员,他或她就可以在必要时采取正确的行动。

图 7. 事件报告
事件报告
事件报告

DDM 事件报告包含代理的名称和它运行时所代表的用户的名称。管理员可以在 Domino Designer 中编辑代理,将“Run on behalf of”值设置为被更新所禁用的用户的名称,并启用代理。管理员将需要具有代表服务器文档的 Security 区域中的其他用户为代理签名的权限。

代理是否尝试运行?
如果启用了代理,而您仍处于假期中,所以仍假设代理是活动的,那么就要停下来查看它是否出现在代理管理器的调度队列中。为了查看调度队列,要在服务器控制台发出“tell amgr schedule”命令。如果已经调度该代理,将看到下列一行输出:

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

该命令应该在邮件文件所有者的主邮件服务器上发出。如果在代理调度队列中没有看到它,就要检查是将代理安排在哪一台服务器上运行的。我们可以通过查看代理日志,或查看服务器日志,了解它是否尝试运行。请记住默认情况下,每隔六小时调度代理运行一次。检查代理管理器队列将允许您查看是否已经调度它运行,甚至是在它第一次运行之前。

为了查看代理日志,要在代理列表中选择代理,右击鼠标并选择 Log。如果代理运行成功,日志将如图 8 中所示。时间戳将告诉您代理是何时运行的。

图 8. 代理日志
代理日志
代理日志

请注意,如果已经通过在客户机上运行测试了离开办公室代理,那么它将在服务器上执行期间重写所生成的日志。如果以某种方式修改代理,那么上次运行的日志将被删除。如果这些情形中的某一种适用于您,就需要检查服务器日志以确定代理是否运行,或在运行期间是否发生错误。如果代理没有运行,将会看到消息“The agent has never been run before”。这意味着,它自从被修改(启用)以来没有运行过。

为了在服务器日志中确定代理是否运行,要检查服务器日志并搜索有问题的用户的邮件数据库名称。

为了查看代理运行的有关信息,需要打开代理管理器日志记录。代理日志记录有两个 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

请注意,邮件所有者是代理的签名者,也是“on behalf of”的值(Rain Cloud/Lily),因为邮件所有者直接启用了代理。

下面是一个使用 AMGR_DEBUG=* Notes.ini 变量成功运行(为设计者 / 管理者权限级别的用户)的示例。它不仅显示了关于代理启动、代理的签名者以及代理代表谁运行的信息,还显示了关于脚本库签名者的信息,以及代理运行长度(以 tick 为单位)和下一次运行的调度时刻:

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

如果代理开始运行,但发生有关安全性权限的错误,那么就是代理签名者的权限有问题。可能有两种错误;错误取决于邮件所有者的 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 Directory Server 文档的 Security 选项卡中 Programmability Restrictions 区域中授予代理签名者权限来纠正(参见图 9)。至少需要设计者 / 管理者权限才能运行受限的 LotusScript/Java 代理。手工设置代理的管理员至少需要有权为代表其他用户运行的代理进行签名。Lotus Notes Template Developers/Lotus 组和服务器 ID 都具有为代表其他用户运行的代理进行签名的隐式权限,因此不需要显式地列出。

图 9. Programmability Restrictions 域
Programmability Restrictions 域
Programmability Restrictions 域

对于所有权限级别的用户而言,如果没有找到代理运行所生成的输出,就要检查是否打开了其中一个代理管理器 Notes.ini 变量。如果已经打开,就要检查调度代理运行的服务器。或许将代理调度到另一服务器上运行了。

对于编辑者权限级别的用户,如果没有找到代理运行所生成的输出,就要检查是否启用了“Allow user activation”域,以及用户的名称是否出现在“run on behalf of”域中。如果经过了足够长的时间,且没有设置那些值,那么 AdminP 请求就没有成功完成。关于检修 AdminP 请求的故障,请参阅本文后面的讨论。

是否发送了邮件?
如果代理开始运行,但没有发送邮件,就要检查是否存在下列指示邮件发送问题的服务器控制台错误:

  • Unable to find path to server
  • Server Not Responding
  • ...remote server is not a known TCPIP host

这些错误通常是由服务器配置错误引起的。检查服务器文档中的下列域以确保它们是正确的:

  • ServerName位于 Basics 选项卡上,应该包含服务器的缩写层次名称。
  • MailServer位于 Basics 选项卡上。如果该条目不正确,那么通常返回的错误是“Server Not Responding.”。如果服务器名称已经更改,而没有更新该条目,就可能发生该错误。该条目应该包含服务器的缩写层次名称,例如 Fisheye/Lily。
  • NetAddress位于 Notes Network Ports 选项卡上的 Ports 区域中。该域应包含全限定的 Internet 主机名、内部 IP 地址或 Domino 服务器缩写名称。应该对照主文件或 DNS 检查服务器文档中 TCPIP 端口设置的 Network Address 条目以确保准确性。Network Address 域中使用的正确语法应该是服务器的全限定域名,例如 fisheye.lily.com。

另一个故障检修技术就是简化问题并测试从比离开办公室代理更简单的代理发送消息。使用下列 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 )

用户收到同一消息的多个确认

如果用户抱怨收到太多的离开办公室确认,通常说明离开办公室代理在不止一台服务器上运行。在离开办公室代理配置中选择“-Any Server-”而非指定的服务器名称将导致代理在具有您邮件副本的所有服务器上运行。(根据代理逻辑,在多个服务器上运行同一代理可能导致复制冲突。)

如果将触发器更改为默认的“After new mail arrives”,代理将仅仅在您的主邮件服务器上运行。如果没有设置 AMgr_DisableMailLookup Notes.ini 变量,并将“new mail”代理设置为在非主邮件服务器上运行,那么代理将不会运行。在 R4.62 和更高版本中,将会生成下列运行时错误:“AMgr: Agent 'agent' will not run. It is intended to run on 'servername,'”,其中 servername是您的主邮件服务器的名称。

离开办公室代理不阻止用户指定过去的日期。这可能导致生成额外的消息。检查离开办公室配置文件中所指定的日期。

用户收到多个关闭代理的提醒

在回到办公室禁用离开办公室代理之后,用户可能会继续收到禁用离开办公室代理的提醒。导致该问题最常见的原因就是存在另一邮件文件副本仍然启用了离开办公室代理。检修该故障的一个好方法就是查看消息的文档属性,以便确定实际上是哪一服务器发送了消息(假设您的域中具有多个服务器)。在知道是哪一服务器发送消息之后,就可以向服务器控制台发出“tell amgr sched”命令以确定服务器上当前启用了哪些代理。请不要忘记也可以在本地邮件文件中启用代理,这不会在服务器的“tell amgr schedule”命令中显示出来。

用户重新命名之后离开办公室代理产生的问题

离开办公室代理在用户的邮件文件中的简要表(Profile)文档中存储配置信息。当用户更改他或她的名称时,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

简要表文档用于记录代理所响应的用户的名称。未必会但有可能发生的是,所记录的名称数目在代理执行期间增长过大。在这种情况下,当用户启用或禁用代理时,将收到错误消息“Field or paragraph is more than 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 年年初已经可以使用。)

在进行故障检修时考虑的问题

我们将通过用户在报告问题时要询问的一系列问题来结束故障检修小节:

  • 离开办公室代理是仅仅对于一个人不工作,还是对于所有人。如果是对于所有人不工作,就很可能是邮件配置问题。同时,请确保代理管理器和 AdminP 任务都在运行。
  • 代理是通过 ID 而非 Notes Template Developers 进行签名的吗?如果是通过另一 ID 签名的,这就意味着执行了某些更改代理的操作。这是一个您所期望的签名吗?(服务器用于编辑者权限级别的用户,邮件所有者用于设计者 / 管理者用户)。如果不是,就要检查签名者的权限级别。
  • 如果假设代理现在应该运行,那么代理处于代理管理器调度队列中了吗?
  • 是否将调试级别设置为 Log_AgentManager = 1 呢?
  • 服务器控制台上存在错误吗?
  • 如果用户具有编辑者权限,AdminP 任务中存在代表用户的请求问题吗?
  • 是否调度代理在正确的服务器上运行呢?
  • 用户最近重新命名了吗?
  • 用户的 ACL 最近是否更改了?如果用户权限过去是设计者,然后更改为编辑者,那么离开办公室代理可能是由导致 AdminP 失效的 ID 进行签名的。

结束语

离开办公室代理是 Notes 中使用最广泛的一种代理。在大多数情形中,离开办公室代理都工作得很出色。但是当发生错误时,管理员受到了强烈的抱怨!我们希望本文章系列能够使您通过理解代理内部真正发生的情况更容易地处理问题。

致谢

作者想要感谢 Lotus 支持小组,特别是 Amy Knox 收集了客户在使用离开办公室代理时所遇到的问题和经验。支持知识库以及 developerWorks:Lotus 上 Notes/Domino 论坛中的帖子帮助了作者寻找本文中所讨论的许多问题。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=96130
ArticleTitle=重温 Lotus Notes 离开办公室代理:第 2 部分
publish-date=10172005