本节介绍了对非数据库问题的各种错误诊断方法。本节包含以下主题:
此外,在讲述 SSL 的一章中有一节是说明 SSL 错误诊断:
要验证某项服务是否在侦听指定的端口号,请使用 cstool 实用程序的 ping 命令。强制回应服务无法验证该服务是否正在运行,但可以表明该服务是否可以接受套接连接。
Calendar Server 服务选项如下:
HTTP 服务 (cshttpd)
管理服务 (csadmind)
事件通知服务 (enpd)
不能强制回应 DWP 服务 (csdwpd) 或通知服务 (csnotifyd)。
例如,要强制回应主机名为 calserver 的计算机以查看 cshttpd 服务是否在侦听端口 80:
cstool -p 80 -h calserver ping http
默认情况下,cstool 等待响应的时间为 120 秒,但您可以使用 -t timeout 选项更改此值。
有关完整的实用程序参考资料,请参阅附录 D,Calendar Server 命令行实用程序参考。
要运行 cstool,Calendar Server 必须正在运行。
如果在您发出 start-cal 后并没有启动所有日历服务,则在重新启动之前必须停止已启动的日历服务。例如,如果 enpd、csnotifyd 和 csadmind 已启动,但 cshttpd 没有启动,则必须停止 enpd、csnotifyd 和 csadmind。
要启动日历服务,请执行以下步骤:
以具备管理权限的用户身份登录正在运行 Calendar Server 的系统。
使用 start-cal 停止并重新启动服务。例如:
cal_svr_base/SUNWics5/cal/sbin/start-cal
start-cal 首先发出 stop-cal 命令,然后再启动各种日历服务。
如果 stop-cal 无法停止服务,则可能是无法停止某些子进程。要解决此问题,请参见解决 stop-cal 问题。
当 Calendar Server 关闭时,需要单独考虑两个问题:
发出 stop-cal 之后,某些子进程可能仍未停止。例如,stop-cal 可以停止 cshttpd 父进程,但无法停止任何 cshttpd 子进程。在这种情况下,必须使用以下过程单独停止其余的 Calendar Server 进程。
以具备管理权限的用户身份登录正在运行 Calendar Server 的系统。
通过针对每一项服务输入 ps 命令来确定其余 Calendar Server 进程的进程 ID (Process ID, PID):
ps -elf | grep cs-process |
其中,cs-process 为 enpd、csnotifyd、csdwpd、csadmind 或 cshttpd。例如:
ps -elf | grep cshttpd |
使用仍在运行的每个进程的 PID,并输入 kill -15 命令来中止这些进程。例如:kill -15 9875
再次针对每项服务输入 ps 命令,以确保已停止所有 Calendar Server 进程。
如果仍有 Calendar Server 进程在运行,请输入 kill -9 命令将其中止。例如:kill -9 9875 |
在运行 Calendar Server 的 Linux 系统中,如果使用 ps 命令搜索日历进程,搜索结果的显示可能会十分混乱。在 Linux 系统中,ps 命令返回正在运行的线程的列表,而不是进程列表。尚未找到解决方法来仅显示进程。
如果未正确关闭 Calendar Server,请执行以下步骤:
执行上一个过程解决 stop-cal 问题中的步骤。
手动删除 LDAP 数据高速缓存数据库目录中的所有文件。
这些遗留文件可能会导致数据库损坏。要删除这些文件,请执行以下步骤:
重新启动 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》。
Ping 后端服务器以查看它是否响应。
如果响应,请转到步骤 3。如果不响应,请确定失败原因,当其再次起作用时,接着
清除 CLD 高速缓存。请参见清除 CLD 缓存。
如果使用的是 CLD 高速缓存选项,并已通过 ics.conf 参数更新了服务器名,则应清除 CLD 高速缓存以删除服务器名。CLD 缓存中的旧条目会导致前端服务器无法正确连接到后端服务器,或导致 Calendar Server 无法找到移动后的日历。
重新启动 Calendar Server。
如果使用的是 CLD 高速缓存选项,并已将一个或多个日历移至其他后端服务器(或更改了后端服务器的名称),请执行以下步骤:
确保已按以下说明移动日历:
清除 CLD 高速缓存。请参见清除 CLD 缓存。
如果已将一个或多个日历移至其他后端服务器,则 CLD 高速缓存将失效。要刷新 CLD 高速缓存,您需要先清除它,这样才可重建它。
验证 service.http.allowadminproxy 是否设置为 "yes"。
验证 admin-user 是否具有 Calendar Server 管理员权限。
验证 admin-password 是否正确。
验证 calendar-user 是否为 Calendar Server 的有效用户。
LDAP 目录服务器配置中的 nsslapd-sizelimit 和 nsLookthroughLimit 属性必须足够大,以使搜索能够顺利完成。如果 nsSizeLimit 不够大,则进程可能被中断,而不显示任何结果。如果 nsLookthroughLimit 不够大,则可能无法完成搜索。
本节包含以下主题:
要确定是否为这些属性设置了适当的值,请尝试以下命令:
ldapsearch -b "base " "(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"
其中,base 是 Calendar Server 用户和资源数据所在目录服务器的 LDAP 基本 DN,user 是最终用户可以在用户界面的搜索对话框中输入的值。
如果 LDAP 服务器返回错误消息,则可能是由于参数 nsSizeLimit 或 nsLookthroughLimit 的值不够大。
这些属性的 DN 为:
dn: cn=config,cn=ldbm databases,cn=plug ins,cn=config
使用 ldapmodify 动态设置 nsLookthroughLimit 的值。
即,无需停止和重新启动 Directory Server 来更改此属性。
默认值为 5000。如果搜索未报告结果,您可能希望增大该值。但是,这将使 LDAP 服务器的性能降低。
可以将限制设置为 -1,这样将取消任何限制。但是,这样做时应小心,因为它很可能会导致系统挂起。
如果要将 nsslapd-sizelimit 设置为更高的值,则必须执行以下步骤:
停止 Directory Server。
编辑 dse.ldif 文件。
重新启动 Directory Server。
有关如何使用 ldapmodify 和编辑 dse.ldif 文件的信息,请参见以下位置处的 Directory Server 文档:
http://docs.sun.com/coll/1316.1 和 http://docs.sun.com/coll/1389.1
即使未配置 csstored 进程,默认情况下 start-cal 命令也将启动该进程。未配置的 csstored 进程将每隔 24 小时在运行 csstored 的每台计算机上发出消息说明其尚未配置。
通过禁止未配置的 csstored 进程运行可以禁用此消息。要禁止 csstored 进程运行,请按如下所示在生成此消息的每台计算机上设置 ics.conf 参数:
service.store.enable=”no”
在将 csstored 配置为进行自动备份的计算机上,请确保没有禁用该进程。