本小節包括多種用於非資料庫問題的疑難排解方法。本小節包括以下主題:
此外,在 SSL 章節中還包含 SSL 疑難排解小節:
若要驗證服務是否在偵聽指定的連接埠號,請使用cstool 公用程式的 ping 指令。對某種服務執行 ping 作業不會驗證該服務是否確實正在執行,但會指示該服務是否可以接受套接字連線。
Calendar Server 服務選項為:
HTTP 服務 (cshttpd)
管理服務 (csadmind)
事件通知服務 (enpd)
您無法對 DWP 服務 (csdwpd) 或通知服務 (csnotifyd) 執行 ping 作業。
例如,對主機名稱為 calserver 的機器執行 ping 作業,以查看 cshttpd 服務是否正在偵聽連接埠 80:
cstool -p 80 -h calserver ping http
依預設,cstool 會等待 120 秒,以查看有無回應;但您可以使用 -t timeout 選項變更該值。
如需完整的公用程式參考材料,請參閱附錄 DCalendar Server 指令行公用程式參照。
必須執行 Calendar Server,才能執行 cstool。
如果發出 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 問題。
關閉時需要考量以下兩個不同的問題:
發出 stop-cal 後,很可能未停止某些子程序。例如,stop-cal 可能停止了 cshttpd 父系程序,但未停止任何 cshttpd 子程序。在此情況下,您必須使用以下程序分別停止其餘 Calendar Server 程序:
以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。
透過為每種服務輸入 ps 指令,確定其餘 Calendar Server 程序的程序 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 程序均已停止。
If a Calendar Server process is still running, enter a kill -9 command to kill it. For example: 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 快取記憶體將會過期。若要更新快取記憶體,您需要將其清除以便重建。
驗證 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 檔案。
重新啟動目錄伺服器。
如需有關如何使用 ldapmodify 和編輯 dse.ldif 檔案的資訊,請參閱 Directory Server 文件,位於:
http://docs.sun.com/coll/1316.1 和 http://docs.sun.com/coll/1419.1
依預設,start-cal 指令啟動 csstored 程序 (即使其尚未配置)。未配置的 csstored 程序將在執行 csstored 的每台機器上每隔 24 小時發出一次訊息,說明其尚未配置。
若要停用該訊息,請防止 csstored 在未配置的情況下執行。若要停止 csstored 程序執行,請為產生訊息的每台機器設定如下所示的 ics.conf 參數:
service.store.enable=”no”
請小心不要停用已配置 csstored 以進行自動備份的機器上的程序。