ibmMQ-第七章

第七章 WebSphere MQ 恢復和重新啓動
目標
1.	瞭解WebSphere MQ的數據日誌。
2.	學習在出現失敗故障後,怎樣恢復消息和WebSphere MQ對象。

7.1 WebSphere MQ的數據日誌
消息傳遞系統確保輸入到系統的消息被髮送到它們的目的地。這意味着它必須提供跟蹤系統中消息和恢復消息的方法(如果系統發生故障)。 

WebSphere MQ 通過記錄隊列管理器(處理消息的接收、傳輸和傳遞)的活動日誌來確保消息不丟失。並提供了三種恢復方式: 
1.	重啓恢復。 
2.	崩潰恢復。 
3.	媒體恢復。 
在所有情況下,恢復是把隊列管理恢復到它停止時的狀態,(除了回滾所有執行中的事務)隊列管理器停止時未提交的任何消息將被刪除。恢復所有永久消息;非持久性消息將被丟失。
WebSphere MQ 把所有由隊列管理器控制的數據的重要更改都記錄到日誌中。 這包括創建和刪除對象(除了通道)、永久消息更新、事務狀態、更改對象屬性以及通道活動。 
7.1.1日誌的概念

WebSphere MQ 日誌包含兩個組件: 
1.	一個或多個日誌文件 
2.	日誌控制文件 
可以在隊列管理器的配置文件中配置日誌文件的大小和個數。在 WebSphere MQ Windows 版中,三個文件都缺省爲 1 MB。在 WebSphere MQ UNIX 系統版中,三個文件都缺省爲 4  MB。 
創建隊列管理器時,您可以指定主日誌文件數和從日誌文件數以及日誌文件的大小。如果不指定數,則使用缺省值。 
在 WebSphere MQ Windows 版中,如果未更改日誌路徑,則日誌文件將存放在 
C:\Program Files\IBM\WebSphere MQ\log\<QMgrName>目錄下;在 WebSphere MQ UNIX 系統版中,如果未更改日誌路徑,則日誌文件將存放在/var/mqm/log/QmName目錄下。
WebSphere MQ 在創建隊列管理器時會自動創建所有的主日誌文件,如果主日誌用完了,則會動態地創建次日誌文件。當WebSphere MQ不需要從日誌空間時,也會動態地刪除它們。 
7.1.2日誌控制文件
日誌控制文件包含監控日誌文件使用狀況的信息,如它們的大小和位置、下一個可用日誌文件的名稱等等。 

注: 
確保隊列管理器啓動時創建的日誌足夠大,使它能夠滿足應用程序處理的需要。
7.1.3日誌類型
在 WebSphere MQ中,系統所需的日誌文件數取決於日誌文件大小以及接收到的消息數和消息長度。
日誌記錄的形式有兩種:循環日誌和線性日誌。
循環日誌記錄
如果您的WebSphere MQ系統恢復使用“重啓恢復”就可以滿足要求,則可使用循環日誌,當系統停止時,正在處理的事務通過日誌進行回滾操作。 

循環日誌是把所有重啓數據都記錄在日誌文件環中。首先使用第一個日誌文件,然後下一個,依次類推,直到所有文件都滿爲止。然後它回到環中的第一個文件又重新開始。只要產品在使用中,就會一直循環下去,並且具有永遠不會用完日誌文件的優點。 
線性日誌記錄
如果您的WebSphere MQ系統恢復需要使用“重啓恢復”和“媒體恢復” (通過重播日誌內容重新創建已丟失或已損壞的數據)才能滿足要求,則使用線性日誌。 
線性日誌記錄在連續文件中保留日誌數據。它不重用空間。由於磁盤空間是有限的,您可能需要考慮歸檔方式,來管理日誌的磁盤空間,必要時重用或擴展現有的空間。 
使用線性日誌,則日誌文件數可能非常大,這取決於您的消息流和您的隊列管理器壽命。但是,有許多文件是活動的。活動文件包含重新啓動隊列管理器所需的日誌信息。活動日誌文件數通常與配置文件中定義的主日誌文件數相同。
 
WebSphere MQ 檢查點是一組日誌記錄,包含重新啓動隊列管理器成功的信息。重新啓動隊列管理器不需要的以前的任何記錄信息,稱爲非活動的。
 
您必須確定何時不再需要非活動的日誌文件。則可以壓縮或者刪除它們。
7.1.4計算日誌的大小
確定隊列管理器應該使用循環還是線性日誌後,您需要估計隊列管理器需要的日誌大小。日誌大小是由以下日誌配置參數確定的: 

LogFilePages 
每個主和次日誌文件的大小是以4K爲單位。
LogPrimaryFiles 
預分配的主日誌文件數 
LogSecondaryFiles 
主日誌用完後,可創建的次日誌文件數。

下表顯示了隊列管理器各種操作所消耗的日誌數據量。大多數隊列管理器操作只需要最少量的日誌空間。 但是,當永久消息放入隊列時,所有消息數據必須寫入日誌,以便它能夠恢復此消息。通常,日誌大小取決於隊列管理器需要處理的永久消息的數量和大小。 
表 日誌開銷大小(參考值)
操作 	大小 
放入永久消息 	750 字節 + 消息長度 
如果是大消息,則分隔成 15700 字節的段,每個段都會有 300 字節的開銷。 
取消息 	260 字節 
同步點,提交 	750 字節 
同步點,回滾 	1000 字節 + 12 字節
創建對象 	1500 字節 
刪除對象 	300 字節 
修改屬性 	1024 字節 
記錄媒體鏡象 	800 字節 + 鏡象 
鏡象分隔成 260 000 字節的段,每個段有 300 字節開銷。 
檢查點 	750 字節 + 200 字節(每個活動的工作單元) 

注: 
1.	每次啓動隊列管理器時,您可以修改主和從日誌文件數。 
2.	日誌文件大小隻能在創建隊列管理器前確定,以後不能修改。 
3.	主日誌文件的數量和日誌文件大小決定了隊列管理器創建時預分配的日誌空間,這些空間應該是由少量的大文件組成,而不是由大量的小文件組成的。 
4.	主日誌文件和次日誌文件的總數不能超過63個文件,這是針對循環日誌而言, 線性日誌則不受限制。
5.	當使用循環日誌記錄時,隊列管理器重用主日誌空間。主日誌文件已滿時,隊列管理器將分配一個次日誌文件(最多到限定值)。 

7.2 使用數據日誌進行恢復
下列幾種情況可能會損壞您的數據:
•	數據對象被損壞 
•	系統掉電 
•	通信故障 
但WebSphere MQ可以幫助您恢復被破壞的數據。本節將描述如何使用日誌進行數據恢復。 
7.2.1從掉電或通信故障中恢復
WebSphere MQ 可以從通信故障和掉電中進行恢復。另外,它有時還可以從其它類型的問題中進行恢復,例如,文件被意外刪除。 在通信故障情況下,消息一直保留在隊列中直到被接收應用程序取出。如果消息正在傳輸中,則消息將一直被保留在傳輸隊列中直到被成功傳輸。要從通信故障中恢復,通常您可以重新啓動使用失敗的鏈接的通道。 
如果您掉電了,則重新啓動隊列管理器時,WebSphere MQ 把隊列恢復到失敗時的已提交的狀態。確保不丟失持久消息。但非持久性消息被丟棄;當WebSphere MQ 停止時會丟棄它們。 
7.2.2恢復受損對象
有些情況可以使 WebSphere MQ 對象成爲不可用的,例如,由於無意中的損壞。您不得不恢復整個系統或部分系統。恢復操作與發現損壞的時間、日誌是否支持媒體恢復和被損壞的對象有關。 
7.2.2.3媒體恢復
媒體恢復是從線性日誌中的記錄信息重新創建對象。例如,如果無意中刪除了一個對象文件,則媒體恢復可以重新創建它。用於對象媒體恢復的日誌信息被叫做媒體映象。媒體映象可以通過使用rcdmqimg 命令手工記錄或自動記錄。 媒體映象中包含對象映象的日誌記錄序列。 
重新創建對象所必需的第一個日誌記錄叫作媒體恢復記錄;它是對象的最後一個媒體映象的開始。每個對象的媒體恢復記錄是檢查點期間記錄的信息之一。 
從媒體映象重新創建對象時,有必要重播任何描述自採用最後一個映象以來對對象執行更新的日誌記錄。 
例如,考慮在持久消息放入到隊列前,採用具有隊列對象映象的本地隊列。爲了重新創建最新的對象映象,有必要重播記錄消息放入隊列的日誌條目,並重播該映象本身。 
創建對象時,已編寫的日誌記錄包含完全重新創建此對象所需的足夠的信息。這些記錄組成對象的第一個媒體映象。接着,每次關機時,隊列管理器記錄媒體映象自動執行如下操作: 
•	所有進程對象和隊列的映象不是本地的。 
•	空的本地隊列的映象 
還可以使用 rcdmqimg 命令手工記錄媒體映象,在rcdmqimg(記錄媒體映象)中對它進行了描述。此命令編寫 WebSphere MQ 對象的媒體映象。一旦這樣做了,僅保持媒體映象的日誌和此時後創建的所有日誌需要重新創建受損的對象。這樣做的好處取決於某些因素,如可用的空閒存儲器量和創建日誌文件時的速度。 
7.2.2.4恢復媒體映象
如果發現某些對象被損壞,則 WebSphere MQ 自動從它們的媒體映象中進行恢復。特別地,這適用於正常隊列管理器啓動期間所找到的受損對象。如果隊列管理器最後一次關機時有任何未完成的事務,則也會自動恢復任何受影響的隊列,以便完成啓動操作。 
您必須使用 rcrmqobj 命令手工恢復其它對象,它會重播日誌中的記錄以重新創建 WebSphere MQ 對象。從日誌中找到的最新映象中重新創建此對象,並帶有保存此映象和發出重新創建命令期間所有可用的日誌事件。如果 WebSphere MQ 對象受損,則僅可執行的有效操作是使用此方法刪除或重新創建它。 不能用此方法恢復非持久性消息。 
請參閱rcrmqobj(重新創建對象)以獲得 rcrmqobj 命令的進一步詳細信息。 
包含媒體恢復記錄的日誌文件和所有後繼的日誌文件,在嘗試對象的媒體恢復時必須在日誌文件中可用。如果找不到必需的文件,發出操作程序消息 AMQ6767,並且媒體恢復操作失敗。如果您不採用要重新創建的對象的常規媒體映象,則可能沒有足夠的磁盤空間來保持重新創建對象所必需的所有日誌文件。 
7.2.2.5啓動期間恢復受損的對象
如果隊列管理器啓動期間發現受損的對象,則所使用的操作取決於對象類型和隊列管理器是否配置成支持媒體恢復。 
如果隊列管理器對象受損,則該隊列管理器無法啓動,除非它可以恢復該對象。如果隊列管理器配置成使用線性日誌,並支持媒體恢復,則 WebSphere MQ 自動嘗試從其媒體映象中重新創建此隊列管理器對象。如果所選的日誌方法不支持媒體恢復,則可以恢復隊列管理器的備份或刪除該隊列管理器。 
如果隊列管理器停止時任何事務都是活動的,則包含持久的、未提交的消息(在這些事務中放入或取出)的本地隊列還需要成功啓動該隊列管理器。如果發現這些本地隊列中的任何一個受損,並且隊列管理器支持媒體支持,它自動嘗試從其媒體映象中重新創建它們。如果無法恢復任何隊列,則 WebSphere MQ 無法啓動。 
如果啓動不支持媒體恢復的隊列管理器的處理期間,發現任何包含未提交的消息的受損本地隊列,則這些隊列標記爲受損對象,並且忽略它們上面的未提交的消息。這是因爲不可能執行這樣的隊列管理器上的受損對象的媒體恢復,並且僅留下的操作是刪除它們。發出 AMQ7472 消息報告任何損壞。 
7.2.2.6在其它時間恢復受損的對象
僅在啓動期間對象的媒體恢復是自動的。在其它時間,檢測到受損對象時,發出操作程序消息 AMQ7472,並且使用此對象的大多數操作失敗。如果啓動隊列管理器後的任何時間該隊列管理器對象受損,則該隊列管理器執行搶先關機。隊列管理器受損後您可以刪除它,或者如果該隊列管理器使用線性日誌,則嘗試使用 rcrmqobj 命令(請參閱rcrmqobj(重新創建對象)以獲得進一步的詳細信息)從其媒體映象中恢復它。 

7.3保護 WebSphere MQ 日誌文件
WebSphere MQ 隊列管理器運行時不要手工除去這些日誌文件。如果用戶無意刪除了隊列管理器需要重新啓動的那些日誌文件,則 WebSphere MQ 不發出任何出錯消息,並且繼續處理包含持久消息的數據。隊列管理器正常關機,但是無法重新啓動。則消息的媒體恢復就不可能了。 
具有除去活動隊列管理器使用的日誌權限的用戶也具有刪除其它重要隊列管理器資源(如隊列文件、對象目錄和 WebSphere MQ 可執行文件)的權限。因此,他們能夠以針對 WebSphere MQ 無法保護其本身的途徑損壞正在運行的或處於睡眠狀態的隊列管理器(可能是由於缺乏經驗所致)。 所以授予超級用戶或 mqm 權限時要謹慎。 
7.4備份和恢復 WebSphere MQ
您可能要定期備份您的隊列管理器數據以保護由硬件故障導致的可能的破壞。但是,由於消息數據通常是短期的,您可以選擇不進行備份。 
7.4.1備份 WebSphere MQ
要備份隊列管理器的數據: 
1.	確保隊列管理器不在運行。如果您嘗試備份正在運行的隊列管理器,備份可能會不一致,因爲文件複製時正在進行更新。 
如果可能,以正常方法停止您的隊列管理器。嘗試執行 endmqm -w(等待關機);僅當其失敗時,使用 endmqm -i(立即關機)。 
2.	使用配置文件中的信息,查找隊列管理器放置其數據和日誌文件的目錄。
3.	備份所有隊列管理器的數據和日誌文件目錄,包括所有子目錄。 
確保沒有丟失任何文件,特別是日誌控制文件和配置文件。某些目錄可以爲空,但是以後恢復備份時全部需要,因此也要保存它們。 
4.	保留文件的權限。對於 WebSphere MQ UNIX 系統版,可以用 tar 命令完成。 
7.4.2恢復 WebSphere MQ
要恢復隊列管理器的數據備份: 
1.	確保隊列管理器不在運行。 
2.	查找隊列管理器放置其數據和日誌文件的目錄。此信息保持在配置文件中。 
3.	清除您要放置備份數據的目錄。 
4.	把備份的隊列管理器數據和日誌文件複製到正確的位置。 
檢查結果目錄結構,確保您有所有必需的目錄。 
確保您有日誌控制文件和日誌文件。還請檢查 WebSphere MQ 和隊列管理器配置文件是是否一致,以便 WebSphere MQ 可以在正確的位置查看恢復的數據。 
如果正確備份和恢復了數據,則將啓動隊列管理器。 
注: 
即使隊列管理器數據和日誌文件保持在不同的目錄,但必須是在相同時間備份的。如果隊列管理器數據和日誌文件的備份時間不同,則隊列管理器無效,並且可能會不啓動。如果啓動,您的數據很可能被損壞。 
7.5恢復方案
本節針對許多可能出現的問題並講解如何進行恢復。 
7.5.1磁盤故障
您可能會遇到存放隊列管理器數據或/和日誌的磁盤出故障、數據被丟失或數據被破壞的情況。
在所有情況下,首先檢查任何受損的目錄結構,若有必要,修復它。如果您丟失隊列管理器數據,則隊列管理器目錄結構可能已受損。如果這樣,重新啓動該隊列管理器前手工重新創建該目錄樹。 
檢查受損的結構後,您可以做許多事,這取決於您所使用的日誌類型。 
	目錄結構的主要受損處或日誌的任何受損處在哪裏,全部除去舊文件返回到 QMgrName 級別,包括配置文件、日誌和隊列管理器目錄,恢復最近的備份並重新啓動隊列管理器。 
	對於具有媒體恢復的線性日誌記錄,確保該目錄結構是完整的,並且重新啓動該隊列管理器。如果隊列管理器不重新啓動,則恢復備份。如果隊列管理器重新啓動,則使用 MQSC 命令(如 DISPLAY QUEUE)檢查是否已損壞了任何其它對象。使用 rcrmqobj 命令恢復您找到的損壞。例如: 
rcrmqobj -m QMgrName -t all *
其中 QMgrName 是要恢復的隊列管理器。-t all * 表明要恢復任何類型的所有對象(除了通道外)。如果只有一個或兩個對象報告受損了,則您可以在此處按名稱和類型指定那些對象。 
	對於具有媒體恢復和未受損的日誌的線性日誌記錄,您可以恢復隊列管理器數據的備份,保留現有日誌文件和未更改的日誌控制文件。啓動隊列管理器會應用日誌的更改,把隊列管理器置回故障發生時的狀態。 
該方法基於兩個因素: 
1.	您必須把檢查點文件恢復爲隊列管理器數據部分。此文件包含一些信息,這些信息確定必須應用日誌中的多少數據才能給出一致的隊列管理器。 
2.	備份時,您必須具有啓動隊列管理器所必需的最舊的日誌文件和此日誌文件目錄中所有的後繼日誌文件。 
如果沒有,則恢復隊列管理器和日誌的備份,它們是在同一時間備份的。 
	對於循環日誌記錄,從您具有的最近備份中恢復隊列管理器。一旦您恢復了備份,重新啓動隊列管理器並如上所述檢查受損的對象。但是,由於您沒有媒體恢復,因此,必須找到重新創建受損對象的其它方法。 
7.5.2受損的隊列管理器對象
如果正常操作期間報告了隊列管理器對象受損,則該隊列管理器執行搶先關機。根據您使用的日誌記錄類型,這些情況下有兩種恢復方法: 
	僅對於線性日誌記錄,手工刪除包含受損對象的文件,並重新啓動該隊列管理器。(您可以使用 dspmqfls 命令確定受損對象的真實的文件系統名。受損對象的媒體恢復是自動的。 
	對於循環或線性日誌記錄,恢復隊列管理器數據和日誌的最近備份,並重新啓動此隊列管理器。 
7.5.3受損的單個對象
如果正常操作期間報告單個對象受損: 
•	對於線性記錄日誌,從其媒體映象中重新創建此對象。 
•	對於循環日誌記錄,不支持重新創建單個對象。 
7.5.4自動媒體恢復故障
如果帶有線性日誌的隊列管理器啓動所必需的本地隊列受損了,並且自動媒體恢復失敗,則恢復該隊列管理器數據和日誌的最近備份並重新啓動該隊列管理器。 
7.6使用 dmpmqlog 命令轉儲日誌
使用 dmpmqlog 命令轉儲隊列管理器日誌的內容。缺省情況下,轉儲所有活動的日誌記錄,即,該命令從日誌頭開始轉儲(通常從最近完成的檢查點開始)。
通常僅當隊列管理器不運行時才能轉儲日誌。由於隊列管理器在停止時會採用檢查點,因此日誌的活動部分通常包含少量的日誌記錄。然而,您可以設置以下選項之一使用 dmpmqlog 命令轉儲更多日誌記錄: 
•	從日誌基開始轉儲。這些日誌基是日誌文件中包含日誌頭的第一個日誌記錄。該情況中的其它轉儲數據量取決於日誌頭在日誌文件中的位置。如果它靠近日誌文件的開頭,則僅轉儲小量的其它數據量。如果頭在日誌文件的結束部分,則轉儲更多重要的數據。 
•	指定轉儲的開始位置作爲個別的日誌記錄。每個日誌記錄是由日誌序列號(LSN)標識的。在循環日誌記錄情況中,開始的日誌記錄不能在日誌基之前;此限制不適用於線性日誌。您可能需要在運行命令之前恢復非活動的日誌文件。必須指定一個有效的 LSN,從前一個 dmpmqlog 輸出中獲取它以作爲開始位置。 
例如,使用線性日誌記錄時,您可以從最近的 dmpmqlog 輸出指定 nextlsn。nextlsn 在日誌文件頭中出現,並表明要編寫的下一個日誌記錄的 LSN。使用它作爲開始位置,對所有自最近一次轉儲日誌以來所編寫的所有日誌記錄進行格式化。 
•	僅對於線性日誌,您可以說明 dmpmqlog 從任何給定日誌文件範圍開始格式化日誌記錄。在這種情況下,dmpmqlog 期望在與活動日誌相同的目錄中查找此日誌文件和每個後繼的日誌文件。此選項不適用於循環日誌,其中 dmpmqlog 無法訪問日誌基之前的日誌記錄。 
dmpmqlog 命令的輸出是日誌文件頭和一系列已格式化的日誌記錄。隊列管理器使用幾個日誌記錄記錄對其數據的更改。 
某些已格式化的信息僅用於內部使用。以下表包括最有用的日誌記錄: 
日誌文件頭 
每個日誌有單個日誌文件頭,它總是由 dmpmqlog 命令格式化的第一項。它包含以下字段: 
logactive 	主日誌範圍數。 
loginactive 	次日誌範圍數。
logsize 	每個範圍有 4 KB 頁面數。 
baselsn 	包含日誌頭的日誌範圍中的第一個 LSN。 
nextlsn 	要編寫的下一個日誌記錄的 LSN。 
headlsn 	日誌頭部分的日誌記錄的 LSN。 
tailsn 	LSN 標識日誌的末尾位置。 
hflag1 	日誌是 CIRCULAR 還是 LOG RETAIN(線性)。 
HeadExtentID 	包含日誌頭的日誌範圍。 
日誌記錄頭 
日誌中的每個日誌記錄有一個包含以下信息的固定頭: 
LSN 	日誌序列號。 
LogRecdType 	日誌記錄的類型。 
XTranid 	與該日誌記錄相關聯的事務標識(如果有的話)。 
MQI 的 TranType 表明僅 WebSphere MQ 事務。XA 的 TranType 涉及其它資源管理器。同一個工作單元中所涉及的更新具有相同的 XTranid。 
QueueName 	與該日誌記錄相關聯的隊列(如果有的話)。 
Qid 	隊列的唯一內部標識。 
PrevLSN 	同一個事務中的前一個日誌記錄的 LSN(如果有的話)。 


啓動隊列管理器 
隊列管理器已啓動的日誌。 
StartDate 	隊列管理器已啓動的日誌。 
StartTime 	隊列管理器已啓動的時間。 
停止隊列管理器 
隊列管理器已停止的日誌。 
StopDate 	隊列管理器停止日誌。 
StopTime 	隊列管理器停止時間。 
ForceFlag 	使用的關機類型。 
啓動檢查點 
這表示隊列管理器檢查點的啓動。 
結束檢查點 
這表示隊列管理器檢查點的結束。 
ChkPtLSN 	啓動此檢查點的日誌記錄的 LSN。 
放入消息 
持久消息放入隊列的日誌。如果消息放到同步點下,則日誌記錄頭包含非空的 XTranid。其餘記錄包含: 
SpcIndex 	隊列上的消息標識。它可用於與相應的 MQGET(用於從隊列中取出此消息)相匹配。在這種情況下,可以發現後繼的 Get Message 日誌記錄包含相同的 QueueName 和 SpcIndex。在此點上,可以爲到該隊列的後繼放入消息重用 SpcIndex 標識。 
Data 	包含在十六進制轉儲中的日誌記錄的數據是各種內部數據,後跟消息描述符(eyecatcher MD)和消息數據本身。 
放入部分 
對於單個日誌記錄來說太大的持久消息記錄爲單個放入消息記錄,後跟多個放入部分日誌記錄。 
Data 	在前一個日誌記錄關閉處繼續消息數據。 
取出消息 
僅記錄取出的持久消息。如果在同步點下取出消息,則日誌記錄頭包含非空的 XTranid。其餘記錄包含: 
SpcIndex 	標識從隊列中檢索的消息。包含相同的 QueueName 和 SpcIndex 的最近的放入消息日誌記錄標識已檢索的消息。 
QPriority 	已從隊列中檢索的消息的優先級。 
啓動事務 
表明新事務的啓動。MQI 的 TranType 表明僅 WebSphere MQ 事務。XA 的 TranType 表明涉及其它資源管理器的事務類型。由該事務所做的所有更新將具有相同的 XTranid。 
準備事務 
表明隊列管理器已準備好提交與指定的 XTranid 相關聯的更新。此日誌記錄作爲涉及其它資源管理器的兩階段提交部分而編寫。 
提交事務 
表明隊列管理器已由事務提交了所有更新。 
回滾事務 
這表示隊列管理器的目的是回滾事務。 
結束事務 
這表示已回滾的事務結束。 
事務表 
此記錄是在同步期間編寫的。它記錄已進行持久更新的每個事務的狀態。對於每個事務,記錄以下信息: 
XTranid 	事務標識。 
FirstLSN 	與該事務相關聯的第一個日誌記錄的 LSN。 
LastLSN 	與該事務相關聯的最後一個日誌記錄的 LSN。 
事務參與者 
此日誌記錄由隊列管理器的 XA 事務管理器組件編寫。它記錄參與事務的外部資源管理器。對於每個參與者,記錄以下信息: 
RMName 	資源管理器名。 
RMID 	資源管理器標識。它還記錄到後繼的已準備的事務日誌記錄中,該日誌記錄記錄了資源管理器所參與的全局事務。 
SwitchFile 	此資源管理器的切換裝入文件。 
XAOpenString 	此資源管理器的 XA 打開字符串。 
XACloseString 	此資源管理器的 XA 關閉字符串。 
已準備的事務 
此日誌記錄由隊列管理器的 XA 事務管理器組件編寫。它表明已成功準備好指定的全局事務。將說明每個參與資源管理器的事務進行提交。日誌記錄中記錄每個已準備的資源管理器的 RMID。如果隊列管理器本身參與到事務中,則將顯示帶有 O 的 RMID 的參與者條目。 
事務忘記 
此日誌記錄由隊列管理器的 XA 事務管理器組件編寫。當提交決定已發送到每個參與者時,它跟在已準備的事務日誌記錄後面。 
清除隊列 
它記錄已清除隊列上的所有消息這一事實,例如,使用 MQSC 命令 CLEAR QUEUE。 
隊列屬性 
它記錄隊列屬性的初始化或更改。 
創建對象 
它記錄 WebSphere MQ 對象的創建。 
ObjName 	已創建的對象的名稱。 
UserId 	執行此創建的用戶標識。 
刪除對象 
它記錄 WebSphere MQ 對象的刪除。 
ObjName 	已刪除的對象的名稱。 


7.7本章小結
記錄數據日誌是隊列管理器的一個重要部分。數據日誌是順序地記錄在日誌文件中,隊列管理器的配置文件中說明了日誌參數,缺省的日誌參數則是在WebSphere MQ配置文件中說明的。數據日誌參數包括主日誌和從日誌數、日誌類型和日誌目錄的路徑。確保有足夠的日誌空間,否則如果磁盤空間不足,將導致對隊列管理器的操作失敗。
	主日誌文件是在隊列管理器創建時分配的,並且隨後它的個數保持不變。從日誌僅在主日誌用完以後纔開始分配。
	

7.8本章練習
1.下列那些隊列管理器有記錄數據日誌的功能?
(1)	WebSphere MQ for MVS/ESA
(2)	WebSphere MQ for OS/2 Warp
(3)	WebSphere MQ for HP-UX
(4)	WebSphere MQ for AS/400
(5)	WebSphere MQ for AIX
答案:(1)(2)(3)(4)(5)
2,	在AIX平臺上,WebSphere MQ支持的兩種類型是:
(1)	journaling
(2)	linear
(3)	circular
(4)	checkpointing
答案:(2)(3)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章