共用方式為


COM+ 補償 Resource Manager 概念

您可以使用 COM+ 補償資源管理員 (CRM) 輕鬆地快速地整合應用程式資源與 Microsoft 分散式交易協調器 (DTC) 交易。 您的應用程式資源可以投票決定交易的結果,並可接收其結果的最終通知。 產生永久性記錄檔,讓您的應用程式資源可以寫入失敗的記錄,而CRM會在應用程式重新啟動時復原此記錄檔。

CRM 包含下列兩個元件:

  • CRM 背景工作角色。 此元件會執行特定CRM的主要工作,並實作它需要執行之工作的特定介面。 CRM 基礎結構提供CRM背景工作角色的介面,讓CRM背景工作角色可以將記錄寫入磁碟上的永久性記錄檔。 CRM 背景工作角色必須將記錄寫入記錄至記錄檔,並使其持久,才能執行其工作,如此一來,如果當機發生,可能會正確復原。 CRM 背景工作角色一律需要交易。
  • CRM 補償器。 此元件是由CRM基礎結構在交易完成時所建立。 它會實作定義的介面,讓CRM基礎結構可以傳遞交易完成的通知,以及先前由CRM背景工作角色撰寫的記錄檔記錄。

COM+ CRM 提供交易通知的不可部分完成性,以及CRM記錄的持久性,但不會提供資源的隔離。 在多線程環境中,CRM 開發人員有責任確保由多個CRM背景工作角色或外部應用程式存取資源,會在交易中串行化。

交易通過準備階段之後,CRM 補償器和CRM背景工作角色可以同時執行。 當先前交易的CRM補償器仍在處理上一筆交易時,新交易的CRM背景工作元件可能會變成作用中。

在復原 CRM 伺服器應用程式之前失敗期間,中斷的交易應該視為作用中且未完成。 在復原 CRM 伺服器進程之前,外部進程不應該存取此特定交易所變更的資源。

CRM 會定義基本 CRM 函式的三種介面類型:

  • ICrmLogControl 會在 CRM Clerk 上實作,並由 CRM 背景工作角色用來將記錄檔記錄寫入記錄檔。 它也可以由CRM補償器使用。
  • ICrmCompensator 和 ICrmCompensatorVariants 會在 CRM Compensator 上實作。 這些介面可用來將交易結果通知及其相關聯的記錄檔記錄傳遞給CRM Compensator。 一般而言,CRM Compensator 只會實作其中一個介面,視它是否需要非結構化或結構化記錄檔記錄而定。 結構化記錄檔記錄 是建置為 Variants 集合,且通常供 Microsoft Visual Basic 使用。 非結構化記錄檔記錄 只是位元組的緩衝區,通常供 Microsoft Visual C++ 使用。 CRM Compensator 可以實作這兩個補償器介面;不過,一次只能使用一個來傳遞記錄檔記錄。
  • COM+ CRM 監視介面可用來監視特定伺服器應用程式內的 CPM。 如需監視介面的詳細資訊,請參閱 COM+ CRM 監視介面

本節中的下列主題提供 COM+ CRM 服務的詳細數據:

COM+ 補償 Resource Manager 工作