支援子系統
SupportSubsystem 會啟用您可以用來診斷 ThingWorx 環境中問題的工具。您可以使用此子系統來配置在環境中執行堆疊追蹤與堆積傾印。「支援子系統」預設為啟用,無法停止或禁用。
此子系統已取代不再受支援的「PTC 支援工具」延伸功能。
服務
支援子系統特定服務
描述
DeleteStacktraceFiles
刪除 SupportRepository 中格式與「支援子系統」所產生堆疊追蹤檔案相同的所有檔案。您可以使用此服務移除不必要的之前堆疊追蹤檔案,以便能夠採取新的堆疊追蹤。
DisableHeapDumps
「看門狗設定」組態表中的「啟用堆集傾印」核取方塊設定為 false。當將「啟用堆集傾印」設定為 false 時,DumpHeapDumpHeapAndAllThreads 服務無法執行。
DumpAllThreads
收集平台上執行服務之所有執行緒的堆疊追蹤。在叢集環境中,只有接收請求的平台才會收集堆疊追蹤。收集堆疊追蹤之後,會在 SupportRepository 中產生名為 stacktrace_<platform-id> 的檔案,其中 <platform-id> 是該平台 platform-settings.json 檔案中的平台 ID。如果在相同平台上再次呼叫服務,則會收集新的堆疊追蹤並將其附加至現有檔案的結尾。如果 SupportRepository 中的硬碟空間小於 5%,則 DumpAllThreads 無法執行。
DumpHeap
收集執行服務之平台上的堆積傾印。如果將「看門狗設定」組態中的「啟用堆集傾印」核取方塊設定為 false (預設值) 或不呼叫 EnableHeapDumps 服務,則不會採取任何堆積傾印。
在叢集環境中,只有接收服務呼叫的平台才會收集堆積傾印。收集堆積傾印之後,會在 SupportRepository 中產生名為 heapdump_<platform-id>_<timestamp>.hprof 的檔案,其中 <platform-id>platform-settings.json 檔案中指派給該平台的平台 ID,而 <timestamp> 是目前系統時間 (以毫秒為單位)。每次呼叫此服務時,DumpHeap 都會產生一個新的堆積傾印檔案。如果 SupportRepository 中的硬碟空間小於 5%,則 DumpHeap 無法執行。
用來從執行中平台轉儲堆積的機制,取決於可能不存在或由每個 JVM 支援之 JVM 的某些機制。如果 JVM 無法執行堆積傾印,會顯示一則錯誤訊息。
DumpHeapAndAllThreads
在單一服務呼叫中執行 DumpHeapDumpAllThreads 服務。結果會產生一個堆積傾印檔案,其中包含唯一的時間戳記,以及呼叫服務之平台上任何現有堆疊追蹤檔案中的其他堆疊追蹤資訊。如果不存在堆疊追蹤檔案,則會予以建立。如果將「啟用堆集傾印」組態核取方塊設定為 false,此服務不會執行堆積傾印或堆疊追蹤。
EnableHeapDumps
「看門狗設定」組態表中的「啟用堆集傾印」核取方塊設定為 true。預設值是 False。
啟用後,可以呼叫 DumpHeapDumpHeapAndAllThreads 任意次數。
GetRepositoryFreePercent
傳回 NUMBER,指示 SupportRepository 中可用磁碟空間的百分比。此服務由其他服務用來決定是否應繼續採取堆積傾印與堆疊追蹤,或者是否有足夠的剩餘磁碟空間。
GetSupportFileLinks
傳回包含所有堆積傾印與堆疊追蹤相關資訊的資料負載,且資訊中包含從存放庫下載所產生檔案的連結。此服務的功能與 GetFileListingWithLinks 完全相同,即提供的名稱遮罩會擷取每個堆積傾印與堆疊追蹤檔案。
GetWatchdogInterval
擷取「看門狗間隔」組態值,這是為 1 或更多秒的 INTEGER 基礎類型。
SetWatchdogInterval
變更「看門狗設定」組態表中的「看門狗間隔」組態值。此組態值會變更執行 DiagnosticWatchdog 時採取堆疊追蹤的間隔。間隔值可以是為 1 或更多秒的 INTEGER 基礎類型。
StartDiagnosticWatchdog
在叢集中的每個平台上開始背景程序。此程序會以指定間隔為每個平台持續產生堆疊追蹤。會在 SupportRepository 中產生名為 watchdog-stacktrace_<platform-id> 的檔案,其中 <platform-id>platform-settings.json 檔案中指派給該平台的平台 ID。DiagnosticWatchdog 會在每個平台上執行,或者不在任何平台上執行。
您可以在「看門狗間隔」欄位中或透過使用 SetWatchdogInterval 服務,來以秒為單位設定堆疊追蹤間隔。
StartDiagnosticWatchdog 服務也會在 SupportRepository 中產生 runstacktrace 檔案。只要該檔案存在,DiagnosticWatchdog 就會收集堆疊追蹤。如果對該檔案進行重新命名或移除,DiagnosticWatchdog 將保持閒置。如果在啟用 DiagnosticWatchdog 時重新引入 runstacktrace 檔案,則堆疊追蹤會以其設定間隔繼續。若禁用 DiagnosticWatchdogrunstacktrace 檔案會遭到刪除。此外,如果 SupportRepository 中的剩餘硬碟空間少於 5%,DiagnosticWatchdog 將不會收集堆積傾印或堆疊追蹤。
如果平台或叢集不會啟動,且「支援子系統」無法存取,您可以在平台啟動時或要進入叢集的第一個平台啟動時強制啟用 DiagnosticWatchdog。欲執行此操作,請在 ThingworxStorage/repositories 目錄中建立 SupportRepository 目錄 (若尚不存在)。之後,建立名為 runstacktrace,且無副檔名與必要內容的新檔案。然後,啟動平台。平台應會偵測檔案,將「啟用看門狗」核取方塊自動設定為 true 並執行 DiagnosticWatchdog
StopDiagnosticWatchdog
「看門狗設定」組態表中將「啟用看門狗」核取方塊設定為 false。如果此設定為 false,DiagnosticWatchdog 將會關閉,進而停止所有自動堆疊追蹤收集。這也會移除 runwatchdog 檔案。此操作不會刪除任何現有堆積傾印或堆疊追蹤檔案。
CreateRunStackTraceFile
在「支援子系統」檔案存放庫中建立 runstacktrace 檔案。
RemoveRunStackTraceFile
移除「支援子系統」檔案存放庫中的 runstacktrace 檔案。
組態
看門狗設定
基礎類型
預設
註記
「啟用看門狗」
BOOLEAN
true
依預設,此設定為啟用。
「看門狗間隔」
INTEGER
30
間隔值可以設定為一或更多秒。
「啟用堆集傾印」
BOOLEAN
false
依預設,此設定為禁用。
這是否有幫助?