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

第 IV 部分 Calendar Server 管理

第 12 章 管理 Calendar Server

本章及使用由 Messaging Server 建立的網域中之後的小節說明如何管理 Calendar Server,其中包含以下小節:

您可以透過執行 Delegated Administrator 公用程式 (以前的 User Management 公用程式) 或 Calendar Server 指令行公用程式和編輯 ics.conf 配置檔案來管理 Calendar Server。

若要執行指令行公用程式,您必須以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。

如需更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照


備註 –

其他管理主題包含在其他獨立章節中。其中包括以下主題︰


啟動和停止 Calendar Server

本小節包含如何使用 start-calstop-cal,並包含以下主題︰

關於 start-cal 和 stop-cal

您可以使用 start-calstop-cal 指令啟動和停止 Calendar Server。start-calstop-cal 公用程式位於 cal_svr_base/SUNWics5/cal/sbin 目錄中。您必須在安裝 Calendar Server 的本機上執行這些公用程式。


備註 –

Calendar Server 提供 csstartcsstop 公用程式僅為與舊版相容。如果可能,請使用 start-calstop-cal 公用程式啟動和停止 Calendar Server。


start-cal 公用程式會以如下順序啟動 Calendar Server 服務:

  1. enpd — 事件通知服務 (ENS)

  2. csnotifyd — 通知服務

  3. csadmind — 管理服務

  4. csdwpd — 資料庫連線協定 (DWP) 服務,此分散式資料庫服務僅當您具有遠端 Calendar Server 資料庫配置時才啟動

  5. cshttpd — HTTP 服務

  6. csstored — 自動備份服務

如需這些服務的說明,請參閱Calendar Server 服務

Procedure使用 start-cal 啟動 Calendar Server

步驟
  1. 以對系統具有管理權限的使用者身份登入。

  2. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

  3. 啟動 CalendarServer:


    ./start-cal

Procedure使用 stop-cal 停止 Calendar Server

步驟
  1. 以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。

  2. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

  3. 停止 Calendar Server:


    ./stop-cal

啟用或停用自動備份

自動備份由 csstored 程序進行管理,該程序在發出 start-cal 時會自動啟動。然而,您也可以隨意啟用或停用自動備份。預設為停用自動備份。即使自動備份未啟用,csstored 程序也可執行。

有兩種類型的自動備份︰緊急備份和歸檔檔案備份。您可以分別啟用或停用它們。

csstored 程序必須在發出 start-cal 之前進行配置,否則您將收到一條通知您 csstored 尚未配置的錯誤訊息。此後,您將每 24 小時收到一次同樣的訊息,直到將其配置為止。

如需有關自動備份的資訊和配置 csstored 的說明,請參閱第 10 章, 配置自動備份 (csstored)

以下是用於啟用和停止自動備份的工作清單:

Procedure啟用緊急備份

步驟
  1. 在指令行變更至 ics.conf 所在的目錄︰

    cd /etc/opt/SUNWics5/config

  2. 透過將以下 ics.conf 參數設定為 “yes”,啟用緊急備份︰

    caldb.berkeleydb.hotbackup.enable="yes"

  3. 指定緊急備份目錄的目錄路徑︰

    caldb.berkeleydb.hotbackup.path=
       /var/opt/SUNWics5/hotbackup_directory
    

    預設為目前目錄。

  4. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰

    cal_svr_base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

Procedure啟用歸檔檔案備份

步驟
  1. 在指令行變更至 ics.conf 所在的目錄︰

    cd /etc/opt/SUNWics5/config

  2. 透過將以下 ics.conf 參數設定為 “yes”,啟用歸檔檔案備份︰

    caldb.berkeleydb.archive.enable=”yes”

  3. 指定歸檔檔案目錄的目錄路徑︰

    caldb.berkeleydb.archive.path=
       /var/opt/SUNWics5/hotbackup_directory
    

    預設為目前目錄。

  4. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰

    cal_svr_base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

Procedure停用緊急備份

依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰

步驟
  1. 在指令行變更至 ics.conf 所在的目錄︰

    cd /etc/opt/SUNWics5/config

  2. 透過將以下 ics.conf 參數設定為 "no",停用緊急備份︰

    caldb.berkeleydb.hotbackup.enable="no"

  3. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰

    cal_svr_base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

Procedure停用歸檔檔案備份

依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰

步驟
  1. 在指令行變更至 ics.conf 所在的目錄︰

    cd /etc/opt/SUNWics5/config

  2. 透過將以下 ics.conf 參數設定為 "no",停用歸檔檔案備份︰

    caldb.berkeleydb.archive.enable="no"

  3. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰

    cal_svr_base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

管理群組排程引擎佇列

群組排程引擎 (GSE) 保留將用於更新元件資料庫的事件佇列。管理員可以變更逾時值,以調整 Calendar Server 掃描佇列的時間間隔。還可以列出佇列中的事件,並在必要時刪除特定事件。

本小節包含以下主題:

關於 GSE

GSE 可讓 Calendar Server 使用者建立事件並邀請其他與會人員。如果某位與會者位於同一 Calendar Server 上,則該事件會排程在該與會者的行事曆中。如果某位與會人員不在同一 Calendar Server 上,則系統會透過電子郵件傳送邀請。然後,與會人員可接受或拒絕邀請,GSE 將用回覆更新事件。

關於 GSE 佇列

GSE 佇列實際上是由 GSE 管理的獨立資料庫。Calendar Server 在佇列中掃描元件資料庫所需的更新。

您可以透過調整此掃描的頻率來調校 Calendar Server。此操作可透過變更 ics.conf 檔案中 gse.belowthresholdtimeout 的逾時值來完成。請參閱第 21 章, �屐� Calendar Server �刁�

GSE 佇列項目可使用 csschedule 來管理 (列出或刪除)。您必須在安裝 Calendar Server 的本地機器上執行 csschedule

列出 GSE 佇列中的項目

若要列出 GSE 佇列中的項目,請使用 csschedule 公用程式的 list 指令。

例如,列出 GSE 佇列中的所有項目:


csschedule list

列出儲存在 GSE 佇列中的前十個項目:


csschedule -c 10 list

列出 GSE 佇列中的包含 calid Holiday_Schedule 的行事曆的所有項目:


csschedule -v list Holiday_Schedule

刪除 GSE 佇列中的項目

若要刪除 GSE 佇列中的項目,請使用 csschedule 公用程式的 delete 指令。

例如,刪除 GSE 佇列中的所有項目:

csschedule -v delete

刪除 GSE 佇列中 calA 行事曆的一個項目,該項目的第一個排程時間為 2001 年 11 月 30 日 13:30:45、偏移數為 1、唯一識別碼為 1111、週期性 ID 為 0、序列號為 0:

csschedule -v -t 20011130T133045Z -o 1 -u 1111 -r 0 -n 0 delete calA

監視 Calendar Server

您想將監視系統活動作為日常工作的一部分。您可以使用多種公用程式工具來監視 Calendar Server 作業:csmonitorcsstatscstool。此外,您可以設置許多記錄檔以協助監視系統的使用。

本小節包含以下主題:

關於 csmonitor

此 Calendar Server 公用程式是需要 bash 的 shell 程序檔。此公用程式在被呼叫時可執行下列功能︰

若要除錯,您可以將監視器配置為在間隔時間很短的持續迴圈中執行,但這需要更多的系統資源,所以您不希望在正常生產中將其保留為該模式。

若要在一般情況下使用 csmonitor,請將其設定為以您選擇的間隔執行。

如需有關 csmonitor 公用程式的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照

Procedure配置 csmonitor

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 編輯下表中所示的一個或多個 ics.conf 參數:

    參數 

    說明和預設值 

    service.monitor.continuous

    指定 csmonitor 是否應持續迴圈︰"0" – 不持續迴圈 (預設)。"1" – 持續迴圈。

    將此參數設定為 “1” 以使 csmonitor 可以自動執行。

    service.monitor.loopsdelay

    指定兩個監視迴圈之間的延遲 (以秒為單位)。預設為 “60” 秒。 

    若要進行除錯,則設定較短的間隔時間;若要進行生產,則設定較長的間隔時間。 

    service.monitor.emailaddress.from

    指定 csmonitor 傳送訊息的電子郵件位址。無給定預設。

    service.monitor.emailaddress.to

    指定 csmonitor 應將訊息傳送至的電子郵件位址。無給定預設。

    service.monitor.csdb.logthreshold 

    監視行事曆資料庫 (csdb)。指定最大磁碟佔用率的臨界值 (以總磁碟空間的百分比表示)。如果 csdb 目錄的磁碟佔用率超過此值,其將傳送警告電子郵件訊息。預設為 “90”

    logfile.monitor.logname

    指定 csmonitor 記錄檔名稱。預設為 “csmonitor.log”

    logfile.monitor.maxlogfilesize

    指定記錄檔的最大大小。如果記錄檔超出此大小,則 csmonitor 將記錄儲存為 csmonitor.logtimestamp 並重設目前記錄。預設為 “2097152”

    service.monitor.dbglevel

    指定除錯級別。在 05 的範圍內,此值越高,csmonitor 傳送的訊息就越精確、越詳細。預設為 “0”,指定為不記錄。值 “5” 表示除錯記錄。

  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal

列出計數器統計資料

csstats 公用程式可顯示行事曆配置 (counter.conf) 檔案中定義的計數器物件的統計資訊。計數器物件 (如 httpstatauthstatwcapstatdbstat) 可顯示有關 Calendar Server 的資訊,其中包括:

如需有關 Calendar Server 計數器統計的資訊,請參閱附錄 ECalendar Server 配置參數

使用 cstool 以用於監視

您可以對下列服務及安裝 Calendar Server 的機器執行 Ping 作業︰

如需有關使用 cstool 的資訊,請參閱附錄 DCalendar Server 指令行公用程式參照

使用 Calendar Server 記錄檔

每種 Calendar Server 服務都將其狀態資訊寫入自己的 記錄檔。每個記錄檔都會以其相關的服務名稱來命名,如下表所示:

服務名稱 

記錄檔名稱 

管理服務 (csadmind) 

admin.log 

分散式資料庫服務 (csdwpd) 

dwp.log 

HTTP 服務 (cshttpd) 

http.log 

通知服務 (csnotifyd) 

notify.log 

單次登入記錄 

am_sso.log 

start 指令的記錄 

start.log 

stop 指令的記錄 

stop.log 

store 指令的記錄 

store.log 

Calendar Server 記錄檔儲存在以下預設目錄中:

/var/opt/SUNWics5/logs

每個記錄檔會自動重建為具有唯一編號的新記錄檔。例如:

admin.log.8.1083013284 http.log.8.1083013284

Calendar Server 提供報告至記錄檔的事件的六個嚴重性層級,如下表中所述。您可以透過修改 ics.conf 參數 logfile.loglevel,來指定 Calendar Server 報告至記錄檔的事件的嚴重性級別。

嚴重性級別 

涵義 

CRITICAL 

嚴重情況。 

ERROR 

錯誤情況。 

WARNING 

警告情況。 

NOTICE 

正常但是重要的情況。此為每個行事曆服務的預設報告級別。 

INFORMATION 

資訊。 

DEBUG 

除錯級別訊息。 

每個記錄事件以單行表示,每行顯示以下內容:相關的時間標記、伺服器主機名稱、嚴重性級別、程序名稱 (程序 ID)、事件類型、優先順序以及說明。

如需有關 ics.conf 記錄設定的資訊,請參閱附錄 ECalendar Server 配置參數

清除 CLD 快取記憶體

如果已啟用 CLD 快取記憶體,則需要不時地清除記憶體。本小節包含以下主題:

為何清除 CLD 快取記憶體?

CLD 快取記憶體會由於各種原因無法與系統配置保持同步,例如︰

如果發生其中任何情況,為了更新 CLD 快取記憶體,您必須將其清除。

Procedure清除 CLD 快取記憶體

步驟
  1. 停止 Calendar Server。

  2. 移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。

  3. 重新啟動 Calendar Server。

變更伺服器名稱

如果在配置中增加、刪除或變更伺服器名稱,您應該執行以下數項「事務性工作」,以免出錯︰

配置匿名存取

匿名存取是一種不需要認證的特殊登入。啟用匿名登入後,依預設,對公開行事曆的讀取和寫入存取已啟用。可能會拒絕對公開行事曆的寫入存取。本小節包含以下主題:


備註 –

Communications Express 要求寫入和讀取均允許匿名登入。請參閱配置 Communications Express


Procedure啟用匿名存取

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 編輯 ics.conf 中的以下參數,以啟用匿名存取︰

    參數 

    說明和預設值 

    service.http.allowanonymouslogin

    如有必要,將此參數設定為 “yes”,以啟用匿名存取 (登入)。預設值為 “yes”

    service.calendarsearch.ldap

    透過將此參數設定為 “no” (此為預設值),您可在執行行事曆搜尋時停用首先搜尋 LDAP,以便保護啟用匿名登入後的安全性。


    備註 –

    Communications Express 要求 service.calendarsearch.ldap 參數的值為 “no”。這會與調校系統在 DWP 環境中發揮最佳效能的說明相衝突。(您的資料庫分布在多台後端伺服器上。)請參閱�▇@ DWP �燠活9��腹四搗j�M�刁�


  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal

Procedure禁止匿名使用者寫入至公開行事曆

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 如下表所示編輯以下 ics.conf 參數:

    參數 

    說明和預設值 

    service.wcap.anonymous.

    allowpubliccalendarwrite

    允許或禁止匿名存取使用者寫入至公開的行事曆。將其值設定為 “yes” (此為預設值) 以啟用存取。

  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal

啟用代理管理員登入

必須為 Communications Express 啟用代理伺服器管理員登入 (代理伺服器認證)。如需有關配置 Communications Express 的代理伺服器認證的說明,請參閱配置 Communications Express

然而,即使您未使用 Communications Express,仍可以啟用代理伺服器認證。此小節包含在不使用 Communications Express 的情況下啟用代理伺服器認證的程序:

Procedure啟用代理伺服器認證 (不使用 Communications Express)

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 編輯 ics.conf 檔案,設定以下參數:

    service.http.allowadminproxy = "yes"

  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server 以使新值生效。

Procedure驗證代理伺服器認證是否正常工作

步驟

    使用以下 WCAP 指令驗證管理員代理登入是否在工作:

    http://server[:port]
    /login.wcap?user=admin-user&password=admin-password
    &proxyauth=calendar-user
    

    其中:

    • server – 執行 Calendar Server 的伺服器名稱。

      • port – Calendar Server 的連接埠號碼。預設連接埠為 80。

      • admin-user – Calendar Server 管理員。例如,calmaster

      • admin-passwordadmin-user 的密碼。

      • calendar-user – Calendar Server 使用者的 calid

        如果指令成功,Calendar Server 將顯示 calendar-user 的行事曆。如果發生問題,Calendar Server 將顯示「未授權」。原因可能是:

      • admin-user 沒有 Calendar Server 管理員權限。

      • admin-password 不正確。

      • calendar-user 不是有效的 Calendar Server 使用者。

更新 Calendar Server 配置

在目前的發行版本中,請勿使用 cstool refresh 指令更新配置。而應使用 stop-calstart-cal 指令。如需更多資訊,請參閱啟動和停止 Calendar Server

第 13 章 管理託管網域

本章包含有關管理託管網域的以下小節:

選擇正確的使用者管理工具

配置行事曆安裝以適用於託管網域並執行第 11 章, 設定託管網域中所述的準備工作後,即可增加新的託管網域。

每個網域均擁有您可設定的一組屬性和喜好設定。這些屬性是 icsCalendarDomain 物件類別的一部分。這些屬性包括喜好設定,例如存取權、存取控制清單 (ACL)、網域搜尋、網域搜尋存取權、使用者狀態以及代理登入。

使用以下兩組工具之一管理 Calendar Server 託管 (或虛擬) 網域:

如需有關特定物件類別和屬性的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」

如需託管網域簡介和其他介紹材料,請參閱第 11 章, 設定託管網域


注意 – 注意 –

Calendar Server 不支援使用 Access Manager 主控台管理網域。


建立新的託管網域

建立用於 Schema 1 或 Schema 2 的託管網域:

增加託管網域 (Schema 2)

您可以使用 Delegated Administrator 主控台或公用程式:

增加託管網域 (Schema 1)

您必須在託管網域模式中執行 csdomain。如需有關如何啟用託管網域的說明,請參閱第 11 章, 設定託管網域

在 Schema 1 中建立託管網域時,請使用 csdomain create。例如,若要建立 west.sesta.com,請使用以下指令:

csdomain create west.sesta.com

啟用交叉網域搜尋

本小節包括您必須執行的兩項工作以啟用交叉網域搜尋:

使用以下任一工具都可以完成以上工作:ldapmodify (用於任何一種 Schema 模式) 或 Delegated Administrator 主控台或公用程式 (用於 Schema 2)。

為允許搜尋此網域的網域增加名稱

每個網域 LDAP 項目均以 ACE 的形式指定存取權限,您可以在 icsExtendedDomainPrefs 屬性的 domainAccess 參數中定義 ACE。允許外部網域搜尋此網域的兩種不同方式:

Calendar 存取控制中更完整地說明了 ACI 的建構。

允許特定網域搜尋此網域

可透過三種方式完成:


備註 –

雖然您可以使用剛才列出的前兩種方法指定為網域提供的精確權限,但是最後一種使用 Delegated Administrator 主控台的方法不允許管理員進行過多控制。權限清單是預設的。提供的權限為:空閒-忙碌存取和事件排程存取。除非該行事曆的所有者已將權限設定為允許所有使用者讀取事件詳細資訊,否則使用者無法查看事件詳細資訊。


允許所有外部網域搜尋此網域

可以使用三種方式來允許所有外部網域搜尋此網域:


備註 –

雖然您可以使用剛才列出的前兩種方法指定為網域提供的精確權限,但是最後一種使用 Delegated Administrator 主控台的方法不允許管理員進行過多控制。權限清單是預設的。提供的權限為:空閒-忙碌存取和事件排程存取。除非該行事曆的所有者已設定允許所有使用者讀取事件詳細資訊的權限,否則使用者無法查看事件詳細資訊。


增加可由此網域搜尋的網域名稱

可以使用三種方式來增加要依此網域搜尋的外部網域:

啟用託管網域

Calendar Server 預設為非託管網域。如果您要在 Java Enterprise System 部署中使用 Calendar Server 和 Messaging Server,則應該使用託管網域。

您可以透過編輯 ics.conf 檔案針對您的安裝啟用或停用託管網域。

Procedure啟用託管網域

步驟
  1. 編輯 ics.conf 檔案,如下所示:

    service.virtualdomain.support="yes" (預設為 "no"。)

  2. 重新啟動 Calendar Service。

    如需實作託管網域必需的所有 ics.conf 參數清單,請參閱設置託管網域環境

Procedure停用託管網域

步驟
  1. 編輯 ics.conf 檔案,如下所示:

    service.virtualdomain.support="no"

  2. 重新啟動 Calendar Service。

第 14 章 管理使用者和資源

本章說明如何使用 Calendar Server 公用程式佈建與管理使用者和資源。本章包含以下小節:

使用者管理工具

可以使用以下一種使用者管理工具管理行事曆使用者和資源:


備註 –

Delegated Administrator 不管理行事曆。若要為使用者和資源建立行事曆,請使用 Calendar Server 公用程式。



備註 –

在特定情況下,即使您使用的是 Schema 2 和 Delegated Administrator,仍會需要使用某些 Calendar Server 指令行公用程式執行特殊功能。在必要時,本指南中以工作為導向的文件會告訴您使用何種公用程式。


建立使用者和資源

本小節提供以下有關管理新的 Calendar Server 使用者和資源的資訊:

在 Schema 2 中建立新的使用者

您可以使用 Delegated Administrator 主控台或公用程式:

為 Schema 1 建立新的使用者

使用 csuser 公用程式。例如,在 sesta.com 網域中增加使用者 jdoe

csuser -m jdoe@sesta.com -d sesta.com create jdoe

為 Schema 2 建立新的資源

您可以使用 Delegated Administrator 主控台或公用程式:

為 Schema 1 建立新的資源

使用 csresource 公用程式建立 LDAP 項目和資源行事曆。例如,若要增加投影機 p101,請使用以下指令:

csresource -m p101@siroe.com -c p101 create Projector_101

如需有關 csresource 的更多資訊,請參閱csresource

增加所需的 mail 屬性

Calendar Server 需要使用者和資源具有 mail 屬性,該屬性包含使用者或資源的電子郵件位址。該 mail 屬性將使人們能夠使用電子郵件位址或 calid 搜尋行事曆和資源。使用 Delegated Administrator 建立新的使用者時,其會自動增加 mail 屬性。即使未向該使用者指定郵件服務,仍會如此。


備註 –

Calendar Server 不支援資源行事曆的電子郵件通知。

增加 mail 屬性不會啟用使用者行事曆的電子郵件通知。

若要啟用使用者行事曆的電子郵件通知,請將以下兩個屬性增加至使用者的 LDAP 項目:

icsExtendedUserPrefs:ceNotifyEnable=1 
icsExtendedUserPrefs:ceNotifyEmail=jdoe@sesta.com

如果您的使用者和資源已被增加至舊版的 Calendar Server (當時不需要 mail 屬性),則可能必須將 mail 屬性增加至現有使用者和資源 LDAP 項目。

本小節包含以下主題:

檢查 mail 屬性是否已設定

若要檢查該屬性是否已設定,請使用帶有 -v (詳細) 選項的 csattribute list 指令。

csattribute -v list Room100

其輸出會告知 mail 屬性是否已存在:

cn=Room 100,ou=conferenceRooms,dc=sesta,dc=com
 has mail: Room100@sesta.com

將 mail 屬性增加至現有使用者和資源

若要將 mail 屬性增加至現有使用者和資源,請使用以下方法之一:

管理使用者

建立使用者後,請使用 csuser 公用程式執行以下管理工作:

顯示使用者資訊

若要列出所有行事曆使用者或顯示指定使用者的行事曆屬性,請使用 csuser 公用程式的 list 指令。

例如,顯示所有能使用行事曆功能的使用者:

csuser list

顯示單一使用者 (如 jsmith) 的所有行事曆屬性:

csuser -v list jsmith

停用使用者

停用使用者的目的在於防止使用者登入 Calendar Server。依據您用於建立使用者的使用者管理工具,會進行不同的處理。在 Delegated Administrator 主控台中建立的使用者也應使用它進行管理。同樣,如果您使用 Delegated Administrator 公用程式將行事曆服務指定給使用者,則使用它移除服務。最後,非託管網域環境中的使用者應僅使用 Calendar Server 公用程式進行管理。各自對情況的處理稍有不同。

本小節包含以下主題:

Delegated Administrator 主控台

在 Delegated Administrator 主控台中,從 [使用者清單] 頁面選取使用者。在此使用者的 [特性] 中,刪除包含行事曆服務的服務套裝軟體。這會停用行事曆的使用者,包括將使用者的 icsStatus 設定為 inactive


備註 –

如果套裝軟體還包含其他服務,您必須使用不包含行事曆的其他套裝軟體重新指定那些服務。


Delegated Administrator 公用程式 (commadmin user delete)

若要防止使用者存取行事曆服務,請將該服務從使用者的 LDAP 項目中移除,如以下範例所示:

commadmin user delete jsmith -S cal

這會停用行事曆使用者,而未完全移除 LDAP 項目。此外,此指令會將使用者的 icsStatus 變更為 inactive

Calendar Server 公用程式 (csuser disable)

disable 指令可防止使用者存取行事曆資料,但不會從 LDAP 項目或 Calendar Server 資料庫中移除該使用者的資訊。此指令會將 icsStatus 屬性從 active 變更為 inactive。在非託管網域節點中,沒有行事曆服務。

例如,防止 jsmith 存取 Calendar Server:

csuser disable jsmith

如果 jsmith 目前已登入 Calendar Server,則 jsmith 仍可存取行事曆資料,直至其登出。

啟用使用者

若要啟用使用者,請使用以下工具之一:

Delegated Administrator 主控台

您可以增加啟用新使用者和現有使用者:

Delegated Administrator (commadmin user create)

要在建立使用者時允許該使用者使用行事曆服務,請使用以下範例所示的命令:

commadmin user create jsmith -S cal

如果建立使用者時您未允許該使用者使用行事曆服務,以後還可以使用修改指令將行事曆服務增加給該使用者,如以下範例所示:

commadmin user modify jsmith -S cal

Calendar Server 公用程式 (csuser enable)

如果您在建立使用者項目時使用了 csuser create,則使用者會自動啟用。

如果某位使用者向另一位尚未啟用行事曆功能的使用者 (亦即該使用者沒有預設行事曆) 傳送請求,則 Calendar Server 會向傳送請求的使用者傳回錯誤「找不到行事曆」。

設置電子郵件別名

如果您需要為行事曆使用者設定電子郵件別名,請將 mailalternateaddress 屬性增加至使用者的 LDAP 項目。mail 屬性提供主要郵件位址,而 mailalternateaddress 屬性用於電子郵件別名。這兩個屬性均將郵件位址對映至使用者的行事曆 ID (calid)

您可以使用 Calendar Server 公用程式 csattribute 或透過使用 ldapmodify 直接更新 LDAP 來增加屬性。以下範例使用 csattribute


備註 –

若要啟用這些變更,可能還需要重建別名表或配置。請參閱 Messaging Server (或您的電子郵件產品) 的文件,以及網站自身的文件和有關郵件服務變更的程序。在以下網站可獲得 Messaging Server 文件:http://docs.sun.com/coll/1312.1http://docs.sun.com/coll/1422.1



範例 14–1 使用 csattribute 增加電子郵件別名

例如,為具有以下值的名為 JohnSmith 之使用者增加 mailalternateaddress 屬性:

csattribute -a mailalternateaddress=johns@sesta.com add johnsmith
 csattribute -a mailalternateaddress=jsmith@sesta.com add johnsmith

檢查使用者是否能使用行事曆功能

若要確定特定使用者是否存在於您的目錄伺服器中,以及該使用者是否能存取 Calendar Server 資料,請使用 csuser 公用程式的 check 指令。

例如,檢查 jsmith 是否已啟用行事曆功能:

csuser check jsmith

如果 check 指令指示某個使用者不在 LDAP 目錄伺服器中,則您必須為該使用者建立目錄伺服器項目。

刪除 LDAP 中的使用者

依據您是刪除託管網域還是非託管網域中的使用者,請使用不同的工具:


注意 – 注意 –

undelete 指令。

使用 Delegated Administrator 刪除託管網域中的使用者後,必須清除這些使用者,然後重新增加。直至執行清除後,該使用者名稱才可以重複使用。

對於非託管網域,請參閱僅適用於非託管網域:取消刪除標記刪除但未清除的使用者


Procedure使用 Delegated Administrator 刪除 Schema 2 中的使用者

您可以使用任一 Delegated Administrator 介面標記要刪除的使用者。但是,您無法使用 Delegated Administrator 主控台清除 LDAP 中的使用者。您必須使用 Delegated Administrator 公用程式進行清除。以下工作列出了刪除 LDAP 中使用者的步驟。直至完成最後一步,使用者才從 LDAP 中真正移除。

步驟
  1. 標記要刪除的使用者項目。

    對於 Delegated Administrator 主控台:在 [使用者清單] 頁面中選取要刪除的使用者,然後按一下 [刪除]。

    對於 Delegated Administrator 公用程式:使用 commadmin user delete 指令。例如:

    commadmin user delete -D chris -n siroe.com 
    -w bolton -l jsmith

    兩種情況中,使用者 LDAP 項目中的 icsStatus 屬性均由 active 變更為 deleted

  2. 使用 Calendar Server 公用程式 csclean 移除屬於一個或所有網域中所有已刪除使用者的所有行事曆,如以下範例所示:

    csclean clean “*”

    或移除屬於一個網域中所有已刪除使用者的行事曆,並指定實際的網域,如以下範例所示:csclean clean sesta.com


    提示 –

    如果您在刪除使用者的行事曆之前不慎從 LDAP 中清除了使用者,則可以稍後使用 cscal 公用程式將其移除,如管理使用者行事曆中所述。


  3. 使用 Delegated Administrator 公用程式指令 commadmin domain purge 清除所有標記刪除之使用者的網域。

    例如:

    commadmin domain purge -D chris -d sesta.com -n siroe.com -w bolton

    在此範例中,sesta.com 中所有標記為已刪除的使用者均將被清除,亦即被永久性移除。


    提示 –

    不時手動執行此公用程式,以清除您的 LDAP 目錄。如需有關此指令的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」


在 Schema 1 環境中刪除使用者

若要移除指定使用者的 LDAP 項目和使用者的預設行事曆,請使用 Calendar Server 公用程式 csuser delete 指令。

例如,若要刪除使用者 jsmith 的 LDAP 項目和預設行事曆,請使用以下指令:

csuser delete jsmith

如果您要移除屬於此使用者的其他行事曆,您必須如管理使用者行事曆中所述使用 cscal

僅適用於非託管網域:取消刪除標記刪除但未清除的使用者

對於非託管網域,若要取消刪除標記刪除但尚未清除的使用者,必須將使用者的 icsStatus 屬性重設為 active。您可以透過直接變更 LDAP 項目 (使用 ldapmodify) 或使用 Calendar Server 公用程式 csattribute 完成此作業。

但是,在非託管網域中,使用者一旦清除,您將只能透過從備份將其復原來回復 LDAP 伺服器資訊。

重設使用者的屬性

若要復原特定使用者之所有行事曆 LDAP 屬性的預設設定,請使用 csuser 公用程式的 reset 指令。

例如,將 jsmith 的所有行事曆屬性重設為預設配置設定:

csuser reset jsmith

備註 –

重設某位行事曆使用者後,所有行事曆屬性均將從該使用者的 LDAP 項目中移除,包括 icsCalendarUser (物件類別)、icsSubscribedicsCalendarOwnedicsCalendar icsDWPHost (如果在 LDAP CLD 設定中)。Calendar Server 管理員將無法代表使用者建立行事曆。

在以下情況中,這些屬性會在該使用者的 LDAP 項目中復原:


重新命名使用者

如果一個或多個使用者 ID 需要變更,請執行 csrename 公用程式。此公用程式會執行以下步驟:


備註 –

請注意,即使變更一個使用者 ID,也會導致整個資料庫被重寫。因此,執行此公用程式「代價昂貴」。

如需有關如何執行 csrename 公用程式的說明,請參閱附錄 DCalendar Server 指令行公用程式參照


Procedure禁止使用者擁有公開可寫入行事曆

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/ SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 如下表所示編輯以下 ics.conf 參數:

    參數 

    說明和預設值 

    service.wcap.

    allowpublicwritablecalendars

    讓使用者擁有公開可寫入行事曆。依預設 (設定為 “yes”) 啟用。

  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal

管理資源

增加資源後,可以使用 csresource 管理資源:

Procedure列出資源

步驟
  1. 變更至 sbin 目錄。

  2. 使用 csresource list 指令列出一個或所有資源。

    例如,列出有關所有資源的全部資訊:

    ./csresource -v list

Procedure啟用資源

步驟
  1. 變更至 sbin 目錄。

  2. 使用 csresource enable 指令啟用一個或多個資源。

    例如,啟用 ConfRm12 資源:

    ./csresource -v enable ConfRm12

Procedure停用資源

步驟
  1. 變更至 sbin 目錄。

  2. 使用 csresource disable 指令停用一個或多個資源。例如,停用 ConfRm12 資源:

    ./csresource -v disable ConfRm12

Procedure刪除資源

步驟
  1. 變更至 sbin 目錄。

  2. 使用 csresource delete 指令刪除一個或多個資源。例如,刪除 ConfRm12 資源:

    ./csresource -v delete ConfRm12

為資源電子郵件設置 bitbucket 通道

本小節包含為 Messaging Server 和 Sendmail 設定 bitbucket 通道的指示。bitbucket 通道是放棄為資源行事曆產生的電子郵件的一種渠道。這些範例使用 sesta.com 伺服器上名為 Room100 的資源。如果不設定 bitbucket 通道 (或等效通道),則需要定期刪除傳送至資源行事曆的電子郵件訊息。

本小節包含以下程序:

Procedure設置 Messaging Server bitbucket 通道

步驟
  1. 確定 bitbucket 通道已在 imta.cnf 檔案中定義。

  2. 若要將訊息導向至 bitbucket 通道,請使用 csattribute 公用程式為資源建立電子郵件位址:


    csattribute -a mail=Room100@bitbucket.sesta.com add Room100

Procedure設置 Sendmail Bitbucket 通道

步驟
  1. 在適當主機上的 /etc/aliases 檔案中,增加如下項目:


    Resource/Conference room aliases
     Room100: /dev/null
  2. 使用 csattribute 公用程式將資源的電子郵件位址增加至 LDAP 目錄:


    csattribute -a mail=Room100@sesta.com add Room100

管理使用者和資源 LDAP 屬性

使用csattribute公用程式或 ldapmodify 管理 Calendar Server 所使用的 LDAP 屬性。使用 csattribute 可以列出、增加或刪除屬性。若要修改屬性,請使用 ldapmodify。本小節包含以下主題:

Procedure列出 LDAP 項目屬性

步驟
  1. 以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsusericsgroup) 的身份登入,或者以 root 身份登入

  2. 變更至 sbin 目錄。

  3. 使用 csattribute list 指令列出使用者或資源的屬性。例如,若要列出 tchang@sesta.com 的屬性,請發出以下指令:

    ./csattribute -t user -d sesta.com list tchang

Procedure增加 LDAP 項目屬性

步驟
  1. 以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsusericsgroup) 的身份登入,或者以 root 身份登入

  2. 如果您想此屬性變更立即被識別,請停止 Calendar Server。否則,您不必停止 Calendar Server。

  3. 變更至 sbin 目錄。

  4. 使用 csattribute add 指令將屬性增加至使用者或資源。例如,將 LDAP 屬性 icsCalendar 與值 Conference_Schedule 增加至使用者 tchang

    ./csattribute -a icsCalendar=Conference_Schedule add tchang@sesta.com

Procedure刪除 LDAP 項目屬性

步驟
  1. 以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsusericsgroup) 的身份登入,或者以 root 身份登入

  2. 如果您想此屬性變更立即被識別,請停止 Calendar Server。否則,您不必停止 Calendar Server。

  3. 變更至 sbin 目錄。

  4. 使用 csattribute delete 指令刪除使用者或資源的屬性。例如,從使用者 tchang 中刪除 LDAP 屬性 icsCalendar 與值 Conference_Schedule

    ./csattribute -a icsCalendar=Conference_Schedule -t user 
       -d sesta.com delete tchang

修改 LDAP 項目屬性

若要修改 LDAP 項目屬性,請使用 ldapmodify。例如,若要使用 uid=tchang 變更使用者的狀態,請使用 ldapmodify,如下所示:


dn:uid=tchang,ou=people,o=sesta.com
 changetype: modify
 add: objectclass
 objectClass: icsCalendarUser
 add: icsStatus
 icsStatus: active

備註 –

如果您的站點使用的是 LDAP CLD 外掛程式,請勿嘗試透過使用 csattribute 變更 icsDWPHost 的值來將使用者的行事曆從一個後端主機移至另一個後端主機。 修改 icsDWPHost 不會使行事曆移至新的後端主機。如需有關如何將行事曆從一個後端主機移至另一個後端主機的說明,請參閱管理使用者行事曆


第 15 章 管理行事曆

本章包含以下主題,說明如何使用 Calendar Server 指令行公用程式來建立和管理行事曆:

行事曆管理簡介

Delegated Administrator 不會建立或管理行事曆。您必須使用附錄 DCalendar Server 指令行公用程式參照中所述的 Calendar Server 公用程式。

建立行事曆之前,您必須瞭解以下資訊:

若要執行 cscalcsresource,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。您必須從 /opt/SUNWics5/cal/sbin 目錄執行這些指令。也就是說,您必須變更至 sbin 目錄;您無法透過指定路徑從其他目錄執行這些指令。

建立行事曆唯一識別碼 (calid)

Calendar Server 資料庫中的每個行事曆均由唯一行事曆識別碼 (ID) 或 calid 來識別。建立行事曆時,會要求您指定 calid

本小節包含以下主題:

Calid 語法

資料庫中的每個行事曆均由唯一行事曆 ID (calid) 來識別。以下 calid 語法包含三個部分:

userid[@domain][:calendar-name]

三個部分如下:

userid

此 Calendar Server 實例中網域的唯一使用者 ID。

domain

使用者網域的名稱。

沒有託管網域時,網域部分為可選項,因為可以確定使用者所在的網域。

有託管網域時,如果未指定網域部分,則 Calendar Server 將使用 ics.conf 參數 service.defaultdomain 中指定的值指定網域。如果使用者不在預設網域中,則必須指定網域部分。

如需有關託管網域 (亦稱虛擬網域) 的更多資訊,請參閱第 11 章, 設定託管網域第 13 章, 管理託管網域

calendar-name

特定使用者的唯一的可選擇行事曆名稱。雖然所有者僅有一個預設行事曆,但是可能有用於不同用途的其他行事曆。每個非預設行事曆均由其名稱識別。例如,如果使用者 John Doe 具有 uid jdoe,則他的預設行事曆可能為 jdoe@sesta.com。他用於追蹤自己所訓練 Little League 隊的棒球比賽的輔助行事曆可能由以下 calid 識別:jdoe@sesta.com:baseball

行事曆 ID 建立規則

建立 calid 時,請記住以下規則:

將非託管 calid 轉換為託管網域格式 calid

如果您具有在自己擁有託管網域之前建立的 calid,並且現在要將非託管網域 calid 轉換為託管網域 calid,則可以使用 csvdmig 公用程式將網域部分增加至您現有的 calid。請參閱csvdmig,以獲得有關如何使用此公用程式的說明。

自動建立使用者行事曆

本小節包含以下主題:

自動建立行事曆功能

使用者首次登入時,Calendar Server 會自動為該使用者建立預設行事曆。此功能稱為自動佈建。依預設,已啟用自動佈建。但是,自動佈建僅適用於使用者行事曆;資源行事曆必須明確地建立。

Calendar Server 會從使用者 ID 為此新預設行事曆建立行事曆 ID (calid),除非以此為名稱的行事曆已存在。

例如,如果使用者 ID 為 jsmith 的 John Smith 首次登入 Calendar Server,Calendar Server 會自動建立預設行事曆,其 calidjsmith。John Smith 建立的每個後續行事曆在行事曆名稱之前均具有包含 jsmith:calid。例如,如果 John Smith 稍後建立名為 meetings 的新行事曆,則新行事曆 (在非託管環境中) 的 calidjsmith:meetings


備註 –

當無預設行事曆的使用者被指定為與會者時,Calendar Server 會傳回錯誤「找不到行事曆」。


Procedure啟用自動佈建

依預設,已啟用自動佈建。但是,如果您在停用該功能後需要再次啟用它,請執行以下步驟:

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 在 Calendar Server 配置檔案 ics.conf 中編輯以下一個或多個參數,如下表所示:

    參數 

    說明和預設值 

    local.autoprovision

    設定為 “yes”,可在使用者首次登入時自動建立預設行事曆。依預設,已啟用自動佈建。 

    若要關閉此功能,請將值設定為 “no”。 

  5. 驗證使用者的 LDAP 項目是否已為行事曆啟用。

    該項目必須包含 icsCalendarUser 物件類別。如果未包含,請將該類別增加至使用者的 LDAP 項目。

  6. 如果您的站點使用的是託管網域,則使用者的網域必須也啟用行事曆,才能使用自動佈建。網域項目必須包含 icsCalendarDomain 物件類別。

  7. 儲存該檔案。

  8. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal

Procedure停用自動佈建

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 在 Calendar Server 配置檔案 ics.conf 中編輯以下一個或多個參數,如下表所示:

    參數 

    說明和預設值 

    local.autoprovision

    將參數設定為 no 可停用使用者行事曆的自動佈建。

  5. 儲存該檔案。

  6. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal


    備註 –

    如果自動佈建已停用,則必須明確地為使用者建立行事曆,然後他們才可以成功登入。


Calendar 存取控制

Calendar Server 使用存取控制清單 (ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 [工作]) 的存取控制。

本小節包含以下主題:

存取控制的配置參數

下表說明 Calendar Server 用於存取控制的 ics.conf 檔案中的配置參數。

表 15–1 存取控制配置參數

參數 

說明 

calstore.calendar.default.acl

指定使用者建立行事曆時使用的預設存取控制設定。預設為: 

"@@o^a^r^g;@@o^c^wdeic^g;

@^a^fs^g;@^c^^g;@^p^r^g"

calstore.calendar.owner.acl

指定行事曆所有者的預設存取控制設定。預設為: 

"@@o^a^rsf^g;@@o^c^wdeic^g"

resource.default.acl

指定建立資源行事曆時使用的預設存取控制設定。預設為: 

"@@o^a^r^g;@@o^c^wdeic^g;

@^a^rsf^g"

公開與私人事件和工作篩選器

建立新事件或工作時,使用者可指定該事件或工作是公開的、私人的還是只有時間和日期 (機密) 的事件或工作:

公開

對使用者的行事曆具有讀取權限的任何人均可以檢視事件或工作。

私人

僅行事曆的所有者才可以檢視事件或工作。

只有時間與日期

這些為機密事件和工作。行事曆的所有者可以檢視事件或工作。其他對行事曆具有讀取權限的使用者只會看到行事曆上出現「無標題事件」,而且標題不是可使用的連結。

calstore.filterprivateevents 決定 Calendar Server 是否篩選 (識別) 私人事件和工作以及只有時間與日期 (機密) 的事件和工作。依預設,此參數設定為 "yes"。如果您將 calstore.filterprivateevents 設定為 "no",則 Calendar Server 會將私人事件和工作以及只有時間與日期的事件和工作視為公開事件和工作。

存取控制的指令行公用程式

下表說明可讓您設定或修改用於存取控制的 ACL 的 Calendar Server 指令行公用程式:

表 15–2 存取控制的指令行公用程式

公用程式 

說明 

cscal

create 指令和 modify 指令與 -a 選項配合使用,以設定特定使用者行事曆或資源行事曆的 ACL。

csresource

如果您要使用 csresource 建立資源行事曆 (在 Schema 1 模式中),請將 csresource 公用程式與 -a 選項配合使用,以設定資源行事曆的 ACL。

commadmin user

csuser

使用 Schema 2 commadmin 公用程式變更使用者建立行事曆時所使用的預設 ACL。

將 Schema 1 csuser 公用程式與 -a 選項配合使用,以變更使用者建立行事曆時所使用的預設 ACL。


備註 –

若要在 Delegated Administrator 主控台中設定存取權限,請從 [組織特性] 頁面中 (也可從 [建立新組織] 精靈中) 按一下 [進階權限] 按鈕,以查看可從主控台管理的存取權限清單。


建立行事曆

本小節包含以下主題:

使用 cscal 建立使用者行事曆

若要建立新行事曆,請使用 cscal 公用程式的 create 指令。使用者或資源項目必須已存在於 LDAP 目錄中。請參閱第 14 章, 管理使用者和資源,以獲得有關將使用者和資源增加至 LDAP 目錄的資訊。

如果您的站點使用的是 LDAP 行事曆查找資料庫 (CLD) 外掛程式,您必須在同一後端伺服器上為特定使用者或資源建立所有的行事曆,如使用者或資源項目中的 icsDWPHost LDAP 屬性所指示。如果您嘗試在其他後端伺服器上建立行事曆,cscal 公用程式將傳回錯誤。如需有關 LDAP CLD 外掛程式的資訊,請參閱第 6 章, 配置跨多台機器的行事曆資料庫分布

例如,建立行事曆 ID (calid) 為 jsmith 的新行事曆:

cscal -o jsmith -n JohnSmithCalendar create jsmith

其中:

建立可檢視名稱為 Hobbies 且由 John Smith 所有,並對群組排程使用預設存取控制設定的行事曆:

cscal -n Hobbies -o jsmith create Personal

其中:

以下範例會建立一個與上述範例類似的新行事曆,但其還會將該行事曆與名為 sports 的種類相關聯,該範例還啟用雙預定功能,並指定 Ron Jones 為另一位所有者:

cscal -n Hobbies -o jsmith -g sports -k yes -y rjones create Personal

其中:

以下範例會建立一個與上述範例類似的行事曆,但還會為群組排程設定特定的存取控制設定:

cscal -n Hobbies -o jsmith -a "@@o^a^sfr^g" create Personal

其中 -a "@@o^a^sfr^g" 授予其他所有者對該行事曆的元件和行事曆特性的排程、空閒/忙碌以及讀取等存取權限,以進行群組排程。

準備建立資源行事曆

資源行事曆與可排程的事項相關聯,例如會議室、筆記型電腦、高射投影機和其他設備。資源行事曆需要存取控制清單。

表 15–3 所示,ics.conf 檔案中有兩個配置參數適用於資源行事曆:

若要變更這些參數 (如表 15–3 中所示) 的預設值,請編輯 ics.conf 檔案。對預設值的變更將僅適用於新的資源行事曆;不會變更現有資源的值。

對於 Schema 1,使用 Calendar Server 公用程式 cscal 變更現有資源行事曆的值。csresource 公用程式不包含 modify 指令。

對於 Schema 2,使用 Delegated Administrator 公用程式指令 commadmin resource modify。Delegated Administrator 主控台不可以變更行事曆資源的這些值。


備註 –

Calendar Server 通知軟體的設計僅用於將通知傳送給使用者,而不傳送至資源。


表 15–3 ics.conf 檔案中的資源行事曆配置參數

參數 

說明和預設值 

resource.default.acl

此參數確定建立資源行事曆時使用的預設存取控制權限。此預設權限由以下存取控制清單 (ACL) 指定: 

"@@o^a^r^g;@@o^c^wdeic^g;@^a^rsf^g"

此 ACL 會授予所有行事曆使用者對該行事曆 (包含元件和特性) 的讀取、排程以及空閒/忙碌存取權限。 

若要變更資源的權限,請在使用 csresource 公用程式的 create 指令建立行事曆時,使用 -a 選項。

resource.allow.doublebook

此參數決定資源行事曆是否允許雙預定。雙預定允許資源行事曆同時具有多個事件排程。 

預設為 "no" — 不允許雙預定。

若要允許資源行事曆的雙預定,請在使用 csresource 公用程式的 create 指令建立行事曆時,使用 -k 選項。

建立資源行事曆

Calendar Server 無法自動佈建資源行事曆。對於您站點所需的每個資源,您必須使用以下方法:


備註 –

如果該資源的 LDAP 項目已存在,則 csresource 僅建立行事曆。它不會建立重複的 LDAP 項目。


如需有關 Delegated Administrator 公用程式的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」

如需有關 Delegated Administrator 主控台的更多資訊,請參閱線上說明。

如需有關 csresource 的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照

允許資源行事曆的雙預定

依預設,Calendar Server 不允許資源行事曆的雙預定 (resource.allow.doublebook 參數)。此預設可避免資源 (如會議室和設備) 的排程發生衝突。但是,如果您要允許資源行事曆的雙預定,請在建立行事曆時將 csresource -k 選項設定為 “yes”。

以下指令建立資源 LDAP 項目和行事曆,但 -k 選項允許對行事曆使用雙預定,-o 選項將 bkamdar 指定為行事曆的所有者,而 -y 選項將 jsmith 選項指定為另一位所有者:

csresource -m aud100@siroe.com -c aud100 -k yes
    -o bkamdar -y jsmith create Auditorium

限制對資源行事曆的存取

若要控制誰可以排程特定資源,請考量對該資源行事曆擁有寫入權的使用者加以限制。例如,您可能只想允許特定的使用者排程會議室或預訂設備。

如果未指定資源行事曆的所有者,將使用 ics.conf 檔案中 service.admin.calmaster.userid 參數的值。

管理使用者行事曆

建立使用者行事曆後,請使用cscal公用程式執行以下管理工作:

顯示行事曆

若要顯示所有行事曆、由某位使用者所有的所有行事曆或特定行事曆的特性,請使用 cscal 公用程式的 list 指令。

例如,列出行事曆資料庫中的所有行事曆:

cscal list

列出 jsmith 擁有的所有行事曆:

cscal -o jsmith list

列出行事曆 ID 為 jsmith:meetings 的行事曆的所有特性:

cscal -v list jsmith:meetings

刪除行事曆

若要從 Calendar Server 中刪除一個或多個行事曆,請使用 cscal 公用程式的 delete 指令。此公用程式會刪除行事曆,但不會從目錄伺服器中刪除使用者。


注意 – 注意 –

delete 指令會從行事曆資料庫中移除行事曆的所有資訊,並且無法復原。刪除某個行事曆後,僅當您曾備份該行事曆資料時才可回復該資料。如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料

cscal 公用程式可讓您刪除單個或多個行事曆。

例如,刪除行事曆 ID 為 jsmith:meetings 的特定行事曆:

cscal delete jsmith:meetings

刪除其主要所有者為 jsmith 的所有行事曆:

cscal -o jsmith delete

移除已刪除使用者的行事曆

使用 Calendar Server 公用程式指令 csuser delete 或 Delegated Administrator 主控台或公用程式刪除一個或多個使用者後,由該使用者所有的行事曆可能仍在資料庫中。

有兩種方法可移除使用者的行事曆。使用何種方法取決於刪除使用者時所使用的工具︰

csuser

csuser 公用程式可移除 LDAP 目錄中的使用者及其預設行事曆,但不移除可能由該使用者所有的其他任何行事曆。如需有關如何使用 cscal 移除這些行事曆的說明,請參閱移除使用 csuser 刪除的使用者之所有行事曆

Delegated Administrator

Delegated Administrator 不會移除任何行事曆。請使用 Delegated Administrator 標記要刪除的使用者,然後使用 Calendar Server 公用程式 csclean 移除標記刪除的使用者的行事曆。

如需有關如何使用 csclean 移除已刪除使用者的行事曆的說明,請參閱移除由 Delegated Administrator 刪除的使用者的所有行事曆

如需有關使用 Delegated Administrator 公用程式的說明,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」

如需有關使用 Delegated Administrator 主控台的說明,請參閱線上說明。

Procedure移除使用 csuser 刪除的使用者之所有行事曆

步驟
  1. 執行 cscal list,以找到已刪除所有者的 uid 對應的所有行事曆。

    cscal -o owner list

  2. 使用 cscal 移除該所有者的所有行事曆。

    cscal -o owner delete

  3. 透過再次執行 csuser list,驗證是否已移除所有行事曆。


    備註 –

    如果已使用 commadmin 將使用者標記為已刪除,且使用者的 LDAP 項目已清除,則使用此程序。


Procedure移除由 Delegated Administrator 刪除的使用者的所有行事曆

Delegated Administrator 不會移除行事曆。請使用 csclean 公用程式移除使用 Delegated Administrator 標記為已刪除的所有使用者的全部行事曆。

步驟
  1. 請使用 csclean 移除標記為已刪除但尚未清除之使用者的所有行事曆。

    例如,若要移除過去 10 天內 sesta.com 網域中標記為已刪除的使用者的所有行事曆,請使用以下指令︰

    csclean -g 10 clean sesta.com
  2. 如果使用者已從 LDAP 中清除,則必須使用 cscal。

    如需說明,請參閱移除使用 csuser 刪除的使用者之所有行事曆

啟用行事曆

若要啟用行事曆以允許使用者進行存取,請使用 cscal 公用程式的 enable 指令。

例如,使用預設配置設定啟用行事曆 jsmith:meetings

cscal enable jsmith:meetings

啟用行事曆 jsmith:meetings 但不允許雙預定:

cscal -k no enable jsmith:meetings

停用行事曆

若要防止使用者存取行事曆,請使用 cscal 公用程式的 disable 指令。disable 指令可防止使用者存取行事曆,但不會從行事曆資料庫中移除資訊。

例如,防止使用者存取 jsmith:meetings

cscal disable jsmith:meetings

修改行事曆特性

若要修改行事曆的特性,請使用 cscal 公用程式的 modify 指令。

例如,變更 AllAdmins 的群組排程存取控制設定並將 RJones 指定為另一位所有者:

cscal -a "@@o^c^wd^g" -y RJones modify AllAdmins

其中:

從行事曆中移除特性

若要從行事曆中移除特性值,請使用 cscal 公用程式的 modify 指令,並以兩個雙引號 ( "") 指定該選項的值。

例如,從 jsmith:meetings 中移除說明:

cscal -d "" modify jsmith:meetings

jsmith:meetings 中移除所有種類:

cscal -g "" modify jsmith:meetings

jsmith:meetings 中移除「其他所有者」:

cscal -y "" modify jsmith:meetings

回復「遺失的」預設行事曆

如果使用者的預設行事曆未顯示在 Communications Express 的 [目前行事曆] 下拉式清單中,但仍存在於資料庫中,您可以透過更新使用者 LDAP 項目中的以下屬性來回復該行事曆:

其中 default_calid 為使用者的預設行事曆 ID (calid)。

對於 Schema 2,請使用以下方法之一更新屬性:

對於 Schema 1,請使用 csattribute add 指令更新屬性。

Procedure將使用者行事曆移至其他後端伺服器

若要將使用者行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:

步驟
  1. 在原始伺服器上,使用csuser公用程式停用行事曆使用者。例如,停用使用者 ID 和 calidbkamdar 的使用者:


    csuser disable bkamdar
  2. 在原始伺服器上,使用csexport公用程式將使用者的每個行事曆從行事曆資料庫匯出至檔案。例如:


    csexport -c bkamdar calendar bkamdar.ics
  3. 將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。

  4. 在新伺服器上,使用csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:


    csimport -c bkamdar calendar bkamdar.ics
  5. 在 LDAP 目錄伺服器上,使用csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com


    csattribute -a icsDWPHost delete bkamdar
     csattribute -a icsDWPHost=sesta.com add bkamdar
  6. 在新伺服器上,使用使用者行事曆的csuser公用程式啟用行事曆使用者。例如:


    csuser enable bkamdar
  7. 在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:


    cscal -v -o bkamdar list bkamdar
     ...
     csattribute -v list bkamdar
  8. 在原始伺服器上,刪除您剛移動的所有行事曆。例如:


    cscal -o bkamdar delete bkamdar

    -o 選項刪除主要所有者為 bkamdar 的所有行事曆。


    備註 –

    如果您使用的是 CLD 快取記憶體選項,將行事曆移至其他後端伺服器之後,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。若要清除 CLD 快取記憶體,請執行以下步驟:

    • 停止 Calendar Server。

    • 移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。

    • 重新啟動 Calendar Server。


管理資源行事曆

建立資源行事曆後,請使用 csresource 公用程式管理該行事曆。以下是管理資源行事曆的程序︰

顯示資源行事曆和屬性

若要顯示資源行事曆,請使用 csresource 公用程式的 list 指令。

例如,顯示所有 Calendar Server 資源行事曆及其相應 LDAP 屬性的清單:

csresource list

顯示名為 Auditorium 的特定資源行事曆的所有 LDAP 屬性清單:

csresource -v list Auditorium

修改資源行事曆

若要修改資源行事曆,請使用cscal公用程式的 modify 指令 (csresource 不包含 modify 指令)。

例如,將所有者設定為 tchang,並將另一位名為 mwong 的所有者增加至名為 Auditorium 的資源行事曆:

cscal -o tchang -y mwong modify aud100

在此範例中,cscal 公用程式需要 calid (aud100),而非行事曆名稱 (Auditorium)。

停用或啟用資源行事曆

您可能需要停用某個資源行事曆,以防止使用者排程事件。例如,某間會議室在改建期間可能無法使用,或者某台高射投影機可能已送去修理。

若要停用或啟用資源行事曆,請使用 csresource 公用程式的 enabledisable 指令。

例如,停用名為 Auditorium 的資源行事曆:

csresource disable Auditorium

稍後啟用該資源行事曆:

csresource enable Auditorium

刪除資源行事曆

若要刪除資源行事曆,請使用 csresource 公用程式的 delete 指令。

例如,刪除 Auditorium 資源行事曆:

csresource delete Auditorium

Calendar Server 會顯示以下訊息:

Do you really want to delete this resource (y/n)?

輸入「y」可刪除行事曆,輸入「n」可取消此作業。

如果輸入「y」,Calendar Server 會刪除行事曆並顯示訊息指明行事曆已被刪除。

Procedure將資源行事曆移至其他後端伺服器

若要將使用者行事曆或資源行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:

步驟
  1. 在原始伺服器上,使用csresource公用程式停用行事曆資源。例如,停用使用一般名稱 Auditorium 的資源:


    csresource disable Auditorium
  2. 在原始伺服器上,使用csexport公用程式將每個資源行事曆從行事曆資料庫匯出至檔案。例如:


    csexport -c aud100 calendar aud100.ics
  3. 將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。

  4. 在新伺服器上,使用csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:


    csimport -c bkamdar calendar bkamdar.ics
  5. 在 LDAP 目錄伺服器上,使用csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com


    csattribute -a icsDWPHost delete bkamdar
     csattribute -a icsDWPHost=sesta.com add bkamdar
  6. 在新伺服器上,使用csresource公用程式啟用行事曆資源。例如:


    csresource enable bkamdar
  7. 在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:


    cscal -v -o bkamdar list bkamdar
     csattribute -v list bkamdar
  8. 在原始伺服器上,刪除您剛移動的所有行事曆。例如:


    cscal -o bkamdar delete bkamdar

    -o 選項刪除主要所有者為 bkamdar 的所有行事曆。


    備註 –

    如果您使用的是 CLD 快取記憶體選項,且已將行事曆移至其他後端伺服器,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。若要清除 CLD 快取記憶體,請執行以下步驟:

    • 停止 Calendar Server。

    • 移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。

    • 重新啟動 Calendar Server。


連結至行事曆

只要使用者行事曆或資源行事曆的權限被設定為允許使用讀取權限,您便可以建立指向一個或多個使用者行事曆或資源行事曆的連結。例如,您可以將行事曆連結嵌入網頁或電子郵件訊息中。這樣,其他使用者無需登入 Calendar Server,即可匿名檢視該行事曆。

若要建立指向一個或多個使用者行事曆的連結,請使用以下語法:

http://CommunicationsExpresshostname:
CommunicationsExpressport/uwc/
   ?calid=calid-1[; ... ;calid-n]

對於多個行事曆,請使用分號 (;) 分隔各行事曆 ID (calid)。

例如,若要連結至 jsmith@sesta.comjdoe@siroe.com 的預設行事曆,請輸入:

http://calendar.sesta.com:8080/?calid=jsmith@sesta;jdoe@siroe.com

連結至 calidoverhead_projector10 的高射投影機資源行事曆:

http://calendar.sesta.com:8080/uwc/?calid=overhead_projector10

匯入和匯出行事曆資料

若要匯出行事曆資料至檔案及從檔案中匯入行事曆資料,請分別使用 csexportcsimport 公用程式。行事曆資料可為 iCalendar (.ics) 或 XML (.xml) 格式。

您必須在安裝 Calendar Server 的機器上本機執行 csexportcsimport。Calendar Server 可以執行,也可以停止。

匯入行事曆資料

若要從先前使用 csexport 公用程式儲存的檔案匯入行事曆資料,請使用 csimport。匯入檔案的檔案副檔名 (.ics.xml) 指示該檔案的儲存格式。

例如,從以 iCalendar (text/calendar MIME) 格式儲存的檔案 jsmith.ics 將行事曆資料匯入行事曆 ID (calid) jsmithcal

csimport -c jsmithcal calendar jsmith.ics

從以 XML (text/xml MIME) 格式儲存的名為 jsmith.xml 的檔案將資料匯入行事曆 jsmithcal

csimport -c jsmithcal calendar jsmith.xml

匯出行事曆資料

若要將行事曆資料匯出至檔案,請使用 csexport。您為輸出檔案指定的檔案副檔名 (.ics.xml) 可決定使用何種格式。

例如,以 iCalendar (text/calendar MIME) 格式將行事曆 ID (calid) 為 jsmithcal 的行事曆匯出至名為 jsmith.ics 的檔案:

csexport -c jsmithcal calendar jsmith.ics

以 XML (text/xml MIME) 格式將行事曆 jsmithcal 匯出至名為 jsmith.xml 的檔案:

csexport -c jsmithcal calendar jsmith.xml

第 16 章 使用 csdb 管理 Calendar Server 資料庫

Calendar Server 將許多資料庫檔案保存在多個目錄中。必須透過實作第 10 章, 配置自動備份 (csstored)中所述的自動備份程序,或透過實作您自己的備份系統來保護資料庫檔案。您可以使用 csdb 公用程式管理資料庫檔案。

本章說明如何使用 csdb 管理 Calendar Server,其中包括以下小節:

使用 csdb 管理行事曆資料庫

若要管理資料庫檔案,請使用 Calendar Server 公用程式 csdb。本小節包含以下主題:

csdb 如何將資料庫檔案分組

行事曆資料庫公用程式 csdb 將資料庫檔案視為三種邏輯資料庫:

行事曆資料庫 (caldb)

caldb 由資料庫目錄中的所有 .db 檔案和 _db.* 檔案組成。以下為 行事曆資料庫檔案 (以及 cld_cacheldap_cache 子目錄) 的預設位置:

/var/opt/SUNWics5/csdb

如果您願意,可以在執行 Calendar Server 配置程式 (csconfigurator.sh) 時指定其他目錄。如需有關配置程式的資訊,請參閱第 3 章, Calendar Server 配置程式 (csconfigurator.sh)

下表說明行事曆資料庫 (caldb) 檔案:

表 16–1 Calendar Server 資料庫檔案

檔案 

說明 

ics50calprops.db 

所有行事曆的行事曆特性。包含行事曆 ID (calid)、行事曆名稱、存取控制清單 (ACL) 及所有者。

ics50events.db 

所有行事曆的事件。 

ics50todos.db 

所有行事曆的待辦事項 (工作)。 

ics50alarms.db 

所有事件和待辦事項 (工作) 的警示。 

ics50gse.db 

群組排程引擎 (GSE) 之排程請求的佇列。 

ics50journals.db 

行事曆的日誌。在目前發行版本中未實現日誌。 

ics50caldb.conf 

資料庫版本識別碼。 

ics50recurring.db 

週期性事件。 

ics50deletelog.db 

刪除的事件和待辦事項 (工作)。另請參閱第 18 章, 管理刪除記錄資料庫

階段作業資料庫 (sessdb)

階段作業資料庫由以下目錄中的所有檔案組成/opt/SUNWics5/cal/lib/admin/session/ and /opt/SUNWics5/cal/lib/http/session/

統計資料庫 (statdb)

統計資料庫由 counter 目錄中的所有檔案組成:

/opt/SUNWics5/cal/lib/counter/

csdb 可以以特定資料庫為目標

csdb 公用程式的 -t 選項可讓您指定目標資料庫:

如果不包含 -t 選項,則除 checkrebuild 僅在行事曆資料庫上作業之外,csdb 將在所有三個資料庫上作業。

csdb 管理工作

本小節說明如何使用csdb公用程式執行以下管理工作:


備註 –

若要執行 csdb 公用程式,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。如需更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照


Procedure列出資料庫群組狀態

若要檢視資料庫群組 (caldbsessdbstatdb) 的狀態,請使用 csdb 公用程式的 list 指令。

若要列出資料庫狀態,請:

步驟
  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。

  3. 變更至 /sbin 目錄。例如,在 Solaris 作業系統上,輸入:


    cd /opt/SUNWics5/cal/sbin
  4. 對一個或所有資料庫群組執行 list 指令。例如,若要列出所有三個資料庫群組的狀態和統計資料,請執行:

    ./csdb list

    以下代碼顯示範例輸出:


    Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002)
    
    Calendar database version: 3.0.0 [BerkeleyDB]
    Total database size in bytes: 57344
    
    Session database version: 1.0.0 [BerkeleyDB]
    Total database size in bytes: 0
    
    Counter database version: 1.0.0 [Memory Mapped Files]
    Total database size in bytes: 118792
    
                   

    或者您可以選擇使用詳細模式。例如:

    ./csdb -v list

    以下範例代碼顯示詳細輸出:


    Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002)
    
    Calendar database version: 3.0.0 [BerkeleyDB]
    Total database size in bytes: 57344
    Total number of calendars:    2
    Total number of events:       0
    Total number of tasks:        0
    Total number of alarms:       0
    Total number of gse entries:  0
    Total number of master component entries:  0
    Total number of deletelog entries:  0
    Total logfile size in bytes:  5779919
    
    Session database version: 1.0.0 [BerkeleyDB]
    Total database size in bytes: 0
    Total logfile size in bytes:  0
    
    Counter database version: 1.0.0 [Memory Mapped Files]
    Total database size in bytes: 118792
    
                   

    或者,使用 -t 選項指定一個目標資料庫群組 (caldbsessdbstatdb)。例如,若要僅檢視行事曆資料庫的資料庫狀態和統計資料,請執行:

    csdb -t caldb list

Procedure檢查行事曆資料庫是否損毀

使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprops]、事件和待辦事項 [工作]) 是否有損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。

check 指令不檢查警示或群組排程引擎 (GSE) 資料庫中是否有損毀。

若要檢查資料庫是否損毀,請:

步驟
  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。

  3. 如果您尚未建立行事曆資料庫的副本,請建立副本。僅複製資料庫 (.db) 檔案。您無需複製任何共用 (__db.*) 檔案或記錄 (log.*) 檔。

  4. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。例如,在 Solaris 作業系統上,輸入:


    cd /opt/SUNWics5/cal/sbin
  5. 在行事曆資料庫的副本中執行 check 指令:


    ./csdb check dbdir \> /tmp/check.out 2\>&1

    如果未指定 dbdircheck 將使用目前目錄中的資料庫。

    check 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案 (如範例中所示)。

  6. check 完成後,請複查輸出檔案。

    如果資料庫已毀壞,則可以使用緊急備份副本替代該資料庫。或者,您可以嘗試執行 rebuild 指令重建已毀壞的資料庫。

Procedure重建行事曆資料庫 (caldb) – 無 GSE

若要回復已損毀的行事曆資料庫 (caldb),請使用 csdb 公用程式的 rebuild 指令。rebuild 指令將掃描所有行事曆資料庫,以檢查是否有損毀。如果 rebuild 指令找到不一致性,其會在 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建行事曆資料庫 (.db 檔案)。

rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdout stderr) 重新導向至一個檔案。

在以下說明中,rebuild 指令不能重建群組排程引擎 (GSE) 資料庫。

若要重建行事曆資料庫而不重建資料庫,請:

步驟
  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. 停止 Calendar Server。

  3. 如果您尚未建立行事曆資料庫的副本,請建立副本。複製資料庫 (.db) 檔案和記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。

  4. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。例如,在 Solaris 作業系統上,輸入:


    cd /opt/SUNWics5/cal/sbin

    如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。

  5. 在行事曆資料庫的副本中執行 rebuild 指令:


    ./csdb rebuild /tmp/db /tmp/

    如果您未指定資料庫目錄,rebuild 將使用目前目錄中的資料庫。在前面的範例中,/tmp/ 參數為重建資料庫指定目標目錄。


    備註 –

    請始終使用最新的備份複本重建您的行事曆資料庫。

    然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中。)

    例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601db_0615db_0629 中,請按以下序列執行 rebuild 指令:

    1. ./csdb rebuild db_0629

      然後檢查是否有損毀,如果此備份副本也已毀壞,則在下一個備份副本上執行重建。

    2. ./csdb rebuild db_0615

      然後檢查是否有損毀,如果此備份副本也已毀壞,則在下一個備份副本上執行重建。

    3. ./csdb rebuild db_0601

      ... etc.

    rebuild 指令會將重建的資料庫寫入 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄。


  6. rebuild 完成後,請複查 rebuild.out 檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt
  7. 驗證 rebuild 成功之後,請從 rebuild_db 目錄中將重建資料庫 (.db) 檔案複製到生產資料庫。

  8. 如果您有任何已毀壞資料庫的共用 (__db.*) 檔案,請將其移至其他目錄。

  9. 重新啟動 Calendar Server。

Procedure重建行事曆資料庫,包括 GSE 資料庫

如果您已在所在站點實作群組排程,則重建應該包括 GSE 資料庫。

若要同時重建行事曆資料庫和 GSE 資料庫,請:

步驟
  1. 透過執行 csschedule -v list 指令確定 GSE 資料庫中是否有項目,然後讓 GSE 完成處理這些項目。

  2. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  3. 停止 Calendar Server。

  4. 如果您尚未建立行事曆資料庫的副本,請建立副本。

    複製資料庫 (.db) 檔案和記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。

  5. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

    例如,在 Solaris 作業系統上,輸入:

    cd /opt/SUNWics5/cal/sbin

    如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。

  6. 在行事曆資料庫的副本中執行 rebuild 指令:

    ./csdb -g rebuild /tmp/db /tmp/

    如果您未指定資料庫目錄,rebuild 將使用目前目錄中的資料庫。在前面的範例中,/tmp/ 參數為重建資料庫指定目標目錄。


    備註 –

    請始終使用最新的備份複本重建您的行事曆資料庫。

    然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中)。

    例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601db_0615db_0629 中,請按以下序列執行 rebuild 指令:


    ./csdb rebuild db_0629 ./csdb rebuild db_0615 ./csdb rebuild db_0601

    然後 rebuild 將重建資料庫寫入 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄。


  7. rebuild 完成後,請複查 rebuild.out 檔案中的輸出。

    如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt
  8. 驗證 rebuild 成功之後,請從 rebuild_db 目錄中將重建資料庫 (.db) 檔案複製到生產資料庫。

  9. 如果您有任何已毀壞資料庫的共用 (__db.*) 檔案,請將其移至其他目錄。

  10. 重新啟動 Calendar Server。


範例 16–1 重建輸出範例

輸出範例顯示事件資料庫和待辦事項資料庫分別被掃描了兩遍。這不是錯誤。掃描第一遍以驗證 calprops 資料庫中的資訊,然後再掃描一遍以確定可從行事曆資料庫中存取 calprops

以下範例顯示指令及其產生的輸出:


# ./csdb -g rebuild
Building calprops based on component information.
Please be patient, this may take a while...
Scanning events database...
512 events scanned
Scanning todos database...
34 todos scanned
Scanning events database...
512 events scanned
Scanning todos database...
34 todos scanned
Scanning deletelog database...
15 deletelog entries scanned
Scanning gse database...
21 gse entries scanned
Scanning recurring database...
12 recurring entries scanned
Successful components db scan
Calendar database has been rebuilt
Building components based on calprops information.
Please be patient, this may take a while...
Scanning calprops database to uncover events...
25 calendars scanned
Scanning calprops database to uncover todos...
25 calendars scanned
Successful calprops db scan
Calendar database has been rebuilt

刪除資料庫群組

若要刪除行事曆資料庫,請使用 csdb 公用程式的 delete 指令。必須停止 Calendar Server。

使用 -t 選項指定目標資料庫 (caldbsessdbstatdb);否則,csdb 將刪除所有三個資料庫。

例如,若要刪除行事曆資料庫:

csdb -t caldb delete

csdb 公用程式會在刪除資料庫之前發出警告。

第 17 章 備份與復原 Calendar Server 資料

如果您選擇不使用 Calendar Server 提供的自動備份功能 (使用 csstored),則需要實作備份程序來保護資料。本章說明如何使用 Calendar Server 和其他 Sun 工具來執行行事曆資料庫檔案的手動備份和復原。

若要備份與復原 /var/opt/SUNWics5/csdb 目錄中的 Calendar Server 資料,請使用以下指令行公用程式:


備註 –

如果您的現有自訂程序檔使用的是 Berkeley 資料庫工具 (例如 db_recover),您可能會發現該工具在升級至 Calendar Server 6 之後無法正常工作。在 Calendar Server 2004Q4 之前,這些工具使用靜態程式庫進行編譯。自該發行版本以來,這些工具使用動態程式庫進行編譯。

若要適應此變更,請修改自訂程序檔以使用動態連結程式庫,方法如下:將全域變數 LD_LIBRARY_PATH 變更為動態程式庫 (libdb-4.2.so) 的名稱。


本章包含以下小節:


注意 – 注意 –

Calendar Server 2 資料與目前的產品不相容。請勿嘗試復原由 Calendar Server 2 backup 公用程式備份的行事曆資料,因為這樣會遺失資料。

如果您有 2 份行事曆資料要移至目前的發行版本,則必須連絡技術支援,以獲得相應的遷移公用程式。


備份 Calendar Server 資料

csbackup 公用程式可備份行事曆資料庫、指定的行事曆或使用者的預設行事曆。本小節說明以下內容:

Procedure將行事曆資料庫備份至目錄

步驟
  1. 以資料庫檔案所有者 (例如 icsuser) 的身份登入。

  2. 使用 csbackup 公用程式的 database 指令。

    例如,將行事曆資料庫備份至名為 backupdir 的目錄:


    csbackup -f database backupdir
  3. 透過檢查備份目錄中的 ics50caldb.conf 版本檔案,驗證已備份的資料庫版本是否正確。


    備註 –

    如果目標備份目錄已存在,並且您未指定 -f 選項,則 csbackup 公用程式會失敗。例如,如果 backupdir 存在,則即使目錄為空,以下指令也會失敗:


    csbackup database backupdir

    因此,如果您指定已存在的目標備份目錄,請在執行 csbackup 時包含 -f 選項。

    您也可以指定不存在的目標備份目錄,並讓 csbackup 為您建立該目錄。


Procedure將特定行事曆備份至檔案

步驟
  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要以 iCalendar 或 XML 格式將行事曆備份至檔案,請使用 csbackup 公用程式的 calendar 指令。

    備份檔案的檔案副檔名 (.ics.xml) 指示格式。

    例如,以 iCalendar 格式 (文字/行事曆 MIME) 將行事曆 jsmithcal 備份至 backupdir 目錄中的 jsmith.ics 檔案:


    csbackup -c jsmithcal calendar backupdir/jsmith.ics

    或者,以 XML 格式 (文字/XML) 將行事曆 jsmithcal 備份至 backupdir 目錄中的 jsmith.xml 檔案:


    csbackup -c jsmithcal calendar backupdir/jsmith.xml

Procedure將使用者的預設行事曆備份至檔案

步驟
  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要以 iCalendar 或 XML 格式將使用者的預設行事曆備份至文字檔案,請使用 csbackup 公用程式的 def cal 指令。您為輸出檔案指定的檔案副檔名 (.ics.xml) 決定使用何種格式。

    例如,以 iCalendar (文字/行事曆 MIME) 格式將行事曆使用者 jsmith 的預設行事曆備份至備份目錄中名為 jsmith.ics 的檔案:


    csbackup -a jsmith defcal backupdir/jsmith.ics

    或者,以 XML (文字/xml MIME) 格式將行事曆使用者 jsmith 的預設行事曆備份至備份目錄中名為 jsmith.xml 的檔案:


    csbackup -a jsmith defcal backupdir/jsmith.xml

復原 Calendar Server 資料

csrestore 公用程式可復原使用 csbackup 儲存的行事曆資料庫、個別行事曆或使用者的預設行事曆。您必須在安裝 Calendar Server 的本地機器上執行 csrestore 公用程式,並且必須先停止 Calendar Server。(但是,當您備份資料庫時,Calendar Server 可以正在執行。)

本小節說明以下內容:

Procedure復原行事曆資料庫

步驟
  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要復原使用 csbackup 公用程式儲存至備份目錄的行事曆資料庫,請使用 csrestore 公用程式的 database 指令。

    例如,復原儲存至名為 backupdir 的備份目錄的行事曆資料庫:


    csrestore database backupdir

Procedure從備份目錄復原行事曆

步驟
  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要從使用 csbackup 公用程式儲存至備份目錄的資料庫復原特定行事曆,請使用 csrestore 公用程式的 database 指令與 -c 選項。

    例如,從備份資料庫目錄 backupdir 復原行事曆 jsmithcal


    csrestore -c jsmithcal calendar backupdir

Procedure從檔案復原行事曆

步驟
  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要復原使用 csbackup 公用程式儲存至備份檔案的特定行事曆,請使用 csrestore 公用程式的 calendar 指令與 -c 選項。

    備份檔案的檔案副檔名 (.ics.xml) 指示儲存行事曆時使用的格式。

    例如,復原以 iCalendar (文字/行事曆 MIME) 格式儲存至 backupdir 目錄中的檔案 jsmith.ics 中的行事曆 jsmithcal


    csrestore -c jsmithcal calendar backupdir/jsmith.ics

    或者,復原以 XML (文字/行事曆 MIME) 格式儲存至 bcakupdir 目錄中的檔案 jsmith.xml 中的行事曆 jsmithcal


    csrestore -c jsmithcal calendar backupdir/jsmith.xml

Procedure復原使用者的預設行事曆

步驟
  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要復原使用 csbackup 公用程式儲存至備份檔案的使用者預設行事曆,請使用 csrestore 公用程式的 defcal 指令。

    備份檔案的檔案副檔名 (.ics.xml) 指示儲存行事曆時使用的格式。

    例如,復原以 iCalendar (文字/行事曆 MIME) 格式儲存至備份目錄 backupdir 中名為 jsmith.ics 之檔案的行事曆使用者 jsmith 的預設行事曆:


    csrestore -a jsmith defcal backupdir/jsmith.ics

    復原以 XML (文字/xml MIME) 格式儲存至備份目錄 backupdir 中名為 jsmith.xml 之檔案的行事曆使用者 jsmith 的預設行事曆:


    csrestore -a jsmith defcal backupdir/jsmith.xml

使用 Sun StorEdge Enterprise BackupTM 或 Legato Networker®

您也可以使用 Sun StorEdge Enterprise Backup 軟體 (以前為 Solstice Backup) 或 Legato Networker 來備份和復原 Calendar Server 資料。Sun StorEdge Enterprise Backup 軟體與 Legato Networker 類似,並且本小節中的說明適用於這兩種產品。

但是,嘗試備份 Calendar Server 之前,請參閱 Sun StorEdge Enterprise Backup 文件或 Legato Networker 文件。

如需 Sun StorEdge Enterprise Backup 軟體文件,請參閱 http://docs.sun.com

本小節說明以下內容:

StorEdge 或 Legato 工具

Calendar Server 在 /opt/SUNWics5/cal/sbin 目錄中提供以下檔案,以與 Sun StorEdge 或 Legato 備份軟體配合使用:

icsasm

Calendar Server 應用程式特定模組 (ASM)。ASM 是可由 Sun StorEdge 或 Legato 備份軟體進行呼叫以備份與復原資料的程式。

legbackup.sh

呼叫 csbackup 公用程式的程序檔。

legrestore.sh

– 呼叫 csrestore 公用程式的程序檔。

Procedure使用 Sun StorEdge Enterprise Backup 軟體或 Legato Networker 備份行事曆資料

若要使用 Sun StorEdge 或 Legato 備份軟體備份行事曆資料庫,請:

步驟
  1. 將 Sun StorEdge 或 Legato nsrfile 二進位檔案複製到 /usr/lib/nsr 目錄。

  2. /usr/lib/nsr 目錄中建立以下符號連結:


    icsasm -\> /opt/SUNWics5/cal/sbin/icsasm nsrfile -\> /usr/lib/nsr/nsrfile
  3. 變更至 /opt/SUNWics5/cal/sbin 目錄,並執行 csbackup 公用程式與 -l 選項。例如:


    cd /opt/SUNWics5/cal/sbin ./csbackup -l

    -l 選項可在目前目錄下建立備份目錄影像。此目錄中的檔案為空並僅用於為備份程式提供有關行事曆將如何儲存至備份媒體的資訊。如果備份目錄已存在,則會與目前目錄結構同步化。

  4. 使用 save 指令備份行事曆資料。例如:


    /usr/bin/nsr/save -s /opt/SUNWics5/cal/sbin/budir

    您也可以使用 Sun StorEdge 或 Legato 備份 GUI 來排程備份,方法是將用戶端儲存集設定為定期備份資料庫。

    注意,請勿修改 .nsr 檔案。所產生的這些檔案包含備份程序期間由 save 指令和 icsasm 指令解譯的指令。

    Calendar Server 不支援增量備份功能。請勿使用此功能,因為備份目錄只是資料夾結構的影像,不包含實際資料。

    您無法備份名稱中包含非 ASCII 字元或正斜線 (/) 的行事曆。

  5. 自動化備份程序。

    前面的步驟說明如何手動執行備份。設定備份程式的 backup 指令,以在執行備份程式的 save 指令之前執行 Calendar Server 的 csbackup 指令行公用程式,從而實現自動化的備份程序。

Procedure使用 Sun StorEdge Enterprise Backup 軟體或 Legato 軟體復原行事曆資料

若要復原行事曆資料,請:

步驟
  1. 使用 Sun StorEdge Enterprise Backup 軟體的 nwrestore 功能或 recover 指令復原已備份的行事曆資訊。

    如果您使用 nwrestore,則會收到以下訊息:


    "File already exists. Do you want to overwrite, skip, backup, or rename?"
  2. 請選擇 overwrite

    顯示此訊息是因為備份樹只是目錄階層。即備份樹由空檔案組成,並永久保持該方式。

第 18 章 管理刪除記錄資料庫

Calendar Server 包含刪除記錄資料庫 (ics50deletelog.db),可以儲存已刪除的事件和待辦事項 (工作)。

在以前的發行版本中,Calendar Server 不維護已刪除事件和工作的資料庫。使用者不得不儲存事件或待辦事項 (工作) 的唯一識別碼 (uid) 或週期性識別碼 (rid) 來確定哪些元件已被刪除。這一限制直接影響到使用 WCAP 指令開發用戶端使用者介面 (UI) 的各個安裝。為解決此限制,已建立刪除記錄資料庫。

本章說明以下內容:

刪除記錄資料庫的建立

Calendar Server 自動在 csdb 目錄中建立刪除記錄資料庫 (ics50deletelog.db) 及其他 Calendar Server 資料庫檔案。Calendar Server 會將事件和待辦事項寫入刪除記錄資料庫,如下所示:

查詢刪除記錄資料庫

若要從刪除記錄資料庫傳回項目,請以展開模式或壓縮模式使用 fetch_deletedcomponents WCAP 指令:

如需有關 WCAP 指令的更多資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」

清除刪除記錄資料庫

Calendar Server 提供自動清除刪除記錄資料庫手動清除刪除記錄資料庫

自動清除刪除記錄資料庫

如果願意,您可以讓 Calendar Server 自動清除刪除記錄資料庫中的項目。

下表說明 ics.conf 檔案中控制自動清除的參數。

表 18–1 用於自動清除刪除記錄資料庫的配置參數

參數 

說明 

service.admin.purge.deletelog

啟用 ("yes") 或停用 ("no") 自動清除刪除記錄資料庫 (ics50deletelog.db) 項目。

預設為 "no"

caldb.berkeleydb.purge.deletelog.interval

指定自動清除刪除記錄資料庫 (ics50deletelog.db) 中項目的間隔時間 (以秒為單位)。

預設為 60 秒。

caldb.berkeleydb.purge.deletelog.beforetime

指定一個時間 (以秒為單位),清除刪除記錄資料庫 (ics50deletelog.db) 中早於此時間的項目。

預設為 86400 秒 (1 天)。

例如,若要使 Calendar Server 每隔五分鐘 (600 秒) 自動清除一次刪除記錄資料庫中超過兩天 (172800 秒) 的項目,請如下設定自動清除刪除記錄資料庫中的參數:

service.admin.purge.deletelog="yes"
 caldb.berkeleydb.purge.deletelog.interval=600
 caldb.berkeleydb.purge.deletelog.beforetime=172800

設定這些參數後,重新啟動 Calendar Server 以使新值生效。

手動清除刪除記錄資料庫

若要手動清除刪除記錄資料庫 (ics50deletelog.db ) 中的項目,請使用 cspurge 公用程式:

cspurge -e endtime -s starttime

其中 endtimestarttime 指定開始和結束時間,且為祖魯時間 (也就是 GMT 或 UTC)。

若要執行 cspurge,您必須以執行 Calendar Server 的使用者與群組身份 (預設值為 icsusericsgroup) 或以 root 身份登入。

例如,清除從 2003 年 7 月 1 日到 2003 年 7 月 31 日的項目:

cspurge -e 20030731T235959Z -s 20030701T120000Z

如需更多資訊,請參閱cspurge

對刪除記錄資料庫使用 Calendar Server 公用程式

下表列出了支援刪除記錄資料庫 (ics50deletelog.db) 的 Calendar Server 公用程式:

表 18–2 支援刪除記錄資料庫的公用程式

公用程式 

說明 

cspurge 

允許手動清除刪除記錄資料庫中的項目。 

csbackup 和 csrestore 

支援刪除記錄資料庫的備份與復原。 

csstats 

報告刪除記錄資料庫統計資料。 

csdb 

支援對刪除記錄資料庫的重建、回復以及檢查作業。 

cscomponents 

列出 (唯讀) 刪除記錄資料庫中的項目數。 

如需更多資訊 (包括這些公用程式的語法),請參閱附錄 DCalendar Server 指令行公用程式參照

第 19 章 管理 Calendar Server 時區

本附錄說明 Calendar Server 如何定義與處理時區,包括:

如需有關時區特性和參數的更多資訊,請參閱 RFC 2445「Internet Calendaring and Scheduling Core Object Specification (iCalendar)」:

http://www.ietf.org/rfc/rfc2445.txt

Calendar Server 時區簡介

timezones.ics 檔案包含 Calendar Server 支援的時區表示。此檔案位於以下目錄中:

cal_svr_base/SUNWics5/cal/data

啟動時,Calendar Server 會讀取 timezones.ics 檔案,產生時區資料,然後將該資料儲存在記憶體中。這樣,在 Calendar Server 執行時,時區資料會保留在記憶體中。因此,如果增加新時區或修改現有時區,您必須先停止再重新啟動 Calendar Server,以使變更生效。

timezones.ics 檔案中的時區由 TZID 參數識別。例如,Calendar Server 使用 America/Los_Angeles TZID 識別太平洋標準時間 (PST/PDT) 時區,如範例 19–1中所示。TZNAME 特性是時區的縮寫表示,例如使用 PST (太平洋沿岸標準時間) 表示 America/Los_Angeles 時區。

識別日光節約時間 (DST) 的時區 (例如 America/Los_Angeles) 包含兩個子元件:STANDARD (標準時間) 及 DAYLIGHT (DST)。X-NSCP-TZCROSS 清單包含一系列指示時區何時該在 DST (DAYLIGHT) 和標準 (STANDARD) 時間之間進行切換變更的日期。

RRULE 特性定義 STANDARD DAYLIGHT 規則的式樣。TZOFFSETFROM TZOFFSETTO 特性定義 DST 至標準或標準至 DST 的變更發生前後與 GMT 之間的偏移。Communications Express 使用者介面使用 X-NSCP-TZCROSS 中的日期確定何時顯示時區變更。

包含時區 ID (tzid) 參數的 WCAP 指令應參照 timezones.ics 檔案中定義的有效時區。這樣,Calendar Server 才會傳回使用該時區的資料。如果 WCAP 指令指定的時區無法識別,Calendar Server 會依預設傳回 GMT 時區中的資料。如需有關 WCAP 的更多資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」


範例 19–1 timezones.ics 檔案中的 America/Los_Angeles 時區表示法

以下範例顯示 America/Los_Angeles 時區在 timezones.ics 檔案中的表示。


BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:STANDARD
DTSTART:19671025T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
END:DAYLIGHT
X-NSCP-TZCROSS:
  19880403T100000Z;19881030T090000Z;19890402T100000Z;19891029T090000Z;
  19900401T100000Z;19901028T090000Z;19910407T100000Z;19911027T090000Z;
  19920405T100000Z;19921025T090000Z;19930404T100000Z;19931031T090000Z;
  19940403T100000Z;19941030T090000Z;19950402T100000Z;19951029T090000Z;
  19960407T100000Z;19961027T090000Z;19970406T100000Z;19971026T090000Z;
  19980405T100000Z;19981025T090000Z;19990404T100000Z;19991031T090000Z;
  20000402T100000Z;20001029T090000Z;20010401T100000Z;20011028T090000Z;
  20020407T100000Z;20021027T090000Z;20030406T100000Z;20031026T090000Z;
  20040404T100000Z;20041031T090000Z;20050403T100000Z;20051030T090000Z;
  20060402T100000Z;20061029T090000Z;20070401T100000Z;20071028T090000Z;
  20080406T100000Z;20081026T090000Z;20090405T100000Z;20091025T090000Z;
  20100404T100000Z;20101031T090000Z;20110403T100000Z;20111030T090000Z;
  20120401T100000Z;20121028T090000Z;20130407T100000Z;20131027T090000Z;
  20140406T100000Z;20141026T090000Z;20150405T100000Z;20151025T090000Z;
  20160403T100000Z;20161030T090000Z;20170402T100000Z;20171029T090000Z;
  20180401T100000Z;20181028T090000Z;20190407T100000Z;20191027T090000Z;
  20200405T100000Z;20201025T090000Z;20210404T100000Z;20211031T090000Z;
  20220403T100000Z;20221030T090000Z;20230402T100000Z;20231029T090000Z;
  20240407T100000Z;20241027T090000Z;20250406T100000Z;20251026T090000Z;
  20260405T100000Z;20261025T090000Z;20270404T100000Z;20271031T090000Z;
  20280402T100000Z;20281029T090000Z;20290401T100000Z;20291028T090000Z;
  20300407T100000Z;20301027T090000Z;20310406T100000Z;20311026T090000Z;
  20320404T100000Z;20321031T090000Z;20330403T100000Z;20331030T090000Z;
  20340402T100000Z;20341029T090000Z;20350401T100000Z;20351028T090000Z;
  20360406T100000Z;20361026T090000Z;20370405T100000Z;20371025T090000Z;
  20360406T120000Z;20361026T110000Z;20370405T120000Z;20371025T110000Z
END:VTIMEZONE

管理 Calendar Server 時區

本小節說明以下主題:

增加新時區

本小節說明如何向 Calendar Server 增加新的時區,以便其在 Communications Express 使用者介面中可用。例如,您可能要為 America/Miami 增加新時區。


提示 –

增加新時區最簡單的方法是複製並編輯以下步驟所說明的每個檔案中與要增加的時區類似的時區項目。例如,如果要為 America/Miami 增加時區,可複製並編輯每個檔案中用於 America/New_York 的時區項目。


Procedure增加新時區

步驟
  1. 在以下檔案中為新時區增加時區區段:


    cal_svr_base/SUNWics5/cal/data/timezones.ics

    同樣,增加新時區區段最簡單的方法是將類似的現有區段 (包括所有日光節約時間 [DST] 偏移) 複製到要增加的時區。然後,編輯新時區區段,以對新時區進行變更。如果您的新時區包含日光節約時間 (DST),請嘗試找到一個類似的時區。

  2. 修改以下檔案中的 getDisplayNameofTZID 範本:


    cal_svr_base/SUNWics5/cal/html/language/i18n.xsl file

    其中 language 指定您的站點使用的語言的目錄。例如:en (英文),或 fr (法文)。

    如下所示,在 i18n.xsl 檔案中增加新項目:


    <xsl:when test="$tzid=’TimeZoneArea/
        TimeZoneName’"TimeZoneArea/
        TimeZoneName</xsl:when\>

    其中:

    TimeZoneArea 為某個地理區域:非洲、美洲、亞洲、大西洋、澳大利亞、歐洲或太平洋。

    TimeZoneName 為新時區的名稱。

    例如:


    <xsl:when test="$tzid='America/Miami'"\>America/Miami</xsl:when\>
  3. 修改以下 XML 檔案:


    cal_svr_base/SUNWics5/cal/html/change_timezone.xml
     cal_svr_base/SUNWics5/cal/html/new_cal.xml
     cal_svr_base/SUNWics5/cal/html/new_group.xml

    在以下每個檔案中,增加以下行:


    <timezone type="TimeZoneType" 
       tzid="TimeZoneArea/TimeZoneName" offset="offset">

    其中:

    TimeZoneType"americas""europeAfrica""asiaPacific"

    TimeZoneAreaTimeZoneName增加新時區中定義。

    offset 為新時區超過 (+) 或落後 (-) GMT 的小時數。例如,如果新時區落後 GMT 四小時,偏移應為 "-04:00"

    例如:


    <timezone type="americas" tzid="America/Miami" 
       offset="-05:00" daylightOffset="-04:00">
  4. 如果要將新時區做為預設時區供使用者優先使用,請修改以下檔案中的 timezone 項目:


    cal_svr_base/SUNWics5/cal/html/default_user_prefs.xml
  5. 先停止 (如有必要) 再重新啟動 Calendar Server,以使新時區生效。

修改現有時區

本小節說明如何修改現有時區。例如,您可能要變更時區名稱,如將「America/Phoenix」變更為「US/Arizona」。

Procedure修改現有時區

步驟
  1. 修改以下檔案中您要變更之時區的時區區段:


    cal_svr_base/SUNWics5/cal/data/timezones.ics

    如果變更時區名稱,請將 TZID 項目變更為新名稱。

  2. 修改以下檔案中的 getDisplayNameofTZID 範本:


    cal_svr_base/SUNWics5/cal/html/language/i18n.xsl file

    其中:language 指定您的站點使用的語言之目錄。例如:en (英文),或 fr (法文)。

    如果變更名稱,請將現有時區名稱變更為新名稱。

  3. 修改以下 XML 檔案,以變更時區:


    cal_svr_base/SUNWics5/cal/html/change_timezone.xml
     cal_svr_base/SUNWics5/cal/html/new_cal.xml
     cal_svr_base/SUNWics5/cal/html/new_group.xml

    如需有關這些檔案中項目的資訊,請參閱增加新時區

  4. 如果變更影響到供使用者優先使用的預設時區,請修改以下檔案中的「icsTimeZone」項目:


    cal_svr_base/SUNWics5/cal/html/default_user_prefs.xml
  5. 先停止 (如有必要) 再重新啟動 Calendar Server,以使時區變更生效。

第 20 章 使用 Instant Messaging 快顯提醒通知

Calendar Server 已與 Sun Java System Instant Messaging 6.0 (或更高版本) 整合,可為行事曆事件與工作提供自動快顯提醒通知。

本章說明以下內容:

快顯提醒通知簡介

本小節包含以下主題:

快顯提醒通知作業

使用者可以接收行事曆上即將發生的事件和即將執行的工作的 Instant Messenger 快顯提醒通知。若要啟用這些快顯提醒通知,必須執行以下兩項工作:

啟用快顯提醒通知後,在事件或工作即將發生時,在 [事件通知系統] 中設定的警示將會使 Calendar Server 傳送電子郵件通知和 Instant Messaging 以顯示快顯提醒通知。

Calendar Server 管理員可以選擇為一般使用者配置電子郵件通知或快顯提醒通知,或同時配置這兩個選項。例如,若要關閉電子郵件提醒通知,請在 ics.conf 檔案中設定以下參數:

caldb.serveralarms.binary.enable= "no"

快顯提醒通知架構流程

如果已經配置,Instant Messaging 快顯提醒通知會遵循以下架構流程:

  1. Instant Messaging JMS 訂閱者可訂閱事件通知服務 (ENS) 中的 Calendar Server 事件與通知。

  2. Calendar Server 將事件或工作通知以 text/xml text/calendar 的格式發佈至 ENS。

  3. Instant Messaging JMS 訂閱者接收行事曆事件或工作通知,然後產生 text/calendar 格式的訊息。

  4. Instant Messaging 伺服器將此訊息傳送給行事曆所有者 (如果該一般使用者在線上)。

  5. 如果收件者在線上,Instant Messenger 會根據此訊息在一般使用者的桌面上產生 HTML 快顯提醒通知。

配置快顯提醒通知

本小節包含以下配置說明:

Procedure配置 Instant Messaging Server

以下配置 Instant Messaging 以進行快顯所必需的高階工作清單可為您提供方便。若要配置 Instant Messaging,請參閱 Instant Messaging 文件,位於:

http://docs.sun.com/coll/1309.1http://docs.sun.com/coll/1420.1

步驟
  1. 安裝新的套裝軟體 SUNWiimag

    必須先使用 Java Enterprise System 安裝程式安裝 Instant Messaging 套裝軟體,才可將 Instant Messaging 用於快顯。

  2. 在安裝 Instant Messaging 的機器上,變更至以下目錄:

    cd /etc/opt/SUNWiim/default/config

  3. 如下表中所示編輯一個或多個 iim.conf 檔案中的參數。

    顯示的參數值假設您要對事件和工作均執行快顯提醒通知。如果您的 iim.conf 檔案中尚不存在這些參數,請增加。

    參數 

    說明和要使用的適當值 

    JMS Consumers 區段 

     

    jms.consumers

    警示名稱。將值設定為 cal_reminder

    jms.consumer.cal_reminder.destination

    警示目標。將值設定為 enp:///ics/customalarm 

    jms.consumer.cal_reminder.provider

    提供者名稱。設定為 ens。該名稱必須與 JMS Providers 區段中的 jms.providers 中的名稱相同。

    jms.consumer.cal_reminder.type

    要設定的警示的類型。將值設定為 topic

    jms.consumer.cal_reminder.param

    警示參數。將值設定為 "eventtype=calendar.alarm" (包括引號)

    jms.consumer.cal_reminder.factory

    C++ 工廠名稱。將值設定為: 

    com.iplanet.im.server.
    JMSCalendarMessageListener

    JMS Providers 區段 

     

    jms.providers

    提供者名稱。將值設定為 ens。該值必須與 JMS Consumers 區段中列出的 jms.consumer.cal_reminder.provider 值相同。

    jms.provider.ens.broker=cal.example.com

    ENS 偵聽的連接埠號碼。設定為在 ics.conf 檔案中參數 service.ens.port 指定的連接埠。預設為 57997。

    jms.provider.ens.factory

    要使用的 C++ 工廠。設定為 com.iplanet.ens.jms.EnsTopicConnFactory

    Calendar Server 一般參數 

     

    iim_agent.enable

    啟用行事曆代理程式。將值設定如下 (包括引號): 

    iim_agent.enable="true"

    iim_agent.agent-calendar.enable

    載入啟用行事曆代理程式的元件。將值設定如下 (包括引號): 

    iim_agent.agent-calendar.enable="true"

    agent-calendar.jid

    行事曆代理程式的 JID。將值設定如下: 

    agent-calendar.jid=calimbot.server .domain

    agent-calendar.password

    行事曆代理程式密碼。將值設定如下: 

    agent-calendar.password=password

    iim_server.components

    將值設定如下: 

    iim_server.components=agent-calendar

  4. 變更至 imadmin 指令行公用程式所在的目錄:

    cd /opt/SUNWiim/sbin

  5. 使用 imadmin 啟動行事曆代理程式:

    imadmin start agent-calendar

    行事曆代理程式是 Instant Messaging 元件,可為 Calendar Server 使用者提供快顯功能。使用隨 Instant Messaging 提供的工具,您可以啟動、停止、重新啟動行事曆代理程式或檢查其狀態,以及透過記錄檔監視其作業。


    備註 –

    如果您有包含 stopstartrefresh 指令的程序檔,請將行事曆代理程式增加至這些程序檔。


    如需有關 imadmin 和行事曆代理程式的更多資訊,請參閱「Sun Java System Instant Messaging 7 2005Q1 管理指南」。

Procedure配置 Calendar Server

開始之前

確認下表中所示的 ics.conf 參數具有所示的值。如果不具有所示值,或您希望自訂值,請執行以下步驟:

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 如下表中所示編輯 ics.conf 參數:

    參數 

    說明和預設值 

    caldb.serveralarms 

    啟用要佇列的行事曆警示。預設為 “yes” (已啟用)。

    caldb.serveralarms.contenttype 

    警示內容的輸出格式。預設為 "text/xml"

    caldb.serveralarms.dispatch 

    啟用要派送的行事曆警示。預設為 “yes”

    caldb.serveralarms.dispatchtype 

    要派送的伺服器警示的類型。預設為 "ens"

    caldb.serveralarms.url 

    這是用於警示擷取警示內容的 URL。預設為 "enp:///ics/customalarm"

  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server。

    cal_svr_base /SUNWics5/cal/sbin/start-cal

Procedure配置 Instant Messenger

若要接收 Calendar Server 事件與工作的快顯提醒通知,一般使用者必須按照如下所示配置其 Instant Messenger:

步驟
  1. 在 [主要] 視窗中,從 [工具] 功能表中選取 [設定]。

  2. 在 [設定] 視窗中,按一下 [警示] 標籤。

  3. 核取 [顯示行事曆提醒通知] 選項。

  4. 按一下 [確定]。

第 21 章 �屐� Calendar Server �刁�

�Y�n�▇@ Calendar Server ���刁款A�剎炯q�H�U�趟��G

�� LDAP ㄖ�籮鼬A���虔愣�d

�Y�n�▇@ Calendar Server �s�� LDAP ㄖ�籮鼬A���佚��刁款A�則��H�U弋�我W�[��d�� LDAP �t�m�兵砝C

icsCalendar

ⅴ弋�岔東餚��腹四戡祁果冽枓綜��j�M�w�]�腹四慍C�剋鬚w�s�b (pres)�BΨ�� (eq) N�l�r�� (sub) ��d�����C

icsCalendarOwned

ⅴ弋�岔東鴣j�Mㄏ�祁果冽派����愍L�腹四慍C�剋鬚w�s�b (pres)�BΨ�� (eq) N�l�r�� (sub) ��d�����C�t�勁拮\�▇@ DWP �燠活9��腹四搗j�M�刁��C

mail, mailAlternateAddress

�o�列彪床鬚w�祁果函��D�n�M���N�q�l�l�頤儉}�C�t�勁拮\建立使用者和資源�MCalendar Server 公用程式 (csuser enable)�C

�p�莆��嚕W�[ㄖ�籮鼬A����d���箇T�A�勁拮\ Directory Server k�頸A�凜頸G

http://docs.sun.com/coll/1316.1 �M http://docs.sun.com/coll/1419.1

�▇@ DWP �燠活9��腹四搗j�M�刁�

�暮z�B�� DWP �燠� (�Y�腹四搆箏召w���G�b�h�胄絕莆鼬A���W) 3�佣A�j�M�腹四搆箏召w3���腹四愍i�湘|w�鐳O�佣C�籮b LDAP ��ㄖ3�d�戡������愍X�腹四搏`�n�� DWP �D�蟯|�蠟栩C

ν�p�`�]�t�H�U�D�D�G

Procedure�洽杭腹四搗j�M�H�d�� LDAP

�Y�n�洽杭腹四搗j�M�H���鑰d�� LDAP ㄖ�齲A�M�窘A�d�莆腹四搆箏召w�A�勁膾腮H�U�B�J�G

步驟
  1. �s�� ics.conf �兵砥9� service.calendarsearch.ldap �拭北An�k���N�拭司]�w�� “yes” (�w�])�A�p�U�洽理G

    service.calendarsearch.ldap="yes"

  2. ���s�洎岌腹四搓A�年A�p�U�洽理R

    start-cal


    備註 –

    �p�G�z�n〥�\�杭W�s�籌��}�腹四慍A�起��z��ㄌ�腹四搗j�M�d�� LDAP�C�緊崗W�ACommunications Express �n�D�拭右托� “no”�C


Procedure�z�L�虔愣�d�▇@�j�M�刁�

步驟
  1. �Y�n�T�w�O�_�i�H�z�L�虔愣�d�▇@�腹四搗j�M�刁款A�哎��家H�U LDAP �饕O�G


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

    �愧� base �� Calendar Server ���祁果冽M�綜��箏卮派b��ㄖ�籮鼬A���� LDAP �蕞� DN�Auser ���@�誤祁果兩i�b�j�M�踫瓠團濟卄暨J���年C

    �蘊宸撚礫A�p�G�]�t 60,000 �范�ㄖ�A�b�S⑼�� icsCalendarOwned �虔愣�d���!p�U�A�W�z�j�M�j�鏝蛄n 50 �� 55 �歐��C�胄虔愣�d�稍A�W�z�j�M�死荻j�� 1 �� 2 �歐��C

  2. �z�L�膾� comm_dssetup.pl ���A�撬� LDAP 弋�床虔愣�d�A�杭瓠株� icsCalendarOwned �虔愣�d�C

    comm_dssetup.pl ��ⅴ弋�序M�瓷h�愍L弋�床虔愣�d�A�Hㄌ�h�荃嗽k�▇@�刁款C�p�G�z�|ξ�膾� comm_dssetup.pl �杯膾腥F�oξ�膾舅虔愣�d�A�h�i�H�Aⅳ�膾萵耍�ㄌ�{①�枕祁� Directory Server �u�傭虔愣�d�C

    �p�莆��� comm_dssetup.pl �p�餡虔愣�d���箇T�A�勁拮\屬性索引�C

    �p�莆��嚕W�[ㄖ�籮鼬A����d���箇T�A�勁拮\ Directory Server k�頸A�凜頸G

    http://docs.sun.com/coll/1316.1 �M http://docs.sun.com/coll/1419.1

�z�L��ㄌ�Uㄌ�r〤�j�M�▇@�腹四搗j�M�刁�

�卦w�]�ACalendar Server 3��ㄌ�Uㄌ�r〤�j�M�C�]�N�O� A�暮z�祁杼秈服卯祁果兕����j�M�腹四搭佣A�果卓暮z�b�梁q〢���o�X search_calprops.wcap �佣AΠ�N�j�M�P�祁� WCAP �饕O�伍e���j�M�r�綠輓T�桿升�〦�e�C

�p�G�z�w�z�L�� ics.conf �兵砥9��H�U�腹耀懷隴� (�z�L���┤}�Y��乍�上��u!�v) �洽枓Uㄌ�r〤�j�M�A�h�i�湘|�賬刁湧_�t���v�T�C

!service.calendarsearch.ldap.primaryownersearchfilter = "(&(|(uid=*%s*)(cn=*%s*))(objectclass=icsCalendarUser))"

�Y�n�蘊差Uㄌ�r〤�j�M�賬刁氬��v�T�A�剎b�蒂��。J乍�上� (�u!�v) �H�Aⅳ���搬��隴��C

�▇@ CLD �~���{①���刁�

�t�朋����鑽T�wㄌ�優x�s�祁果具腹四搓��絕訪謨��A�M�稅~�湊q�腹四搆箏召w3�s�籍腹四慍C���戡嘰A�撬��絕訪謨��A�t�杰N�j�M�祁果協�ㄖ�� LDAP ㄖ�觀��D�誹X icsDWPHost 弋�尿Cⅴ�j�M�盛O�佣A���B�Cⅳ�s�籍腹四搆箏召余.����膾腳��j�M�C�C�胥祁果協Χq�@�~�—|�hⅳ�s�蘊箏召w�A�]ⅴ�n�hⅳ�j�M LDAP�C�Y�n�`�勘劫:��W�j�刁款A�卻z�L�s�� ics.conf �兵砲胤洽� CLD �桐艦O�咯旗A�p�U�洽理G

caldb.cld.cache.enable="yes"

LDAP �箏占桐艦O�咯滴x�s�祁果� ID N�搞欲餵� icsDWPHost 弋�尿C�b�j�M�祁果協�ㄖ�� LDAP 6�e�A�t�枚|�甬d�桐艦O�咯暨W�O�_⑼�胥祁果� ID�C�p�G�桐艦O�咯暨W⑼�胥祁果� ID�A�t�杰N�q�x�s�� icsDWPHost 弋�岑ⅡD�誹X�絕荼D�繙W�側C�p�G�桐艦O�咯暨7S⑼�胥祁果� ID�A�t�杰N�膾� LDAP �j�M���N�祁果� ID �P弋�抄句s�� CLD �桐艦O�咯暨0C�H�稍A�s�蘊胥祁果具腹四搆箏去��t�祚N�[�栩A�]���t�板{�b�i�H�b�桐艦O�咯暨6戡噓胥祁果� ID�C

�▇@ LDAP �箏占桐艦O�咯榮��刁�

�洽� LDAP �箏占桐艦O�咯槓稍A�z�i�H�祁� ics.conf �拭叱豎搖i�葆屐孫C�咳弱飭U�撩9��@�胚杭h�胞拭北G


備註 –

�卦w�]�A�w�洽� LDAP �箏占桐艦O�咯旗C�z�i�H�z�L�]�w�H�U�拭叨N�搬�ㄌ�G local.ldap.cache.enable="no"


表 21–1 ㄌ�頤梁q LDAP �箏占桐艦O�咯榮� ics.conf �拭�

�拭� 

�?�/�� 

local.ldap.cache

.checkpointinterval

�甬d�I�膾董驕b�甬d�I6�︵Rt���模北C�w�]�� “60”�C

�b���﹒� LDAP �佣A�z�i�湔n�Y�u�–j�H���i�港O�蹼桐艦O�咯槐{���C�P�佣A�勁O�撥A�V�O�g�`�鴣s�桐艦O�咯旗A�t�沱��藻z���暨J�V�W�c�C 

local.ldap.cache.

circularlogging

�鬚w�B�z�� LDAP �箏占桐艦O�咯榣箏召w�O�鱷兌策O�_�n�N�搜��嗧C�w�]�� “yes”�C

�冑支甜頤��拭北A�█D�z⑼�梁q���M�▊`①�i�H���╰␉��O�鱷佣C 

local.ldap.cache.

logfilesizemb

�鬚w�甬d�I�兵祐��兕j�j�p (�快U�價���)�C�w�]�� "10” �快U�價��孫C

�p�G�z�祁杯��﹒� LDAP�Aⅴ�兵砭i�H�b�甬d�I�–j���濟��e�燕 C�悉御緊彗!p�A���峻N�曳]�w���@�茄P�O�纜緊崗j�p���濃��卡r 

local.ldap.cache.

maxthreads

�鬚w LDAP �箏占桐艦O�咯榣箏召w�膾董鱉��兕j�卉荀C�w�]�� “1000”�C

�b���﹒� LDAP �佣A�z�i�湔n�W�[�膾董鱉��卉荀C�o�i�湘|�W�[ CPU ���Qㄌ�v�C�朱暮z�� LDAP �﹒忘兕栓免��C�甬d�I�卉荀C 

local.ldap.cache.

mempoolsizemb

�鬚w�@ㄌ�O�咯榮��快U�價��庭卉荀C�w�]�� “4” �快U�價��孫C

local.ldap.cache.

entryttl

�鬚w LDAP �箏占桐艦O�咯榦�ㄖ���u⑼�刀劫 v(TTL) (�H�撢��腳�)�C�w�]�� “3600” �� (1 �p��)�C

�p�G�z���桐艦O�咯榦燕!�S�� (���﹒�)�A�h�i�H�Y�u TTL �劫 C�鑰O�A�o�i�湘|�W�[ LDAP �箏召w�s�繽��嗇漳卉荀A���]ⅴ�嗇榭緝w�t�昕C 

local.ldap.cache.

cleanup.interval

�鬚w�U�桐艦O�咯榣箏召w�M�▄@�~6�!��–j�劫� (�H�撢��腳�)�C�w�]�� “1800” �� (30 ��亡)�C

�t�板��─L������ㄖ�C�劫︱–j2δ�P��ㄖ TTL �劫…晤P�C�鑰O�祀��P�BF�N�|�頹[⑼�一C 

local.ldap.cache.

stat.enable

�鬚w�O�_�b�O�鱷伯ⅥO�纜� LDAP �箏占桐艦O�咯榮��s�藻!p���C�L�枇p�箏北C�w�]�� “no”�C

�Y�n�W�j�刁款A�咬戎b�┘鏖派。7祁杭��]�w�C 

local.ldap.cache.

stat.interval

�鬚w�U�枇p�箏司鵠i�g�J�O�鱷佚��–j�劫� (�H�撢��腳�)�C�w�]�� “1800” �� (30 ��亡)�C

�朱� local.ldap.cache.stat.enable �洽枝伯~�|�B�頹i�祁果��A�C�Y�u�–j�i�H�餐U�z�兇T�a�T�w�設D�派b�C�W�[�–j�N�|�緝w�t�枓顫J�C 


備註 –

Communications Express �w����ㄌ�箏占桐艦O�咯旗C


�屐� LDAP SDK �桐艦O�咯�

⑼�@�賣��糊�ㄖ�b�桐艦O�咯暨9����d�劫.HN�桐艦O�咯榮��j�p���拭北C

�Y�n�屐宮桐艦O�咯旗A�剎p�U�撚洽硫s�匱@�胚杭h�胞拭北G

表 21–2 ㄌ�骸t�m LDAP SDK �桐艦O�咯榮� ics.conf �拭�

�拭� 

�?辮M�w�]�� 

service.ldapmemcachettl

ㄖ�eξ�管@�C�zδ��h�役��� ldap_cache ㄖ�釁�〦�e�A�M�筆��s�洎� Calendar Server�C

�p�G service.ldapmemcache �� "yes"�A�hⅴ�拭卉東髭]�w�桐蘋�ㄖ���兕j�模北C�p�G�� “0”�A�h�豌桐蘋�ㄖ���劫:S⑼���碾C�w�]�� “30”�C

service.ldapmemcachesize

�p�G service.ldapmemcache �� "yes"�A�hⅴ�拭卉東髭]�w�桐艦O�咯榴N�蠢果��O�咯榮孔!��兕j�卉� (�H�價��屑��腳�)�C�p�G�� “0”�A�h�桐艦O�咯槌L�j�p���碾C�w�]�� “131072”�C

�屐宴梓忘卉�

�zδ���O�鏜臥冑W�卉職��j�p�P�爰荻��!�Ψ�勾H�K�W�L�iㄌ�臥剌孔 C�Y�n�餐U�最z�k�吾兵秣卉覆P�螟葫卉繙蠢果��臥剌孔 A�i�H牛�頤U�� ics.conf �拭去��]�w�A�o�伍拭卯M�w�z�@ⅳ�i�O�d���卉薩卉��另qN十�o�M�╰␉��卉����臥剌孔︶{�免扣��噓m�C

⑼�T�虔i�H�w�豎C�致卉贅����B�k�吾兵祕M�螟葫卉觴弱亂��拭奴���

Calendar Server �b2�W�L�臥咪{�免扣��鵑頭U�b�具h���i�殘拭半��O�醱卉繕C�]ⅴ�A�p�Gㄖ�e���卉翹臥臥剌��祁板v�W�L�{�免年A�t�杰N�M�┼咖␉��卉薩卉��A���d�袍臥剌��祁板v�O�_�C�償{�免年C�t�枚|�~仇�M�╰␉��卉薩卉��A���嘻勿X�H�U�濟@�!p�G���▅愍L�卉薩卉��N�免P�臥冑W���卉覲卉荃p�髭兕p�卉薩卉��卉荀A�杪臥剌孔!��祁板v�C�償{�免年C

�]ⅴ�A�z�i�H�祁氛{�免旬拭台最z�卉翹祁果��臥剌孔 C�晝知A�z�]�i�H�z�L�弱飭��\���臥剌孔?M�卉����j�p�苦最z�O�贊b�臥冑W���卉覲卉荀C

�U�撮C�X�F���緻臥剌孔?M�O�d�b�臥冑W���卉覲卉蚩� ics.conf �拭北G

表 21–3 ㄌ�髭]�w�O�贊b�臥冑W���卉職��卉蚩� ics.conf �拭�

ics.conf �拭� 

�w�]�]�w 

�?� 

caldb.berkeleydb.hotbackup.mindays

�螟葫卉繒i�O�贊b�臥冑W���兕桌拭北C 

caldb.berkeleydb.hotbackup.maxdays

�螟葫卉繒i�O�贊b�臥冑W���具hQ�北C 

caldb.berkeleydb.hotbackup.threshold

70 

ㄌ�鴒螟葫卉職��臥剌孔・岑�w�C�樟W�L�{�免早佣A十�o�M�╰␉��卉��C 

caldb.berkeleydb.archive.mindays

�k�利卉繒i�O�贊b�臥冑W���兕桌拭北C 

caldb.berkeleydb.archive.maxdays

�k�利卉繒i�O�贊b�臥冑W���具hQ�北C 

caldb.berkeleydb.archive.threshold

70 

ㄌ�儡k�吾兵秣卉職��臥剌孔・岑�w�C�樟W�L�{�免早佣A十�o�M�╰␉��卉��C 

�祁枓頤h�� CPU ���t�饕��勾\��

�p�G�Y�x�鼬A��⑼�h�� CPU�A�卦w�] Calendar Server �|�b�o�� CPU �W��Χ HTTP �A�� (cshttpd �{��) �M����①�箏召w�A�� (csdwpd �{��)�C

service.http.numprocesses �M service.dwp.numprocesses �拭叻T�w���C�蚩A�旬膾腦��{�乒��緊恿卉荀C�卦w�]�A�b�w�秀�� A�o�伍拭司]�w���鼬A�� CPU ���卉荀A�黌z�i�H���]�o�伙年C�派p�A�p�G�鼬A���馭� 8 �� CPU�A�黌z�叨� cshttpd �M csdwpd �{�任戎b 4 �� CPU �W�膾腱A�h�N�拭司]�w���G

service.http.numprocesses="4"

 service.dwp.numprocesses="4"

�Y�n��ㄌ�t�饕��勾\�款A�匍N service.loadbalancing �拭叭W�[�� ics.conf �兵砝A���N�搔]�w�� “no”�C�M�筆��s�洎� Calendar Server�A�芬甜頹帕一C

�祁杼O�免�

�i�H�祁杭U�� ics.conf �拭去��O�免戍茂弱� Calendar Server �刁款C

�s�b�H�U�������O�免年R

�p�莆��嚮s�� ics.conf �拭去��箇T�A�勁拮\編輯 ics.conf 配置檔案�C

csadmind ���O�免�

�U�槽?� ics.conf �兵砥4按最z (csadmin) �A�戍祁果� Calendar Server �O�冷拭北C

表 21–4 �最z�A�� (csadmin) �� HTTP �O�免�

�拭� 

�?� 

service.admin.idletimeout

�鬚w csadmind �A�戎b�肩=m�� HTTP �s�u�O�伯��e�Φ蛇��模北C 

�w�]�� 120 �� (2 ��亡)�C 

service.admin.resourcetimeout

�鬚w csadmind �A�戎b�肪綜��腹四搓� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C 

�w�]�� 900 �� (15 ��亡)�C 

service.admin.sessiontimeout

�鬚w csadmind �A�戎b�� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C 

�w�]�� 1800 �� (30 ��亡)�C 

�@�誤祁果函� HTTP �O�免�

�U�槽?� ics.conf �兵砥ⅣMㄌ�頭@�誤祁果函� Calendar Server HTTP �O�冷拭北C

表 21–5 ics.conf 3ㄌ�頭@�誤祁果函� HTTP �O�免� (cshttpd �A��)

�拭� 

�?� 

service.http.idletimeout 

�鬚w cshttpd �A�戎b�肩=m�� HTTP �s�u�O�伯��e�Φ蛇��模北C

�w�]�� "120" �� (2 ��亡)�C

service.http.resourcetimeout 

�鬚w cshttpd �A�戎b�肪綜��腹四搓� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C

�w�]�� "900" �� (15 ��亡)�C

service.http.sessiontimeout 

�鬚w cshttpd �A�戎b�� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C

�w�]�� "1800" �� (30 ��亡)�C

GSE �稼C�O�免�

�H�U ics.conf �兵祗拭可鬚w�b Calendar Server ��〦�e�u�@���y�s�峻叫{d�� (GSE) �稼C6�e�蛄n�Φ蛇��劫� (�H�撢��腳�)�G

gse.belowthresholdtimeout="3"

�p�G�稼C3���u�@�h�餞洎t�m�膾董鱉��兕j�卉荀A�h�刻稅@�胞膾董齬N�l�祖��s���y�u�@�稼C�C�]ⅴ�A�朱撩u�@�卉荃p�餞洎t�m�膾董鱉��兕j�卉衰佣Aⅴ�]�w�~�殖帕一C

�w�]�� "3"�C�W�jⅴ�卉訌|�磐栽鼬A�����y�稼C���W�v���▇@�嗇榷刁款C�鑰O�A�p�Gㄏ�館卉鴕q���W�[�胥秉稼C牛�o�L�j�A�i�H�磐栓劫 A�H〥�\�餐殷B�z�稼C�C�o�i�湘|�免P���C�嗇榷刁款A�觀卉骼N�|�餐柴鴣s�C

第 22 章 疑難排解

本章包括一些可以用於確定系統是否有問題以及問題出現之原因的疑難排解技術。本章包含以下主題:

啟用除錯資訊

由於沒有一個可以將整個系統置於「除錯模式」的 ics.conf 參數,所以本小節說明一些獲得有用除錯資訊的方法:


備註 –

確定關閉不需要的多餘記錄和監視,否則將對效能起負面影響。


提昇記錄層級

使用下表中顯示的參數提昇記錄詳細度:

參數 

說明和預設值 

logfile.loglevel

設定為 DEBUG 以記錄所有層級,包括 CRITICALALERTERRORWARNINGNOTICEINFORMATION。此設定可套用於所有記錄。

如需有關可用的不同記錄的更多資訊,請參閱使用 Calendar Server 記錄檔

啟用對 LDAP 快取記憶體的存取記錄

若要記錄對 LDAP 資料快取記憶體的所有存取情況並列印記錄 (報告),請設定下表中所顯示的 ics.conf 參數。

參數 

說明和預設值 

local.ldap.cache.stat.enable

指定是否在記錄檔中記錄對 LDAP 資料快取記憶體的存取情況並列印統計資料。預設為 “no” (無記錄的統計)。設定為 “yes” 以啟用對統計的記錄。

若要增強效能,請僅在除錯模式中使用此設定。 

local.ldap.cache.stat.interval

指定各統計資料報告寫入記錄檔的間隔時間 (以秒為單位)。預設為 “1800” 秒 (30 分鐘)。

此預設僅在記錄啟用時才處於作用中。縮短間隔可以協助您準確地確定問題所在。增加間隔將會減緩系統載入。 

清除 LDAP 快取記憶體

目前 Calendar Server 中沒有使 LDAP 快取記憶體資料過期的邏輯。您必須手動移除 ldap_cache 目錄的內容並重新啟動 Calendar Server。

Procedure清除 LDAP 快取記憶體

步驟
  1. 停止 Calendar Server。

  2. 移除 /var/opt/SUNWics5/csdb/ldap_cache 目錄中的所有檔案,但請勿移除 ldap_cache 目錄本身。

  3. 重新啟動 Calendar Server。

使用 Calendar Server 公用程式監視系統

使用以下公用程式監視系統:

如需有關 Calendar Server 公用程式的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照

LDAP 問題的疑難排解

如果您是首次建立託管環境,則必須透過增加適當的網域、容器、使用者和資源項目在 LDAP 中建立 DC 樹狀結構。如果使用 Calendar Server 公用程式 (例如 cscal) 時 DC 樹狀結構尚不存在,您可能會看到以下錯誤訊息:「Initialization failed .... exiting」。

確定您的 DC 樹狀結構在 DC 樹狀結構根目錄下至少包含一個 (預設) 網域。使用建立新的託管網域中的說明建立 DC 樹狀結構。

遷移公用程式的疑難排解

Calendar Server 提供了數個用於遷移行事曆資料庫和 LDAP 目錄的公用程式。本小節包含以下主題:

呼叫技術支援之前所要執行的工作

一般情況下,如果您在使用遷移公用程式時遇到疑難,則應該先收集好以下資訊,然後聯絡技術支援:

遷移公用程式的位置

各遷移公用程式及其文件位於以下清單中所指定的位置:

模式遷移公用程式 (commdirmig)

此公用程式隨附於 Delegated Administrator,是一個可獨立安裝元件。它可將您的 LDAP 目錄從 Schema 1 遷移至 Schema 2。如需有關此公用程式的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Migration Guide」

Calendar Server 5 至 Calendar Server 6 遷移公用程式 (cs5migrate)

技術支援提供了包括公用程式及其文件的遷移程式集。

Calendar Server 遷移公用程式 (csmig)

此公用程式與 Calendar Server 一同安裝。文件位於第 4 章, 資料庫遷移公用程式中,其中包括疑難排解小節。如果您要使用託管網域和 LDAP 行事曆查找資料庫 (CLD) 外掛程式,則必須執行此公用程式。

Calendar Server 虛擬網域遷移公用程式 (csvdmig )

此公用程式與 Calendar Server 一同安裝。文件位於第 4 章, 資料庫遷移公用程式中。使用此公用程式為托管網域準備行事曆資料庫和 LDAP 目錄項目。

Calendar Server 2 至 Calendar Server 6 遷移公用程式 (ics2migrate)

此公用程式與 Calendar Server 一同安裝。文件位於第 4 章, 資料庫遷移公用程式中。使用此公用程式遷移 Calendar Server 2 資料庫,以與 Calendar Server 5 相容。

Netscape Calendar Server 4 至 Calendar Server 5 遷移公用程式 (ncs4migrate)

此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意,因為來源資料庫中缺乏一致性。與許多手冊相同,此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意。通常需要對原始碼檔案執行許多工作,此公用程式才可以執行。可以考量使用專業服務協助您規劃遷移。

Calendar Server 的疑難排解

本小節包括多種用於非資料庫問題的疑難排解方法。本小節包括以下主題:


提示 –

此外,在 SSL 章節中還包含 SSL 疑難排解小節:

SSL 的疑難排解


對行事曆服務執行 Ping 作業

若要驗證服務是否在偵聽指定的連接埠號,請使用cstool 公用程式的 ping 指令。對某種服務執行 ping 作業不會驗證該服務是否確實正在執行,但會指示該服務是否可以接受套接字連線。

cstool 的服務選項

Calendar Server 服務選項為:

http

HTTP 服務 (cshttpd)

admin

管理服務 (csadmind)

ens

事件通知服務 (enpd)


備註 –

您無法對 DWP 服務 (csdwpd) 或通知服務 (csnotifyd) 執行 ping 作業。


cstool 範例

例如,對主機名稱為 calserver 的機器執行 ping 作業,以查看 cshttpd 服務是否正在偵聽連接埠 80:

cstool -p 80 -h calserver ping http

依預設,cstool 會等待 120 秒,以查看有無回應;但您可以使用 -t timeout 選項變更該值。

如需完整的公用程式參考材料,請參閱附錄 DCalendar Server 指令行公用程式參照


備註 –

必須執行 Calendar Server,才能執行 cstool


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 問題

關閉時需要考量以下兩個不同的問題:

Procedure停止子程序

發出 stop-cal 後,很可能未停止某些子程序。例如,stop-cal 可能停止了 cshttpd 父系程序,但未停止任何 cshttpd 子程序。在此情況下,您必須使用以下程序分別停止其餘 Calendar Server 程序:

步驟
  1. 以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。

  2. 透過為每種服務輸入 ps 指令,確定其餘 Calendar Server 程序的程序 ID (PID):


    ps -elf | grep cs-process
    

    其中 cs-processenpdcsnotifydcsdwpdcsadmindcshttpd。例如:


    ps -elf | grep cshttpd
  3. 使用仍在執行的各程序的 PID,輸入 kill -15 指令強制結束該程序。例如:kill -15 9875

  4. 再次輸入各 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 指令傳回正在執行的執行緒清單,而非程序清單。尚無可以僅顯示程序的已知解決方法。


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 快取記憶體將會過期。若要更新快取記憶體,您需要將其清除以便重建。

嘗試使用代理伺服器認證登入時,系統會提示您「未授權」

  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 伺服器傳回錯誤,可能是 nsSizeLimit 參數或 nsLookthroughLimit 參數的值不夠大。

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. 重新啟動目錄伺服器。


      備註 –

      如需有關如何使用 ldapmodify 和編輯 dse.ldif 檔案的資訊,請參閱 Directory Server 文件,位於:

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


從 csstored 關閉令人生厭的每日訊息

依預設,start-cal 指令啟動 csstored 程序 (即使其尚未配置)。未配置的 csstored 程序將在執行 csstored 的每台機器上每隔 24 小時發出一次訊息,說明其尚未配置。

若要停用該訊息,請防止 csstored 在未配置的情況下執行。若要停止 csstored 程序執行,請為產生訊息的每台機器設定如下所示的 ics.conf 參數:

service.store.enable=”no”

請小心不要停用已配置 csstored 以進行自動備份的機器上的程序。

關於資料庫問題

本小節包括關於 Calendar Server 資料庫的各種問題:

尋找 Berkeley 資料庫工具

您將要執行的許多疑難排解步驟要求已存取 Berkeley 資料庫公用程式。儘管 Calendar Server 隨附有這些公用程式的某個版本,但其不受支援。您可能希望直接從 Sleepycat Software (http://www.sleepycat.com) 獲得更多資訊。

本小節包含以下主題:

存取 Berkeley 資料庫公用程式

設定並匯出 LD_LIBRARY_PATH 環境變數,以反映以下目錄:

cal_svr_base/SUNWics5/cal/tools/unsupported/bin/

可用工具清單

下表列出了一些常用 Berkeley 資料庫工具 (公用程式)。

Berkeley 資料庫工具 

說明 

db_archive

將不再使用的記錄檔之路徑名稱寫入標準輸出 (每行一個路徑名稱)。 

db_checkpoint

常駐程式程序,監視資料庫記錄並定期呼叫檢查點常式檢查資料庫記錄。 

db_deadlock

遍歷資料庫環境鎖定區域並在每次偵測到死結或已逾時的鎖定請求時中斷鎖定請求。 

db_dump

使用 db_load 公用程式可以識別的平面文字格式,將指定的檔案寫入標準輸出。

db_load

從標準輸入中讀取檔案並將其載入指定的資料庫檔案。如果檔案不存在,該工具將建立它。 

db_printlog

除錯公用程式以人類可讀格式傾印記錄檔。 

db_recover

應用程式、資料庫或系統出現意外故障後,將資料庫復原為與原來一致的狀態。 

db_stat

顯示資料庫環境的統計。 

db_verify

驗證一個或多個檔案的結構及檔案包含的資料庫。 

Procedure偵測與修正資料庫死結

如果 Berkeley 資料庫處於死結狀態,則必須重設資料庫。儘早偵測此情況是很重要的。

若要使系統能定期檢查資料庫以偵測死結狀態並通知管理員,請:

步驟
  1. 以擁有變更配置權限的管理員身份登入。

  2. 變更至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 如有必要,編輯 ics.conf 以具有以下值:

    local.caldb.deadlock.autodetect=”yes”


    備註 –

    此參數設定為 “yes” 時,啟動監視鎖定區域的 db_deadlock 常駐程式。


偵測資料庫損毀

可導致行事曆資料庫損毀的原因有以下多種:系統資源競爭、硬體故障、應用程式錯誤、資料庫故障,當然,還有人為的錯誤。本小節說明如何偵測行事曆資料庫損毀:

資料庫損毀基本

沒人能保證資料庫不受到損毀。但是可以將資料丟失和作業當機時間降至最低。密切監視資料庫和行事曆伺服器是儘早偵測損毀的關鍵。經常並完整地備份是從損毀 (只要發現) 中恢復的關鍵。

以下是行事曆資料庫可能受到的損毀的兩個層級:

監視記錄檔

監視 Calendar Server 記錄檔 (包括警示記錄),以發現任何可能指出資料庫損毀的錯誤訊息。如需有關記錄檔的資訊,請參閱使用 Calendar Server 記錄檔

您應定期檢查記錄檔,瞭解是否存在 ALERTCRITICALERROR 以及 WARNING 層級的錯誤,一旦發現錯誤,應執行 Calendar Server 來檢查事件,以找出可能的問題。Calendar Server 正常作業期間會產生 NOTICEINFORMATION 層級的記錄事件,這些事件可協助您監視伺服器狀態。

切勿移除資料庫目錄中的任何作業事件記錄檔。業事件記錄檔包含作業事件更新 (增加、修改或刪除),移除它們可能會損毀行事曆資料庫並且無法回復。


備註 –

當您請求 Calendar Server 技術支援時,可能需要提供記錄檔,以協助解決問題。


使用 csmonitor

使用 csmonitor 公用程式監視 Calendar Server。該公用程式會在偵測到問題 (例如存在多個作業事件記錄檔或行事曆資料庫磁碟空間不足) 時透過電子郵件警示管理員。如需更多資訊,請參閱csmonitor

Procedure檢查行事曆資料庫是否損毀

使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprop]、事件和待辦事項 [工作]) 是否有損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。

check 指令不檢查警示或群組排程引擎 (GSE) 資料庫中是否有損毀。

步驟
  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。

  3. 如果您尚未建立行事曆資料庫的副本,請建立副本。

    僅複製資料庫 (.db) 檔案。您無需複製任何共用 (__db.*) 檔案或記錄 (log.*) 檔。

  4. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

    例如,在 Solaris 作業系統上,輸入以下作為預設目錄:


    cd /opt/SUNWics5/cal/sbin
  5. 在行事曆資料庫的副本中執行 check 指令:


    ./csdb check dbdir /tmp/check.out 

    如果您未指定 dbdircheck 將使用目前目錄中的資料庫。

    check 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案 (如範例中所示)。

  6. check 完成後,請複查輸出檔案。如果您的資料庫已毀壞,請執行 rebuild 指令。

    (請參閱重建已損毀的行事曆資料庫。)

防止服務在資料庫發生損毀時中斷 (唯讀模式)

本小節包括如何在回復模式中保持已損毀的資料庫可存取,並包含以下主題:

使用唯讀模式

遇到資料庫損毀時,防止服務中斷的一個方法是將資料庫置於唯讀模式。此模式允許一般使用者讀取資料庫項目,但不允許對其進行增加、修改或刪除。如果一般使用者嘗試增加、修改或刪除任何行事曆資料,系統將提示錯誤訊息。此外,當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。


備註 –

如果資料庫已毀壞到不可被讀取的程度,則必須將服務中斷足夠長的時間以復原備份。復原備份的最快方法是具有完好的緊急備份。請參閱復原之前


Procedure將資料庫置於唯讀模式

步驟
  1. 儘管不是必要的,但您可以選擇暫時停止行事曆服務以防止資料庫被進一步損毀。

    若要停止行事曆服務,請:

    cal_svr_base/SUNWics5/cal/sbin/stop-cal

  2. 在指令行變更至 ics.conf 所在的目錄︰

    cd /etc/opt/SUNWics5/config

  3. 為行事曆資料庫指定唯讀模式:

    caldb.berkeleydb.readonly=”yes”

  4. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰

    cal_svr_base /SUNWics5/cal/sbin/start-cal

    您必須重新啟動服務,以使 ics.conf 變更生效。

處理常見資料庫故障

本小節包括一些常見資料庫故障以及一些建議的補救方法。本小節包含以下主題:

Procedure在啟動期間,csadmind 不會啟動或當機

由於 csadmind 是同時處理群組排程引擎 (GSE) 和警示派送引擎的服務,因此這種情況可能是由 GSE 佇列或警示佇列的違例項目導致的。

補救方法:

步驟
  1. 如果 csadmind 沒有執行,請立刻發出 stop-cal

    將行事曆伺服器置於執行狀態可能會導致作業事件記錄累積,從而進一步損毀資料庫,並且可能要花更長的時間使作業事件記錄檔符合資料庫。

  2. 嘗試再次重新啟動 csadmind (再次發出 start-cal)。

    如果啟動成功,請確定透過以下操作使兩個佇列發揮其功能:

    1. 使用 csschedule 檢查 GSE 佇列。

    2. 使用 dbrig 檢查警示佇列。

      如需有關執行 csscheduledbrig 的說明,請參閱附錄 DCalendar Server 指令行公用程式參照

  3. 如果 csadmind 由於傾印而當機,請分析 pstack

    如果您在追蹤中發現任何與 GSE 有關的功能 (它們中有字母 GSE),請查看 GSE 佇列的第一個項目和事件資料庫中的參照項目。多數時候,GSE 項目中涉及的事件是違例項目。若要修正此問題,請:

    1. 使用 csschedule 移除 GSE 項目。

    2. 使用 cscomponents 從資料庫中移除違例事件。

      如需有關執行 csschedulecscomponents 的說明,請參閱附錄 DCalendar Server 指令行公用程式參照

  4. 如果項目沒有被損毀,可能是行事曆伺服器無法處理的特殊情況。

    執行以下步驟:

    1. 拍攝已損毀的資料庫的行事曆環境快照,並聯絡客戶支援。

      若要建立環境備份,請:

      1. 使用 db_checkpoint 公用程式,位於:

        cal_svr_base/SUNWics5/cal/tools/unsupported/bin/db_checkpoint

      2. 執行 db_archive -s

        使用 -s 選項識別所有資料庫檔案,並將其複製到可移動的媒體 (例如 CD、DVD 或磁帶)。

      3. 執行 db_archive -l

        使用 -l 選項識別所有記錄檔,並將未套用的記錄檔複製到可移動媒體裝置。

    2. 若要避免服務中斷,請將行事曆資料庫暫時置於唯讀狀態,並復原至緊急備份副本。

      • 將行事曆資料庫暫時置於唯讀狀態可防止任何增加、修改或刪除作業事件的發生。一般使用者增加、修改或刪除任何行事曆資料時都會收到錯誤訊息。當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。

        若要將行事曆資料庫置於唯讀模式,請編輯 ics.conf 檔案並將以下參數設定為 “yes”,如下所示:

        caldb.berkeleydb.readonly=”yes”

      • 使用復原自動備份副本中的說明復原至緊急備份副本。

        配置並啟用 csstored 後,在幾分鐘內即成為最新的緊急備份變為可用。您應經常驗證緊急備份副本以確定其也未被毀壞。(執行 db_verify。)

  5. 如果其他所有方法均失敗,請執行傾印和重新載入程序以查看其是否能挽救資料庫。

    使用傾印和載入程序回復行事曆資料庫中說明了此程序。

Procedure服務當機並且一般使用者無法連線 – 孤立鎖定

這種情況可能是由控制執行緒導致的,該執行緒鎖定了 Berkeley DB 資料庫頁面,並在退出時未釋放鎖定。若要確認此問題,請執行 cshttpd 程序上的 pstack,並執行 csadmind。(pstack 是標準的 UNIX 公用程式,其位於:/usr/bin/pstack)。該公用程式將顯示等待以獲得鎖定的執行緒。

若要修正此問題,請重新啟動 Calendar Server,如下所示:

步驟
  1. 變更至 start-cal 所在的目錄。

    cd cal_svr_base/SUNWics5/cal/sbin

  2. 發出 start-cal 指令。

    ./start-cal

Procedurecsdb rebuild 無法完成 – 資料庫迴圈

資料庫迴圈通常是由資料庫檔案中的損毀導致的。由於是資料庫損毀,故無法復原。有數個選項:

步驟
  1. 復原至緊急備份。

    如果損毀是最近發生的,則可使用一個緊急備份。

  2. 使用突變歸檔回復程序。

    如需建議使用的程序,請參閱復原自動備份副本

  3. 使用傾印和重新載入程序,使用傾印和載入程序回復行事曆資料庫

重建已損毀的行事曆資料庫

本小節說明如何使用 csdb rebuild 指令,其中包含以下主題:

rebuild 簡介

rebuild 指令掃描行事曆資料庫,並檢查行事曆特性 (calprop) 事件和待辦事項 (工作) 是否損毀。如果 rebuild 指令找到不一致性,其會在 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建行事曆資料庫 (.db 檔案)。

不帶有 -g 選項的 rebuild 指令重建除群組排程引擎 (GSE) 資料庫之外的所有資料庫。若還要重建 GSE 資料庫,請包含 -g 選項。

若要確定 GSE 資料庫中是否有項目,請在執行 rebuild 指令之前執行 csschedule -v list 指令,然後使 GSE 處理完那些項目。

Procedure重建行事曆資料庫

步驟
  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. 停止 Calendar Server。

  3. 建立行事曆資料庫副本,並將行事曆資料庫置於 /tmp/db 目錄中。

    複製資料庫 (.db) 檔案和記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。

  4. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

    例如,在 Solaris 作業系統上,輸入以下作為預設目錄:


    cd /opt/SUNWics5/cal/sbin

    備註 –

    如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。


  5. 在行事曆資料庫的副本中執行 rebuild 指令:


    ./csdb rebuild /tmp/db /tmp/

    如果未指定資料庫路徑,rebuild 將使用目前的目錄。/tmp/ 參數為重建資料庫指定目標目錄。

    若還要重建 GSE 資料庫,請包含 -g 選項。

    rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案。


    備註 –

    請始終使用最新的備份複本重建您的行事曆資料庫。

    然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中。)

    例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601db_0615db_0629 中,請按以下序列執行 rebuild 指令:


    ./csdb rebuild db_0629 
    ./csdb rebuild db_0615 
    ./csdb rebuild db_0601

    然後 rebuild 指令會將重建資料庫寫入 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄。


  6. rebuild 完成後,請複查 rebuild.out 檔案中的輸出。

    如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt
  7. 驗證在先前步驟中的重建成功之後,請從 rebuild_db 目錄將重建資料庫 (.db) 檔案複製到您的生產資料庫。

  8. 如果您有任何已毀壞資料庫的共用 (__db.*) 檔案或記錄 (log.*) 檔,請將其移至其他目錄。

  9. 重新啟動 Calendar Server。

重建輸出範例

以下範例顯示指令及其產生的輸出:


# ./csdb -g rebuild
Building calprops based on component information.
Please be patient, this may take a while...
Scanning events database...
512 events scanned
Scanning todos database...
34 todos scanned
Scanning events database...
512 events scanned
Scanning todos database...
34 todos scanned
Scanning deletelog database...
15 deletelog entries scanned
Scanning gse database...
21 gse entries scanned
Scanning recurring database...
12 recurring entries scanned
Successful components db scan
Calendar database has been rebuilt
Building components based on calprops information.
Please be patient, this may take a while...
Scanning calprops database to uncover events...
25 calendars scanned
Scanning calprops database to uncover todos...
25 calendars scanned
Successful calprops db scan
Calendar database has been rebuilt
            

備註 –

前面的輸出範例顯示事件資料庫和待辦事項資料庫分別被掃描了兩遍。這不是錯誤。掃描第一遍以驗證行事曆特性資料庫中的資訊,然後再掃描一遍以確定行事曆特性資料庫可存取。


使用傾印和載入程序回復行事曆資料庫

本小節包含以下主題:

傾印和載入概況

使用傾印和載入程序以嘗試復原已損毀的資料庫。傾印和載入程序使用 Berkeley 資料庫 db_dumpdb_load 公用程式,Calendar Server 在以下目錄中提供這些公用程式:


cal_svr_base/SUNWics5/cal/tools/unsupported/bin

db_dump 公用程式使用與 db_load 公用程式相容的格式,來讀取資料庫檔案並將資料庫項目寫入輸出檔案。

如需有關 db_dumpdb_load 公用程式的文件,請參閱 Sleepycat Software 網站:

http://www.sleepycat.com/docs/utility/index.html

使用 db_dumpdb_load 公用程式回復資料庫成功與否取決於資料庫的損毀程度。在成功地回復資料庫之前,您可能需要嘗試多個 db_dump 選項。但是,如果您的資料庫嚴重毀壞,回復也許是不可能的,您可能需要復原至資料庫的最後一個完好的緊急備份或歸檔檔案備份。


備註 –

在執行傾印和載入程序之前,行事曆資料庫必須為 Berkeley DB 3.2.9 版,或更高版本。如果您的版本是舊版,請首先執行 cs5migrate 公用程式以對您的行事曆資料庫進行升級。

如需 cs5migrate 的最新版本,請致電 Sun 技術支援。


Procedure執行傾印和載入程序

步驟
  1. 以執行 Calendar Server 的使用者與群組 (例如 icsusericsgroup) 身份登入,或以超級使用者 (root) 身份登入。

  2. 如有必要,請停止 Calendar Server。

  3. 使用公用程式 (例如 csbackup、Sun StorEdge Enterprise BackupTM 軟體或 Legato Networker®) 備份已毀壞的資料庫。

    如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料

  4. 使用 db_dump 公用程式傾印每個已毀壞的資料庫檔案。

    資料庫檔案為 ics50calprops.db ics50journals.dbics50alarms.dbics50events.dbics50todos.dbics50gse.db

    請依次使用以下選項執行 db_dump,直到已回復資料庫 (或直到您確定無法回復資料庫) 為止:

    • No 選項,用於次要資料庫損毀。

    • -r 選項,用於中度資料庫損毀。

    • -R 選項,用於嚴重資料庫損毀。-R 選項從已毀壞的資料庫中傾印的資料要比 -r 選項多,包括部分已刪除的記錄。

      例如,配合執行 db_dump-r 選項:


      db_dump -r ics50events.db \> ics50events.db.txt
  5. 使用 db_load 公用程式將輸出檔案載入至新的資料庫檔案。

    例如:


    db_load new.ics50events.db < ics50events.db.txt

    如果 db_load 報告的鍵值或資料項目為奇數,請編輯 db_dump 輸出檔案,並移除奇數鍵值或資料項目。然後再次執行 db_load

  6. 對其他已毀壞的資料庫檔案重複前面的兩個步驟。

    亦即對其他已毀壞的資料庫檔案執行 db_dump

  7. 使用 csdb rebuild 指令重建回復的資料庫檔案,如重建已損毀的行事曆資料庫中所述。

    rebuild 完成後,請複查輸出檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt

    如果 csdb rebuild 指令未成功,請使用下一個 db_dump 選項 (-r-R) 傾印資料庫。

    如果 db_dump -R 選項無法回復已毀壞的資料庫,請與 Sun Microsystems 技術支援或銷售客戶代表連絡,以尋求援助。同時,您可能需要復原至您資料庫的最後一個完好備份。

復原自動備份副本

如果您已使用第 10 章, 配置自動備份 (csstored)中所述的自動備份功能,則可以在即時資料庫毀壞時使用緊急備份副本。

本小節包括如何復原兩種不同的自動備份:

復原之前

復原備份之前,請確定您已經完成以下作業:

Procedure復原緊急備份

即時資料庫被毀壞時,應首先選擇緊急備份。若要復原緊急備份,請執行以下步驟:

步驟
  1. 識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。

  2. 關閉開啟以備寫入的記錄。它包含最新作業事件。

  3. 建立新的 (回復) 目錄。

  4. 將目前的緊急備份副本複製到新的回復資料庫目錄中。

  5. 將已毀壞的即時資料庫目錄中的 log.* 檔案複製到新的回復資料庫目錄中。

  6. 如果您保留了資料庫的歸檔檔案副本,請將尚未套用於即時資料庫的記錄複製到歸檔檔案目錄,這樣您的歸檔檔案備份副本就完整了。

  7. 配合執行 db_recover 與針對新的回復資料庫指定的 -c -h 選項。

    例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:

    db_recover -c -h recoverydb

  8. log.* 檔案保留在新的回復目錄中。

    db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求保留這些記錄檔。

  9. 對新的回復目錄中的資料庫檔案執行 db_verify

    如需說明,請參閱檢查行事曆資料庫是否損毀

  10. 對新的回復目錄執行 csdb -v list

  11. 如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。

  12. 將新的即時資料庫複製到緊急備份目錄中,以做為新的快照執行。

    在拍攝下個常規快照之前,所有新記錄將被套用於此副本。

  13. 啟動 CalendarServer。

  14. 如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未毀壞的更舊的緊急備份:

    1. 向後執行緊急備份,透過依次在每個緊急備份上執行 db_verifycsdb -v list 尋找未毀壞的最新副本。

    2. 通過的第一個緊急備份可以被復原至即時資料庫目錄。

      使用未使用的緊急備份替代已毀壞的即時資料庫,如復原緊急備份中所述。(請務必首先閱讀復原之前。)

    3. 如果無緊急備份可用且您沒有可嘗試的歸檔檔案備份,請致電技術支援。如果您有歸檔檔案備份,請遵照復原歸檔檔案備份之後的程序。(另請參閱復原之前。)

Procedure復原歸檔檔案備份

如果您沒有未損毀的緊急備份,但有歸檔檔案備份及其作業事件記錄,則可以透過執行以下步驟復原已歸檔資料庫的最新未損毀版本:

步驟
  1. 識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。

  2. 關閉開啟以備寫入的記錄。它包含最新作業事件。

  3. 建立新的 (回復) 目錄。

  4. 將最新的歸檔檔案副本及其記錄檔複製到新的回復資料庫目錄。

  5. 將已毀壞的即時資料庫目錄中的任何未套用的 log.* 檔案複製到新的回復資料庫目錄中。

  6. 配合執行 db_recover 與針對新的回復資料庫指定的 -c -h 選項。

    例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:

    db_recover -c -h recoverydb

  7. log.* 檔案保留在新的回復目錄中。

    db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求仍舊將這些記錄檔保留在此處。

  8. 對新的回復目錄中的資料庫檔案執行 db_verify

    如需說明,請參閱檢查行事曆資料庫是否損毀

  9. 對新的回復目錄執行 csdb -v list

  10. 如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。

  11. 將新的即時資料庫複製到緊急備份目錄中,以作為新的快照執行。

  12. 啟動 CalendarServer。

  13. 如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未損毀的更舊的歸檔檔案備份:

    1. 向後執行歸檔檔案備份副本,透過依次對每一個歸檔檔案備份副本執行以下三個回復程式以尋找未損毀的最新副本:db_recover -c-hdb_verifycsdb -v list

    2. 通過的第一個歸檔檔案副本可以被復原至即時資料庫目錄。

      使用未使用的歸檔檔案備份替代已毀壞的即時資料庫,如復原歸檔檔案備份中所述。

    3. 如果您的歸檔檔案備份都不可用,請致電技術支援。

修復自訂備份程序檔

本小節包含以下主題:

使用動態式庫編譯的 Berkeley 工具

如果您已使用 Berkeley 資料庫工具 (例如 db_recover) 建立自訂備份程序檔,則可能會發現升級至 Calendar Server 後,該程序檔無法再工作。其原因是:舊版 Calendar Server 使用靜態式庫編譯工具。現在使用動態程式庫 (libdb-4.2.so) 編譯工具。

修復自訂備份程序檔

若要將現有的自訂程序檔與新的動態式庫一同使用,請按如下所示設定以下全域變數:

LD_LIBRARY_PATH=libdb-4.2.so