Sun Java System Calendar Server 6.3 管理指南

22.4 Calendar Server 的非数据库故障排除

本节介绍了对非数据库问题的各种故障排除方法。

本节包含以下主题:


提示 –

此外,在讲述 SSL 的一章中有一节是说明 SSL 故障排除:

7.2 Calendar Server 6.3 软件的 SSL 故障排除


22.4.1 一个 cshttpd 进程接受了过多的连接并且占用了 100% 的 CPU 时间

如果一个 cshttpd 进程接受了过多的连接并且占用了 100% 的 CPU 时间,可能是禁用了负载平衡。要重新启用负载平衡,将 ics.conf 的参数 service.http.loadbalancing 的值更改为 "yes"

Procedure解决 start-cal 问题

如果在您发出 start-cal 后并没有启动所有日历服务,则在重新启动之前必须停止已启动的日历服务。例如,如果 enpdcsnotifydcsadmind 已启动,但 cshttpd 没有启动,则必须停止 enpdcsnotifydcsadmind

要启动日历服务,请执行以下步骤:

  1. 以具有配置权限的管理员身份登录。

  2. 发出 stop-cal 命令。

  3. 如果 stop-cal 命令无法停止所有的 Calendar Server 服务,则可能仍有某些子进程在运行。要解决此问题,参见22.4.2 解决 stop-cal 问题

  4. 确定已停止全部的 Calendar Server 进程后,可使用 start-cal 命令启动所有服务。例如:

    cal-svr-base/SUNWics5/cal/sbin/start-cal

22.4.2 解决 stop-cal 问题

本节介绍改正 stop-cal 问题的某些概念性信息和说明。

当 Calendar Server 关闭时,需要单独考虑两个问题:

Procedure停止子进程

发出 stop-cal 之后,某些子进程可能仍未停止。例如,stop-cal 可以停止 cshttpd 父进程,但无法停止任何 cshttpd 子进程。在这种情况下,必须使用以下过程单独停止其余的 Calendar Server 进程。

  1. 以具备管理权限的用户身份登录正在运行 Calendar Server 的系统。

  2. 通过针对每一项服务输入 ps 命令来确定其余 Calendar Server 进程的进程 ID (Process ID, PID):

    ps -elf | grep cs-process

    其中,cs-processenpdcsnotifydcsdwpdcsadmindcshttpd。例如:

    ps -elf | grep cshttpd

  3. 使用仍在运行的每个进程的 PID,并输入 kill -15 命令来中止这些进程。例如:kill -15 9875

  4. 再次针对每项服务输入 ps 命令,以确保已停止所有 Calendar Server 进程。


    如果仍有 Calendar Server 进程在运行,请输入 kill -9 命令将其中止。例如:kill -9 9875

    注 –

    在运行 Calendar Server 的 Linux 系统中,如果使用 ps 命令搜索日历进程,搜索结果的显示可能会十分混乱。在 Linux 系统中,ps 命令返回正在运行的线程的列表,而不是进程列表。尚未找到解决方法来仅显示进程。


Procedure不正确关闭后的恢复

如果未正确关闭 Calendar Server,请执行以下步骤:

  1. 执行上一个过程22.4.2 解决 stop-cal 问题中的步骤。

  2. 手动删除 LDAP 数据高速缓存数据库目录中的所有文件。

    这些遗留文件可能会导致数据库损坏。要删除这些文件,请执行以下步骤:

    1. 转到 LDAP 数据高速缓存目录。

      默认值为 /opt/SUNWics5/csdb/ldap_cache,但请使用 ics.conf 文件中 local.ldap.cache.homedir.path 参数所指定的目录。

    2. 删除该目录下的所有文件。

      例如:rm *.*

    3. 检查以确保已删除所有文件。

      例如:ls

  3. 重新启动 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

    有关如何配置 LDAP 数据高速缓存的说明,参见4.8 配置 Calendar Server 版本 6.3 的 LDAP。有关 LDAP 数据高速缓存的更多信息,参见《Sun Java Communications Suite 5 Deployment Planning Guide》

22.4.3 无法连接至后端服务器

  1. Ping 后端服务器以查看它是否响应。

    如果不响应,确定失败的原因。当其再次起作用时,继续进行本任务中的下一个步骤。

  2. 清除 CLD 高速缓存。参见12.5 在 Calendar Server 版本 6.3 中清除 CLD 高速缓存

    如果使用的是 CLD 高速缓存选项,并已通过 ics.conf 参数更新了服务器名,则应清除 CLD 高速缓存以删除服务器名。CLD 缓存中的旧条目会导致前端服务器无法正确连接到后端服务器,或导致 Calendar Server 无法找到移动后的日历。

  3. 使用 stop-cal 命令停止服务器。

  4. 使用 start-cal 重新启动 Calendar Server。

22.4.4 无法找到日历

如果使用的是 CLD 高速缓存选项,并已将一个或多个日历移至其他后端服务器(或更改了后端服务器的名称),则可能无法查看新服务器上的日历。

    出现这样的情况时,执行以下步骤:

  1. 清除 CLD 高速缓存。参见12.5 在 Calendar Server 版本 6.3 中清除 CLD 高速缓存

    如果已将一个或多个日历移至其他后端服务器,则 CLD 高速缓存将失效。要刷新 CLD 高速缓存,您需要先清除它,这样才可重建它。

  2. 如果失败,请确保是否遵循了正确的步骤来移动日历。可在以下章节中找到该信息:

    15.6 管理用户日历

    然后清除高速缓存。

22.4.5 无法在后端计算机上创建日历

如果尝试在指定的后端服务器上创建日历,则会看到以下错误消息:DWP 主机服务器无效,原因可能有以下两种。服务器配置不正确,或者已将日历所有者分配给另一后端服务器。

本节介绍如何改正这两个问题:

22.4.5.1 后端服务器配置不正确

查看存在问题的后端服务器的 ics.conf 文件。

确认是否存在以下设置:

service.dwp.enable = "yes"
caldb.cld.type = "directory"
local.hostname = "back-end hostname"

22.4.5.2 将日历所有者分配给了另一后端服务器

查看用户的 LDAP 条目并确认是否存在 icsDWPHost 属性。icsDWPHost 的值必须与尝试在其中创建日历的后端服务器的名称相匹配。不能在另一后端服务器上为该用户创建日历。

22.4.6 尝试使用代理验证进行登录时,提示“未授权”。

本节包括对可能的失败原因的建议。遵循建议的步骤并重试登录。

  1. 执行一个或多个以下步骤来改正此错误:

    • 验证 service.http.allowadminproxy 是否设置为 "yes"

    • 验证 admin-user 是否具有 Calendar Server 管理员权限。

    • 验证 admin-password 是否正确。

    • 验证 calendar-user 是否为 Calendar Server 的有效用户。

  2. 重试登录。

22.4.7 对未正确完成的搜索进行故障排除

本节包括故障排除未正确完成的搜索的概念性信息和说明。

LDAP Directory Server 配置中的 nsslapd-sizelimitnsLookthroughLimit 属性必须足够大,以使搜索能够顺利完成。如果 nsSizeLimit 不够大,则进程可能被中断,而不显示任何结果。如果 nsLookthroughLimit 不够大,则可能无法完成搜索。

本节包含以下主题:

Procedure确定限制属性是否具有适当的值

  1. 要确定是否为这些属性设置了适当的值,请尝试以下命令:

    ldapsearch -b "base" "(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"

    其中,base 是 Calendar Server 用户和资源数据所在目录服务器的 LDAP 基本 DN,user 是最终用户可以在用户界面的搜索对话框中输入的值。

  2. 如果 LDAP 服务器返回错误消息,则可能是由于参数 nsSizeLimitnsLookthroughLimit 的值不够大。

Procedure为限制属性设置适当的值

这些属性的 DN 为:

dn: cn=config,cn=ldbm databases,cn=plug ins,cn=config

  1. 使用 ldapmodify 动态设置 nsLookthroughLimit 的值。

    即,无需停止和重新启动 Directory Server 来更改此属性。

    默认值为 5000。如果搜索未报告结果,您可能希望增大该值。但是,这将使 LDAP 服务器的性能降低。

    可以将限制设置为 -1,这样将取消任何限制。但是,这样做时应小心,因为它很可能会导致系统挂起。

  2. 如果要将 nsslapd-sizelimit 设置为更高的值,则必须执行以下步骤:

    1. 停止 Directory Server。

    2. 编辑 dse.ldif 文件。

    3. 重新启动 Directory Server。


      注 –

      有关如何使用 ldapmodify 和编辑 dse.ldif 文件的信息,参见以下位置处的 Directory Server 文档:

      http://docs.sun.com/coll/1316.1http://docs.sun.com/coll/1389.1