故障診斷 Lotus Domino 的掛起和崩潰3

  notes.ini 設定為了故障診斷性能和崩潰問題,您可以啟用下列 notes.ini 調試參數:

debug_threadid=1 記錄每個伺服器操作的每個進程和執行緒 id。
debug_show_timeout=1 打開到控制台的信號量逾時訊息,並創建一個名為的 semdebug.txt 信號量文本檔案。
debug_capture_timeout=10 給每個信號量逾時訊息加時間戳。
console_log_enabled=1 (domino 6 和更高版本)啟用 domino 控制台日誌記錄。

伺服器崩潰的故障恢復

您可以將故障恢復設定為自動處理 domino 伺服器崩潰。當伺服器崩潰時,它就自動關閉並重啟,無需任何管理員干預。domino 將崩潰信息記錄在 data 目錄中。當伺服器重啟時,domino 檢查它是否是崩潰後重啟。如果是的,就會自動給 “mail fault notification to” 域中的人員或組傳送一封電子郵件。

重大的錯誤(比如作業系統異常或內部 panic)終止每個 domino 進程,並釋放所有相關的資源。啟動腳本檢測該場景,並重啟伺服器。如果您使用的是多伺服器分區,並且故障發生在單個分區中,那么只有該分區終止並重啟。

domino 7 中的新故障診斷特性

本節簡要介紹一些有助於您分析和糾正伺服器掛起和崩潰的 domino 7 新特性。

domino domain monitoring

domino 7 中的一個最重要且有用的伺服器維護和故障診斷特性是 domino domain monitoring (ddm)。這為監控一個域(或多個域)中的所有伺服器提供了一個中央位置。ddm 使用名為 probes 的程式來收集來自單個伺服器的伺服器信息,然後報告回一個特殊的資料庫(ddm.nsf),您可以在該資料庫中查看所收集的數據。這允許您從單個 domino administrator 控制台監控、分析和故障診斷大量的伺服器。

activity trends

activity trends 特性用於分析 “歷史” 伺服器數據,以助於發現只有通過很長時間才能發現的趨勢。您可以查看該數據,來幫助預計和避免未來的問題。該數據從日誌檔案(log.nsf)和 catalog 任務收集而來,並存儲在 activity trends 資料庫(activity.nsf)中。activity trends collector 任務處理該數據,並產生 “趨勢化” 數據,用於繪製圖表和平衡資源。

將狀態條歷史寫到日誌檔案

您可以將 notes 客戶機狀態條訊息設定為記錄到本地日誌檔案(log.nsf)或者您指定的外部檔案。這有助於您故障診斷 notes 客戶機崩潰。使用 notes.ini 的設定 logstatusbar=1 將狀態條訊息記錄到 log.nsf。要查看已記錄的訊息,請打開 log.nsf 並點擊 miscellaneous events 視圖。狀態條訊息後跟有 status msg。要將狀態條訊息寫到外部檔案,請使用 notes.ini 的設定 debug_outfile=<path to file> 和 notes.ini 的設定 logstatusbar=1。例如:
logstatusbar=1
debug_outfile=c:\temp\statusbarlogging.txt

這將狀態條訊息記錄到檔案 statusbarlogging.txt。

log.nsf 檔案也提供 notes 客戶機崩潰之前記錄到狀態條中的動作的一個快照。

fault analyzer

fault analyzer 是一個新的伺服器特性,用於在所有新的崩潰被提交到 automatic data collection mail-in 資料庫時對它們進行處理。fault analyzer 任務搜尋為 fault report 文檔配置的資料庫,並確定堆疊是否與用戶或伺服器已經看到過的崩潰相匹配。它通過分析 fault report mail-in 資料庫中的調用堆疊,並分析它們以確定其中是否有相同問題的其他情況,從而在 automatic data collection 特性的基礎上新增了功能。

fault analyzer 是在設定 automatic data collection 的同時配置的。使用 server configuration 文檔在伺服器上設定 automatic data collection 和啟用或禁用 fault analyzer。

如果 fault analyzer 找到重複的故障報告,那么新的崩潰就被報告為初始崩潰的一個回響,並且附屬檔案要么被從回響文檔刪除以節省資料庫空間,要么用回響文檔進行保存。

automatic data collection 增強

當您使用 automatic data collection 工具來收集有關伺服器崩潰的信息時,現在伺服器被首先檢查,看它是否運行在 domino 之下,如果是的,就使用 controller 日誌。如果不是的,就檢查伺服器是否啟用了控制台記錄,如果是的,就使用控制台輸出。最後,如果既沒設定 domino controller,也沒設定控制台記錄,則會從 log.nsf 中提取數據。

現在您可以選擇,automatic data collection 工具在客戶機或伺服器上運行時,將會收集哪些檔案(使用通配符)。在 notes 客戶機上,它是使用 desktop policy settings 文檔配置的。在 domino 伺服器上,它是使用 server configuration 文檔配置的。

可能會出現這樣的情況,即 automatic data collection 傳送的輸出非常大。如果這成為了問題,那么您可以配置 automatic data collection,限制 nsd 傳送的附屬檔案和記錄到 fault reports 資料庫的控制台日誌的大小。

shutdown monitor

在您發出退出或重啟伺服器的命令之後,domino 伺服器通常要花很長時間才能實際關閉。為了避免這一延遲,shutdown monitor 任務確保 domino 在請求一終止時就立即終止。如果伺服器不在指定的時間內終止,那么伺服器將被迫終止,並在終止之前生成一個 nsd 日誌。這個時間限制是在 server 文檔的 automatic server restart 部分的 server shutdown timeout 域中指定的。

默認的 server shutdown timeout 設定是 5 分鐘。可以使用 notes.ini 的設定 shutdown_monitor_disabled=1 禁用該特性。

process monitor(僅針對 windows 平台)

process monitor 任務監控應該作為 domino 伺服器環境一部分運行的進程。(該任務只運行在 microsoft windows 平台上;該功能在 domino for unix 平台上已實現,無需使用單獨的伺服器任務。)如果任何這些進程缺失,或者一個進程在沒有完成通常的 domino 終止例程時就意外終止了,那么該任務將導致伺服器 panic 並確定哪個進程過早終止了。process monitor 任務與 nprocmon.exe 一起工作,後者監控 nserver.exe 進程的異常終止。

該特性可以大大減少異常終止問題出現的次數,而這樣的問題很難分析(因為通常難以確定哪個進程終止了並導致了伺服器問題)。要禁用 process monitor 任務,請在伺服器的 notes.ini 檔案中設定變數 process_monitor_disabled=1。

結束語

在本文中,我們定義了 domino 伺服器掛起與崩潰之間的區別。討論了在分析和修復 notes/domino 問題時可以使用的一些故障診斷過程和工具。還了解了 notes/domino 7 中引入的一些新的故障診斷特性。在 notes 客戶機或 domino 伺服器遇到掛起或崩潰時,您可以來參考這篇文章,當然,希望您不要經常碰到這種情況。