转自: http://space.itpub.net/14751907/viewspace-630791
让我们从 AdminP 的一些基础诊断流程开始。
Administration Process 使用 Domino 任务“AdminP”来处理请求。这个任务在启动时从 Notes.ini 文件的 ServerTasks= 行装载,并且必须启用它才能让 Administration Process 运行。
如果 AdminP 没有处理任何请求,那么首先要确保启用了该任务。如果任务已启用,则尝试在服务器控制台发出“tell adminp restart”命令来重启任务。例如,AdminP 任务未能正常运行时可能导致的错误为:
“The ADMINP task either does not exist or does not accept Tell commands.”
要确定 Domino 服务器是否启用了 AdminP 任务,从服务器控制台发出“show tasks only”(“sh ta on”)命令以检查“Admin Process”是否在任务列表中(见图 1)。如果任务不在列表中,从服务器控制台发出“load adminp”命令装载它。
Administration Request 数据库(Admin4.nsf)可用作诊断 AdminP 问题时的初级工具。如果管理请求发生错误,那么父请求下面将出现一个带有红色叉号 ‘X’ 的日志(或响应)文档,表示有条件未被满足。双击失败请求找到导致失败的原因。
除了导致错误的失败请求之外,一系列请求中的一个 AdminP 请求可能未得到处理但不生成错误图标。查看 Administration Request 数据库中一系列请求中的最后一个请求,看看处理过程是在哪里停止的。
了解请求是因其他请求的完成或其他一些事件触发的之后,我们就可以查看 Administrator Client Help 文档“Administration Process Requests – One Domain”或“Cross Domain Administration Requests”,从而获得一个包含常见的 AdminP 请求处理流的链接列表。
要想获得关于失败原因的提示,您可以尝试选择 Help 文件中与未得到处理的最后一个请求匹配的文档,然后查看该请求的“Triggered by”、“Carried out on”和“Carried out”部分。下面是一个来自 Domino 7.0.2 Administration Client Help 文件的例子:
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> Get Replica Information for Deletion Purpose: The application supported by the database is now obsolete and all replicas of the database can be removed. Triggered by: From the Domino Administrator, choosing the File tab, selecting the database you are deleting, and then choose Files - Delete. Or, choose the database on the bookmarks or workspace and choose Database - Delete. Carried out on: All servers in the domain. Carried out: Immediately Result: AdminP reads the database ACL to verify that the request signer is the database Manager. If so, generates an "Approve Replica Deletion" request for the server administrator to accept or reject. If the signer is not a database administrator, an Event is logged. <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> |
注意,并不是生成的每个 AdminP 请求都能得到处理,这是一种正常现象。如果请求和等待请求的目标没有关联,那么不应该也不会处理该请求。例如,如果用户名不在任何 Reader 或
Author 字段列表中,那么在 Rename
Person AdminP 请求期间将生成一个 Rename in Reader / Author fields 请求,但该请求不会被处理。
从复制角度诊断 AdminP 要求了解任务与复制之间的联系。理想情况下,您希望将多 Domino 服务器环境配置成一个集群以提高 AdminP 的效率。不过,如果您没有在请求服务器和管理服务器之间复制 Admin4.nsf、Certification Log (Certlog.nsf) 和 Domino Directory (Names.nsf),或者仅在调度任务进行复制,那么可能发生上述问题;即 Administration Request 数据库中没有触发任何问题,但 AdminP 请求仍然得到处理。
AdminP 请求在 Administration Request 数据库的 Administration Server 上处理。要确定哪个服务器是 Administration(或处理)Server,请导航到 Administration Request 数据库的 Advanced Access Control List (ACL) 设置(见图 2)。
注意,AdminP 请求可在 Administration Server 之外的服务器上生成。这对问题诊断过程非常重要,因为在服务器而不是 Administration Server 上生成的请求首先必须被复制到驻留在 Administration Server 上的 Admin4.nsf 的副本。然后,为了完成该过程,必须将该请求的响应文档复制回到请求服务器上的 Admin4.nsf 的副本。
如果 AdminP 请求未被处理或者处理时间过长,那么可能是请求服务器仅和 Administration Server 在调度任务上进行复制,或者请求服务器没有与 Administration Server 建立连接。
与复制和 Administration Request 数据库相关的另一个诊断指标是确保每个服务器上的 Admin4.nsf 数据库是彼此的副本。为此,您可以检查每个副本的数据库属性的 Info 选项卡(见图 3)。
另一个导致 AdminP 请求失败或未被处理的原因是没有在 Admin4.nsf、Certlog.nsf 或Names.nsf 的 ACL 中列出请求管理员或请求服务器,或者它们没有适当的访问权限。理想情况下,请求管理员和请求服务器应该拥有适当的权限来访问它们在这些服务器中生成的请求。
请求管理员或服务器必须能够对目标数据库进行必要的更改,以成功处理 AdminP 请求。这对重命名和重新验证尤为重要。
当尝试 Delete Person 或 Delete Server 请求时,一定要确保请求管理员或请求服务器在 Domino Directory 的 ACL 中具有 Delete Documents 特权。
要记住,服务器或管理员可能拥有数据库的 Manager 访问权限,但在 ACL 中不具有 Delete documents 权限。如果出现这种情况,那么 Delete 请求将失败或不能正确处理。
图 4. 没有 Delete documents 特权的 Manager 访问
Administration Server 或请求服务器中的 Server 文档的安全设置不正确也会导致 AdminP 请求失败或未被处理。当处理 Move 或 Create Replica 请求时,一定要确保这些设置是正确的;否则将收到以下错误信息:
“You are not authorized to create new replica databases on this server.”
要确认管理员或服务器是否有适当的权限来在目标服务器上创建副本,请查看 Server 文档的Security 选项卡下的 Create new replicas 字段(见图 5)。
Direct Deposit 是在 Domino 8.0 中引入的一个特性,它允许 Administration Request 数据库在非集群 Domino 服务器环境中自动复制某些请求。表 1 显示了可以直接存放的 AdminP 请求,它们对诊断该特性非常重要。
在 Associated Requests 栏中用粗体显示的请求是可以直接存放的请求,而用斜体显示的请求是不可以直接存放的请求。您可能已经注意到,有些 Direct Deposit 请求由非 Direct Deposit 请求触发或会触发非 Direct Deposit 请求。从问题诊断的角度看,这个表能够帮助您理解为什么 AdminP 请求在非集群环境中会延迟,即使启用了 Direct Deposit 也是如此。
请求名 | 相关联的请求 |
---|---|
Create New Replica | 没有相关联的 Direct Deposit 请求 |
Move Database | 包括 Approve Replica Deletion 和 Delete Replica After Move 请求 |
Approve Replica Deletion | 从 Move Database 请求生成 |
Delete Mail File | 包括 Get Mail File Information for Deletion 请求 |
Get Mail File Information for Deletion | 从 Delete Mail File 请求生成 |
Rename Person in Free Time Database | 从 Rename User 请求生成 |
Promote New Mail Server Access | 从 Move Mail File 请求生成 |
Create New Mail File Replica | 从 Move Mail File 请求生成 |
Delete Replica After Move | 从 Move Database 请求生成 |
Delete in Design Elements | 从 Delete Person 请求生成 |
Get Replica Information for Deletion | 从 Delete Database 请求生成 |
Delete Database (non-mail file) | 包括 Get Replica Information for Deletion 请求 |
Promote New Roaming Server’s Access | 从 Move Roaming User to Another Server 请求生成 |
Delete Replica (for Roaming User) | 从 Move Roaming User 和 Delete Roaming User 请求生成 |
Create Roaming Replica | 在 Create Roaming User 的配置阶段(Roaming File Replica Creation Options 对话框)生成 |
Delegate IMAP Mail Files | 没有相关联的 Direct Deposit 请求 |
Delete Domino Server from Catalog | 在 Delete Server 请求期间生成 |
Rename Web User in Free Time Database | 在 Rename Web User 请求期间生成 |
Monitor Roaming User’s Replication Stubs | 在 Update User from Non- roaming to Roaming 请求期间生成 |
Delegate Mail File on the Administration Server | 没有相关联的 Direct Deposit 请求 |
Change the server on which the agent runs | 在 Move Database 请求期间生成 |
Update Replica Settings | 在 Move database 期间从非集群服务器请求生成 |
Rename in Reader / Author fields (for shared agents) | 在 Rename User 请求期间生成 |
Rename in Reader / Author fields (for agents) | 在 Rename User 请求期间生成 |
Delete in Reader / Author fields (for agents) | 在 Delete User 请求期间生成 |
Monitor Server's SSL status in Domino Directory | 在注册期间启用 SSL 端口时的 3 个Server Registration 请求之一 |
Delegate Mail File on Home Server | 用户发起 |
注意:要禁用 Direct Deposit,在发起 AdminP 请求的服务器的 Notes.ini 中添加参数 ADMINP_DONT_ATTEMPT_DIRECT_DEPOSIT=1。
属于 Direct Deposit 请求的 AdminP 请求具有专门的处理服务器。非 Direct Deposit 请求可在当前域中的所有服务器上处理。因此,尽管 Direct Deposit 可加快非集群环境中 Direct Deposit 请求的处理,但是我们仍然推荐配置集群环境来高效地处理所有其他 AdminP 请求。
如上面的第 2 部分所述,AdminP 不独立于 Domino 的其他任务和特性进行操作,并且跨域 Administration Process 为诊断 AdminP 问题增添了一丝复杂性。
您可以使用上述的所有技术来诊断跨域 AdminP;不过,要获得更高的效率,您必须理解 AdminP 在一个域中运行和在多个域中运行之间的差别。理解跨域 AdminP 的关键是,只有以下请求能够跨域处理:
- Delete person in Domino Directory
- Delete server in Domino Directory
- Rename server in Domino Directory;即将服务器名从平面结构升级到分层结构
- Rename person in Domino Directory
- Create replica
- Get replica information for deletion. 这个请求在删除数据库及其副本时生成。
要详细了解跨域 AdminP,请查看 Administrator Client Help 文档的
“Processing administration requests across domains”。
在不同 Domino 域上的 Administration Request 数据库不是彼此的副本;因此,不在它们之间复制新的请求和响应文档以备处理,这与在一个域中不同。跨域 AdminP 使用 Router 任务来将请求发送(mail in)到目标服务器的 Admin4.nsf(见图 6)。
如果没有启用 Router 任务或该任务在目标服务器上未能正常运行,那么来自源服务器的请求将不会被发送到目标服务器的 Administration Request 数据库以供处理。
如果跨域 AdminP 请求失败或未被处理,那么 Server Console 中会出现一条错误信息,指出请求失败的原因。通常,诊断失败的跨域 AdminP 请求的第一步是再次检查 Cross-Certification
文档、Cross-Domain Configuration 文档和 Connection 文档中的字段在源和目标服务器之间是否出现不正确的条目。
在处理通过跨域 AdminP 重命名管理员或服务器的请求时,可能显示以下错误:
“A required certifier entry was not found in the Name and Address Book; consult the Notes Log for details on the specific entry.”
该错误表明在请求域的 Domino Directory 中未找到目标 Organization 或 Organizational Unit (OU) 的认证器。查看 Cross-domain Configuration 文档进行确认(见图 7)。
图 7. Cross-domain Configuration 文档节选
要成功处理跨域重命名,必须将所需的认证器放到 Notes Certifiers 下面的目标域 Domino Directory 的 Certificates 视图中。
在处理 AdminP 请求期间,您可能仅在服务器控制台上看到消息“Admin Process: Checking for
<type of request> requests to perform”,而看不到任何表明请求正在处理的标志。出于诊断需求,您可能想要获得更多关于 AdminP 当前行为的信息。
添加参数“DEBUG_ADMINP_REQUEST_PROCESSING=1”或“DEBUG_ADMINP_REQUEST_PROCESSING=2”生成更详细的日志,从而便于了解 AdminP 在试图处理请求时的行为。
您还可以通过把“DEBUG_OUTFILE=<output file path>”添加到 Notes.ini 来将调试结果输出到文本文件。这些参数是动态的,您可以在服务器控制台使用“set config <parameter and value>”命令将它们写到 Notes.ini。
要禁用调试,您可以将调试参数设置为“0”,或者直接将其从 Notes.ini 删除。下面是来自跨域 Create Replica 请求的一些样例输出。
注意:各个输出结果的不同之处用粗体显示。
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> > No Debug Requesting Server 07/06/2008 09:12:31 AM Admin Process: Checking for new requests to perform. 07/06/2008 09:12:31 AM Admin Process: Received the following status performing a Accelerated Create Replica request on Discussion. Received the status -- Source and destination servers are not clustered -- trying to create Discuss.nsf on servera/acmeorg; a replica creation request has been generated for further processing. 07/06/2008 09:12:32 AM Router: Transferring mail to SERVERA/ACMEORG via Notes 07/06/2008 09:12:32 AM Router: Transferred 1 messages to SERVERA/ACMEORG via Notes 07/06/2008 09:12:37 AM Router: Message 000C21F9 transferred to SERVERA/ACMEORG for Administration Requests@ACMEDom via Notes Processing Server 07/06/2008 09:12:33 AM Router: Message 000C21F9 delivered to Administration Requests > DEBUG_ADMINP_REQUEST_PROCESSING=1 Requesting Server 07/06/2008 09:19:23 PM Admin Process: Checking for new requests to perform. 07/06/2008 09:19:23 PM Admin Process: Received the following status performing a Accelerated Create Replica request on Discussion. Received the status -- Source and destination servers are not clustered -- trying to create Discuss.nsf on servera/acmeorg; a replica creation request has been generated for further processing. 07/06/2008 09:19:24 PM Router: Transferring mail to SERVERA/ACMEORG via Notes 07/06/2008 09:19:24 PM Router: Transferred 1 messages to SERVERA/ACMEORG via Notes 07/06/2008 09:19:29 PM Router: Message 000CC308 transferred to SERVERA/ACMEORG for Administration Requests@ACMEDom via Notes Processing Server 07/06/2008 09:19:25 PM Router: Message 000CC308 delivered to Administration RequestsAdminp processing request: Create Replica> DEBUG_ADMINP_REQUEST_PROCESSING=2 Requesting Server 07/06/2008 09:24:18 AM Admin Process: Checking for new requests to perform. Adminp processing request:[Accelerated Create Replica] on [Discussion]07/06/2008 09:24:19 AM Admin Process: Received the following status performing a Accelerated Create Replica request on Discussion. Received the status -- Sour ce and destination servers are not clustered -- trying to create Discuss.nsf on servera/acmeorg; a replica creation request has been generated for further processing. 07/06/2008 09:24:19 AM Router: Transferring mail to SERVERA/ACMEORG via Notes 07/06/2008 09:24:19 AM Router: Transferred 1 messages to SERVERA/ACMEORG via Notes 07/06/2008 09:24:24 AM Router: Message 000D366A transferred to SERVERA/ACMEORG for Administration Requests@ACMEDom via Notes Processing Server 07/06/2008 09:24:20 AM Router: Message 000D366A delivered to Administration RequestsAdminp processing request: [Create Replica] on [Discussion]<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> |
在以单个请求或小批量请求为主的 Domino 环境中,AdminP 可能不会造成性能问题。但是,在包含多个运行批量 AdminP 请求的服务器的复杂环境中,可能需要优化 AdminP 的总体性能。
不存在适用于所有环境的 AdminP 配置;根据特定的 Domino 环境优化性能任务能够帮助减轻或避免由处理 AdminP 请求引起的性能问题。
AdminP 使用 worker 线程来处理请求。增加 AdminP 线程的数量可以实现同时处理多个请求,因此如果在大的批处理期间任务的运行速度变慢,您可以通过增加 AdminP 使用的线程的数量来降低延迟。
您还可以在特定的处理流程中增加线程的数量,比如将大量用户移动到新的服务器。为此,您需要编辑处理请求的服务器的 Server 文档(Server Tasks tab > Administration Process > Basics;见图 8)。
图 8. Server 文档中的“Maximum number of threads”字段
![点击图片可在新窗口打开 图 8. Server 文档中的“Maximum number of threads”字段](https://i-blog.csdnimg.cn/blog_migrate/9e69260a5d72c7a5c8d533073f1efa12.png)
为了帮助确定您的环境中应该使用的合适线程数量,在 AdminP 处理负载比较繁重时运行“show tasks”(或“sh ta”)命令。如果您看到空闲的 AdminP 线程,那么运行的线程数可能过多;如果所有线程都为一个请求提供服务,那么需要增加 AdminP 线程的数量。最多可以添加 10 个线程。
选择 Administration 服务器对所有环境都非常重要。选择 Administration 服务器时有两个选择:专用服务器或通用服务器。
在大环境中,专用服务器具有许多通用服务器不具备的优势,因为它没有用户或不重要的任务(比如邮件路由),从而避免资源争用。因此,专用服务器的处理效率要高得多。另外,充足的可用资源也缩短了请求时间。
通用服务器的主要优势是具有利用现有资产的能力,但它在性能上处于劣势,因为它在执行任务时出现资源争用现象。这对小环境的影响可能不明显,但对把资源优化放在首位的复杂的大环境而言,则需要考虑采用专用的 Administration 服务器。
您还可以考虑通过配置 Extended Administration 服务器来均衡 AdminP 的负载。要更多地了解如何配置 Extended Administration 服务器,请查看 Administration Client Help 文档“Using an extended administration server”。
诊断 AdminP 的另一个指标是通过 Monitoring Results 数据库(Statrep.nsf)来监控 Administration Process 的活动。表 2 节选自 Domino 7.0.2 Administration Client Help 文档,它显示了可以监控的 AdminP 统计数据及其说明。
这些统计数据常用于比较服务器,以了解哪些服务器上 AdminP 活动较高,哪些服务器上较低。如果发现不正常的负载差异,那么可以考虑重新分配 Administration Server 给数据库子集,让负载更加均衡。
表 2. Administration Process 统计数据
Administration Process 统计数据 | AdminP 执行以下操作时统计数据更新 |
---|---|
ACLsModified | 修改数据库 ACL。 |
ReaderAuthorModified | 因用户名变更而修改数据库,导致该数据库的 Reader 和/或 Author 字段的变更。 |
ReplicasDeleted | 因邮件数据库移动或用户、用户的邮件文件和副本被删而删除邮件文件。该统计数据也在因 Delete Database 请求导致副本被删时更新。 |
ReplicasCreated | 因邮件文件移动而创建邮件文件。 |
AppointmentsModified | 因名称变更而更新预约。 |
ProfilesModified | 因用户名变更而更新日历摘要。 |
DesignElementsDeleted | 从数据库删除设计元素。这种情况一般发生在用户被删,或者用户创建的代理被从数据库上删除时。 |
DirectoryDocumentsDeleted | 从 Domino Directory 删除条目,例如,因删除用户或服务器而导致的条目删除。 |
DirectoryDocumentsModified | 修改 Domino Directory 中的条目,例如,在用户重命名时。 |
DirectoryDocumentsAdded | 更新 Domino Directory 中的条目,例如,添加 Mail-In 数据库条目以待处理时。 |
Cross Domain Request Sent | 将请求从一个域发送到另一个域。这在启用跨域处理时发生。 |
Cross Domain Request Rejected | 接收或拒绝来自另一个域的请求。这在启用跨域处理时发生。 |
Cross Domain Request Accepted | 接收或接受来自另一个域的请求。这在启用跨域处理时发生。 |
从性能的角度理解在 Domino 域中处理某些请求的方式十分重要。
以Rename in Reader/Author fields请求为例,它运行在域中的每个服务器上。因为 Reader 和 Author 字段是文档的元素,所以该请求必须搜索域中的每个服务器上的所有文档来完成处理过程。这样一来,该请求将导致处理延迟,延迟的程度与数据库的数量和每个数据库中的文档的数量成正比。
Rename in Access Control List是在域中每个服务器上执行的另一个请求,即该请求需要使用域中每个数据库上的 ACL。这个请求也产生处理延迟,延迟的程度与域中服务器的数量和每个服务器中的数据库数量成正比。
Rename in Design Elements请求也运行在域中的每个服务器之上,它从所有管理服务器上各个数据库的共享设计元素中搜索目标者的名称。对于大的批量重命名请求,在比较大的环境中所有这些请求可能会有处理延迟。
在 Domino Release 8 中,通过一个 namelist 解决了Rename in Reader/Author fields和Rename in Design Elements请求的处理延迟问题。namelist 是一个更新列表,它允许重命名请求从其中搜索目标名称,而不用搜索服务器上的所有数据库。如果 AdminP 未能在 namelist 中找到所需的名称,它也不会搜索相应的服务器,从而显著减少处理这些请求所需的时间。