ProcessRunner.OnIdle, System.InvalidOperationException

今天突然發現AgilePoint Server 的Log 長大到20M,檢查後發現之前就曾發生過, 趕快檢查一下內容, 發現都是

2010-01-25 16:30:16.538 >>> ProcessRunner.OnIdle, System.InvalidOperationException: 指定的分類的計數器配置無效,以下型別的計數器: AverageCount64、AverageTimer32、CounterMultiTimer、CounterMultiTimerInverse、CounterMultiTimer100Ns、CounterMultiTimer100NsInverse、RawFraction 或 SampleFraction 後面必須緊接著下列任何基礎計數器型別: AverageBase、CounterMultiBase、RawBase 或 SampleBase。
   於 System.Diagnostics.CategorySample.GetCounterDefinitionSample(String counter)
   於 System.Diagnostics.PerformanceCounter.NextSample()
   於 System.Diagnostics.PerformanceCounter.NextValue()
   於 bc.a(Object A_0, EventArgs A_1)
   於 ao.e()

這個錯誤我還是第一次看到, 我也是第一次知道AgilePoint 有讀效能計數器.

後來追查幾次log 記錄時間, 發現log記錄這個錯誤前, 事件件檢視器的應用程式上都有警告的訊息.

image

檢查內容發現是iasperf.dll 的問題, 看來是微軟的作業系統的問題.

image 

 

有看到一篇文章談到如何解決, 不過只談到如何忽略這個訊息, 但沒找到patch, 且不知忽略後, 對AgilePoint Server 的exception Log 會有什麼影響, 故先記錄下來., 下次再出現時再來測試.

http://support.microsoft.com/?id=249138


Modify the registry at your own risk.
To control this feature, set a REG_DWORD value named Configuration Flags in: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib If this value is not present, you can add it. The following lists the values and their meanings:
0x00 - Test for data buffer alignment errors.
0x01 - Do not test for data buffer alignment errors. Suppresses 1016 event.
0x02 - Do not disable DLLs when a critical error occurs but still post the events.
0x04 - Disable all perf counter function testing regardless of testing level. Critical errors will still disable DLLs.
0x08 - Enable the disabling of DLLs if timeouts are exceeded. Normally only other critical errors would disable DLLs.
0x10 - Enable the collection of statistics for each performance DLL. This is the default of Configuration Flags, if the value is not present.
set it to 0x01

留言

這個網誌中的熱門文章

如何使用SQL Profiler 找到語法錯誤

如何將SQL Server 的查詢輸出寫入文字檔

AgilePoint逐級簽核與指定簽核層級範圍