FIX: 效能監視器計數器遺失叢集上訊息佇列中的容錯移轉期間

文章翻譯 文章翻譯
文章編號: 267316 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
重要 本文包含修改登錄的相關資訊。修改登錄之前請確定它備份起來,並請確定您瞭解如何在發生問題時還原登錄。如如何備份、 還原,以及編輯登錄有關,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
256986Microsoft Windows 登錄的描述
全部展開 | 全部摺疊

在此頁中

徵狀

Microsoft 訊息佇列,也稱為 MSMQ 可能報告不正確效能監視器 (效能監視器) 中的資訊。在 Microsoft Windows 2000 叢集和 Microsoft Windows Server 2003 叢集上,與訊息佇列就會發生這個問題。訊息佇列也可能在節點間容錯移轉後遺失效能監視器計數器。

應用程式事件日誌中可能會記錄下列錯誤訊息:


事件識別碼: 1008年
來源: Perflib
程描述: 的開啟序服務在 DLL 中的"MSMQ"的"C:\WINNT\System32\MQPERF.DLL"失敗。這項服務的效能資料將無法使用。傳回狀態碼是資料 DWORD 0

發生的原因

訊息佇列] 與 [Mqperf.dll 訊息佇列效能監視 DLL 之間交換訊息佇列效能監視器計數器資料。資料交換共用記憶體中。例如當訊息佇列正在執行本機節點上與虛擬伺服器上之叢集上電腦上的多個服務執行個體所有寫入效能資料在記憶體中相同的位置。這使得效能結果無意義。

解決方案

Hotfix 資訊

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

此 Hotfix 的英文版具有檔案屬性 (或更新) 中如下表所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
   

   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   05-Sep-2003  18:46  5.0.0.778         281,360  Mq1repl.dll      
   17-Jun-2003  15:33  5.0.0.778          14,096  Mq1sync.exe      
   28-Aug-2003  16:00  5.0.0.783          76,144  Mqac.sys
   05-Sep-2003  18:46  5.0.0.783         217,360  Mqads.dll        
   30-Oct-2002  14:43  5.0.0.761          25,360  Mqbkup.exe       
   05-Sep-2003  18:46  5.0.0.778          76,560  Mqdscli.dll      
   05-Sep-2003  18:46  5.0.0.773          42,256  Mqdssrv.dll      
   21-Oct-2002  18:31  5.0.0.759          98,064  Mqmig.exe        
   05-Sep-2003  18:46  5.0.0.759         265,488  Mqmigrat.dll     
   05-Sep-2003  18:46  5.0.0.740         222,480  Mqoa.dll         
   05-Sep-2003  18:46  5.0.0.784          10,000  Mqperf.dll       
   05-Sep-2003  18:46  5.0.0.783         431,888  Mqqm.dll         
   05-Sep-2003  18:46  5.0.0.778         102,672  Mqrt.dll         
   05-Sep-2003  18:46  5.0.0.776          70,928  Mqsec.dll        
   05-Sep-2003  18:46  5.0.0.783         400,656  Mqsnap.dll       
   05-Sep-2003  18:46  5.0.0.762          23,824  Mqupgrd.dll      
   05-Sep-2003  18:46  5.0.0.782         110,864  Mqutil.dll       
   05-Sep-2003  18:46  5.0.0.748          64,784  Msmq.cpl

				

解決方案

服務套件資訊

如果要解決這個問題,取得最新的 Service Pack 的 Windows Server 2003。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
889100如何取得最新的 Service Pack 的 Windows Server 2003

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

警告 如果您未正確使用登錄編輯程式可能會導致嚴重的問題,可能必須重新安裝作業系統。Microsoft 不保證您可以解決因不當使用 「 登錄編輯器 」 的問題。使用 「 登錄編輯程式 」,請自行負擔相關的風險。

此 Hotfix 有重要的限制。套用此 Hotfix 之後您就可以不會再檢視遠端電腦從叢集佇列的效能監視器計數器。這包括本機叢集節點。在 Windows 2000 服務套件 4 (SP4) 和 Windows Server 2003 中,這項限制也存在。

這項限制的基礎的原因是這個 Hotfix 允許不同的執行個體的訊息佇列效能資料儲存在記憶體中的個別空格。每個記憶體空間會標示其對應的執行個體的訊息佇列的電腦名稱。這通常是電腦名稱除外叢集中。一個叢集名稱是虛擬叢集服務的網路名稱。 [訊息佇列效能監視 DLL,Mqperf.dll,查詢本機電腦的名稱,然後再使用來決定要讀取效能資料集的 [本機電腦的名稱。

這一定正常運作時的應用程式存取位置執行應用程式,電腦的計數器時該電腦是否獨立的電腦、 叢集節點電腦或虛擬的叢集服務電腦。在這種情況下 Mqperf.dll 是直接由應用程式載入。因此,當 Mqperf.dll 查詢名稱的本機電腦,Mqperf.dll 接收回正確的名稱。

當您嘗試存取遠端電腦的計數器時,只會發生問題。在這種情況下 Mqperf.dll 載入由遠端登錄服務。遠端登錄服務運作方式與預期在獨立電腦上,但遠端登錄服務並不是叢集感知。因此,在叢集節點上遠端登錄服務一律執行於本機。在這種情況下當 Mqperf.dll 查詢名稱的本機電腦遠端登錄服務會永遠接收本機叢集節點的名稱及不任何其中虛擬叢集服務的名稱。因此,您可以正確地檢視效能監視器計數器為從遠端電腦本機叢集節點。但是,您無法檢視這些節點執行的虛擬叢集服務的計數器。甚至當您指定虛擬的叢集服務名稱,當您開啟計數器時,就會發生這個問題。 就訊息佇列是而言,本機叢集節點都視為遠端虛擬叢集服務。 因此,您甚至不能檢視從叢集中的本機節點叢集的計數器。

有這個問題的三個可能的解決方法:
  • 執行應用程式存取效能監視器計數器的叢集內容中。會在應用程式在本機上執行虛擬叢集服務。比方說您可以開啟叢集的命令提示字元,然後在命令提示字元中執行應用程式。

    取得更多資訊有關如何設定叢集的命令提示字元資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
    256975如何安裝及設定 [Windows 2000 叢集上的 [訊息佇列
  • 使用訊息佇列本機系統管理員 API 來開發自訂的應用程式,監視虛擬叢集伺服器上的佇列。

    取得更多資訊有關本機系統管理員 API 按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
    242471MSMQ 本機系統管理員 API
  • 您可以新增登錄機碼,以監視一個叢集執行個體的訊息佇列。您可以如此本機或遠端方式做,請使用下列的登錄機碼:

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\NetNameForPerfCounters
    資料型別: 字串
    虛擬叢集伺服器,來監視以大寫的字元值: 網路名稱。

    新增這個登錄機碼的變更生效後,您必須重新啟動訊息佇列服務。

    附註如果您新增這個登錄機碼,效能監視器計數器會監視之訊息佇列指定執行個體。是如此無論何種電腦存取計數器。您不能監視計數器本機節點或的訊息佇列,甚至從那些電腦本機執行的應用程式其他叢集例項。如果您還原到預設的行為,您可以存取本機,叢集的計數器,並在本機電腦或遠端電腦上,您可以存取本機節點計數器。若要還原為預設行為,刪除登錄機碼。然後重新啟動訊息佇列服務。

屬性

文章編號: 267316 - 上次校閱: 2014年2月24日 - 版次: 10.0
這篇文章中的資訊適用於:
  • Microsoft Message Queuing 3.0
  • Microsoft Message Queuing 2.0
關鍵字:?
kbnosurvey kbarchive kbmt kbautohotfix kbproductlink kbhotfixserver kbqfe kbwinserv2003presp1fix kbwin2ksp4fix kbbug kbfix kbwin2000presp4fix KB267316 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:267316
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com