Sun Java System Calendar Server 6 2005Q4 管理指南

Calendar Server 错误诊断

本节介绍了对非数据库问题的各种错误诊断方法。本节包含以下主题:


提示 –

此外,在讲述 SSL 的一章中有一节是说明 SSL 错误诊断:

SSL 错误诊断


Ping 日历服务

要验证某项服务是否在侦听指定的端口号,请使用 cstool 实用程序的 ping 命令。强制回应服务无法验证该服务是否正在运行,但可以表明该服务是否可以接受套接连接。

cstool 的服务选项

Calendar Server 服务选项如下:

http

HTTP 服务 (cshttpd)

admin

管理服务 (csadmind)

ens

事件通知服务 (enpd)


注 –

不能强制回应 DWP 服务 (csdwpd) 或通知服务 (csnotifyd)。


cstool 示例

例如,要强制回应主机名为 calserver 的计算机以查看 cshttpd 服务是否在侦听端口 80:

cstool -p 80 -h calserver ping http

默认情况下,cstool 等待响应的时间为 120 秒,但您可以使用 -t timeout 选项更改此值。

有关完整的实用程序参考资料,请参阅附录 D,Calendar Server 命令行实用程序参考


注 –

要运行 cstool,Calendar Server 必须正在运行。


Procedure解决 start-cal 问题

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

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

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

  2. 使用 start-cal 停止并重新启动服务。例如:

    cal_svr_base/SUNWics5/cal/sbin/start-cal

    start-cal 首先发出 stop-cal 命令,然后再启动各种日历服务。

  3. 如果 stop-cal 无法停止服务,则可能是无法停止某些子进程。要解决此问题,请参见解决 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. 执行上一个过程解决 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 数据高速缓存的说明,请参见为 LDAP 配置 Calendar Server。有关 LDAP 数据高速缓存的更多信息,请参见《Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide》

无法连接至后端服务器

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

    如果响应,请转到步骤 3。如果不响应,请确定失败原因,当其再次起作用时,接着

  2. 清除 CLD 高速缓存。请参见清除 CLD 缓存

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

  3. 重新启动 Calendar Server。

无法找到日历

如果使用的是 CLD 高速缓存选项,并已将一个或多个日历移至其他后端服务器(或更改了后端服务器的名称),请执行以下步骤:

  1. 确保已按以下说明移动日历:

    管理用户日历.

  2. 清除 CLD 高速缓存。请参见清除 CLD 缓存

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

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

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

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

  3. 验证 admin-password 是否正确。

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

对未正确完成的搜索进行错误诊断

LDAP 目录服务器配置中的 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


关闭 csstored 中繁琐的每日消息

即使未配置 csstored 进程,默认情况下 start-cal 命令也将启动该进程。未配置的 csstored 进程将每隔 24 小时在运行 csstored 的每台计算机上发出消息说明其尚未配置。

通过禁止未配置的 csstored 进程运行可以禁用此消息。要禁止 csstored 进程运行,请按如下所示在生成此消息的每台计算机上设置 ics.conf 参数:

service.store.enable=”no”

在将 csstored 配置为进行自动备份的计算机上,请确保没有禁用该进程。