專利名稱:動態分布式工作負載中的事務更新的制作方法
技術領域:
本發明涉及事務處理系統中的動態分布式工作負載的控制,更具體地說,涉及提供對其中事務受事務親和性(affinity)影響的此類工作負載的改進控制。
背景技術:
多年來,用戶應用的動態工作負載管理的概念已在本領域中廣為人知。基本上,它包括基于服務器狀態、適合的路由算法和任何相關親和性數據來確定應從候選服務器集合將個體工作片段分派到何處。候選集合通常通過與用戶應用相關的管理對話定義。路由算法通常基于吞吐量或響應時間。親和性指應用在目標服務器中引用的數據,隨后需要訪問所述目標服務器,因此阻礙了在親和性有效時動態路由工作的能力。
分布應用的優點在于,假如單個服務器出現故障,則只有此服務器上的那些當前正在執行的任務受到影響;其他服務器上的用戶任務不受影響,因此減少了故障對應用可用性的影響。在出現故障的服務器上執行工作的用戶必須手動重新啟動其事務,并且必須將事務路由到另一個(活動)候選服務器以便應用執行。此類解決方案為最終用戶提供增加的應用可用性,盡管個體基礎服務器的可用性可能改變。它們還可以改善吞吐量和應用響應時間,從而跨多個地址空間平滑影響。CICSPlex SM Workload Management (WLM)組件提供了用于 IBM 的CICS Transaction Server的動態工作負載管理系統的一種實施方式。由CICS在處理請求中的適合點處調用此組件以標識請求的目標區域并管理應用親和性。(CICS是IBM Corporation在許多國家/地區注冊的商標)。由于包括在事務處理領域中稱為工作單元(UOW)內的工作部分的影響,可以使動態工作負載分配方案進一步復雜化。事務工作單元的概念對于事務處理領域的技術人員來說是公知的,因此在此不需要進一步說明。本說明書中考慮的實例涉及在目標區域中訪問的IBM的DB2 數據庫記錄和IBM的VSAM記錄,但本領域技術人員將清楚的是,相同的考慮事項適用于使用其他能夠與事務處理系統交互的資源管理系統控制的記錄或其他數據。(DB2是IBM Corporation在許多國家/地區注冊的商標)。當跨多個服務器分配工作單元時,恢復管理器必須記下在工作單元中代表它執行可恢復工作的任何服務器。在成功完成(同步點提交)時使用此信息以在所述服務器中提交這些工作部分,或者如果應用請求此信息、如果任務異常終止(異常結束)或如果區域異常終止(在區域重新啟動時),則回退更改(同步點回滾)。如本領域技術人員公知的,工作單元越分散,所需的處理就越多并且組件不可用的風險也越大。還公知的是,針對工作單元中的同一記錄的多個請求必須在同一服務器區域中,否則將產生死鎖,并且當存在保留的鎖(由任務異常結束或服務器異常結束導致)時,請求此工作單元外部的同一記錄的應用將不能執行。此外,使用聲明的親和性針對工作片段選擇目標區域之后,將綁定親和性并將后續請求路由到此區域,而無論是否已在該目標區域中執行任何可恢復工作。當目標區域拒絕請求時,這對于處理效率尤其不利,從而不必要地降低應用可用性,并且當涉及一系列分布式程序鏈接(DPL)并且該系列中的一個程序異常結束時,將導致不必要的回退。需要解決公知的事務處理系統的這些缺點,其中除了部分地并借助昂貴和潛在容易出錯的應用和系統重新設計之外,無法調解對動態路由的工作請求的事務控制和對工作請求的親和性管理的沖突需求。
發明內容
相應地,本發明在第一方面中提供了一種可與具有多個處理區域的分布式事務處理器一起操作的工作負載管理器,所述工作負載管理器包括事務啟動器區域,其用于啟動事務;事務路由器組件,其用于將所啟動的事務路由到所述多個處理區域中的一個處理區域;親和性控制器組件,其用于限制事務路由操作以維持親和性;所述親和性控制器組件的特征在于包括工作單元親和性組件,所述工作單元親和性組件可在所述多個處理區域中的所述一個處理區域處與資源管理器一起操作,以響應于在所述多個處理區域中的所述一 個處理區域處完成可恢復數據操作而激活親和性。優選地,所述工作單元親和性組件還可操作以響應于在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作的指示,允許所述事務路由器組件將事務重新路由到所述多個處理區域中的一個不同處理區域。優選地,在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作與路由拒絕或異常事務終止關聯。優選地,所述分布式事務處理器包括聯機事務處理系統。優選地,所述分布式事務處理器包括事務型數據庫系統。在第二方面中,提供了一種用于與具有多個處理區域的分布式事務處理器一起操作工作負載管理器的方法,所述方法包括由事務啟動器區域啟動事務;由事務路由器組件將所啟動的事務路由到所述多個處理區域中的一個處理區域;由親和性控制器組件限制事務路由操作以維持親和性;所述方法的特征在于包括在所述多個處理區域中的所述一個處理區域處與資源管理器一起操作工作單元親和性組件,以響應于在所述多個處理區域中的所述一個處理區域處完成可恢復數據操作而激活親和性。所述方法優選地還包括操作所述工作單元親和性組件以響應于在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作的指示而允許將事務重新路由到所述多個處理區域中的一個不同處理區域。優選地,在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作與路由拒絕或異常事務終止關聯。優選地,所述分布式事務處理器包括聯機事務處理系統。優選地,所述分布式事務處理器包括事務型數據庫系統。在第三方面中,提供了一種包括計算機程序代碼的計算機程序,當所述計算機程序代碼被載入計算機系統并在其上執行時,導致所述計算機系統執行根據所述第二方面的方法的所有步驟。
現在僅通過實例的方式參考附圖描述本發明的優選實施例,這些附圖是圖IA示出了根據現有技術的系統的操作;
圖IB示出了根據現有技術的系統的進一步操作;圖2A示出了根據現有技術的系統的更進一步操作;以及圖2B示出了根據本發明的一個優選實施例的系統的操作。
具體實施例方式如在“背景技術”中所述,使用用于親和性管理的公知技術在事務環境中動態路由請求可導致應用死鎖和同步點流的過度分散。出現這種情況的原因是,在親和性管理的現有技術實施例中,在實際發生任何活動(可能修改受親和性需求影響的可恢復資源)之前,必須向系統聲明親和性。 在其最廣泛的應用中,本發明的一個優選實施例提供了工作單元親和性控制組件,其可與事務處理器動態路由邏輯一起操作以解決現有技術的這些缺點。本發明的各優選實施例解決了這些缺點,方式為在UOW與擁有資源的服務器之間提供“臨時”親和性聲明,但直到發生對資源的可恢復修改時才“激活”親和性。因此,在所述優選實施例中,首次執行路由請求(路由選擇(RouteSelect))時,動態路由以提供服務器分配便可用。一旦執行可恢復工作(由恢復管理器記錄-創建親和性(Create Affinity)),后續路由請求將被導向同一服務器(親和性有效(Affinityactive)),直到UOW被提交或回退(銷毀親和性(Destroy affinity))。出于闡述主要思想的目的,以下說明處理此親和性的方式就好像此親和性是根據現有技術的已聲明親和性。如果未在目標區域中執行任何可恢復工作,則可以將具有相同“臨時”親和性的另一個事務動態路由到備選區域以執行其部分處理而無需用戶干預,因為該親和性并不像現有技術中那樣是“固定的”。這將減少常規親和性管理對系統性能的潛在影響(當未在目標處執行任何可恢復工作時,最終用戶通過自動重試路由到備選服務器將感覺到此影響)。在首個動態路由請求(routeSelect)被成功路由時,(在資源管理器中)針對此工作單元記錄此事實。后續路由請求將被導向此區域,直到提交/回退處理,從而防止死鎖。當今典型的實例包括VSAM和DB2記錄鎖。轉到圖1A,示出了根據現有技術的事務處理組件的布置,其中包括第一系統或區域100,其被布置用于接收入站工作請求并具有動態路由組件170,動態路由組件170被布置為將工作路由到另一個系統或區域110、120以便由程序(在圖中名為程序A和程序B的示例性程序)130、140處理。程序130、140可操作以訪問資源,例如包括示例性數據記錄(在圖中名為r5)160的數據資源150。如對本領域技術人員將顯而易見的,入站事務工作請求導致啟動U0W,所述UOW具有由標記為UOW范圍的封閉虛線示出的范圍。在一個示例性流中,入站請求I導致動態路由流2將請求路由到系統或區域130處的程序130(程序A)。在流3,程序A訪問數據資源150處的資源r5160。在流4,系統或區域120處的程序140 (程序B)發生另一個動態路由流。在流5,程序B試圖訪問數據資源150處的資源r5160。因而產生死鎖。開發了如圖IB中示出的親和性管理系統以防止此類事件。現在轉到圖1B,入站請求I導致動態路由流2將請求路由到系統或區域130處的程序130 (程序A)。在流3,程序A訪問數據資源150處的資源r5160。由于存在親和性,因此在流4,強制另一個工作請求調用系統或區域110處的程序130 (程序A)。在流5,程序A訪問數據資源150處的資源r5160。有利地,資源r5160上的鎖是局部鎖,因此不會產生死鎖。但不利的是,親和性限制了系統路由工作的自由,因此降低了系統的處理效率。因而,在本發明的一個優選實施例中,定義了一種新形式的親和性。與任何其他親和性一樣,它被聲明為存在,但它直到事務已執行首個可恢復工作時才生效。以下示例性偽代碼參考CICS和CICSPlex SM產品說明了此過程,但對本領域技術人員將顯而易見的是,本發明可以包含在許多其他事務環境中,所述事務環境例如包括數據庫事務系統和聯機事務處理系統CICSPlex SMSelect (routingType)When (routeSelect)If DeclaredAffinitythenIf AffinityActive thenGetAffinityRouteToTargetElseSelectTargetCreateAffinityRouteToTargetElseSelectTargetRouteToTarget......CreateAffinity:procIf DeclaredAffinity=UOW thenNotifyRMUOWAffinity(Target)....EndCICSRoutinRI fDynami C=YES thenIf UOWAFFINITY thenInvokeRouteStatic(Target)ElseInvokeRouteS electUOffProcessinR
、
CommitComplete:If UOWAffinity thenU0WAFFINITY=falseEnd
如對本領域技術人員將顯而易見的,本發明的各實施例在允許系統使用如下環境時尤其有利在所述環境中,未在沒有用戶干預的情況下通過自動選擇另一個目標區域來執行可恢復工作以響應路由拒絕或故障。在圖2A中,入站請求I導致導向系統或區域110處的程序A 130的動態路由流2。在3處路由請求被拒絕或存在異常終止,并在4處請求失敗。在根據現有技術的系統中,將需要手動重新啟動以重定向路由操作以避免親和性。否則,親和性將導致使用同一(失敗)路由反復重試。相比之下,如圖2B中所示,根據所述優選實施例的系統在3處響應路由拒絕或異常終止,方式為在4處執行測試以判定是否已通過執行可恢復工作而 激活UOW親和性。如果UOW親和性尚未被激活,則系統在5處可自由地將工作路由到系統或區域120處的程序B 140,并且工作的處理可以繼續。以下示例性偽代碼參考CICS和CICSPlex SM產品說明了此過程,但對本領域技術人員將顯而易見的是,本發明可以包含在許多其他事務環境中,所述事務環境例如包括數據庫事務系統和聯機事務處理系統CICSPlex SM RoutingSelect(routingType)When(routeSelect)SelectTargetRouteToTargetWhen routeReject or(routeAbend and No WorkDone)thenSelectTargetRouteToTargetCICSRoutinR:if Abend thenIf recoverable Work then InvokeRouteAbend(No fforkdone=false)Else InvokeRouteAbend(No WorkDone=true)本領域技術人員將容易地理解,上述實施例的各種進一步修改對于本領域技術人員來說是顯而易見的。對本領域技術人員將顯而易見的是,本發明的方法可以適合地包含在包括用于執行所述方法的步驟的邏輯構件的邏輯裝置中,并且此類邏輯構件可以包括硬件組件或固件組件。將理解,上述方法也可以適合地全部或部分以在一個或多個處理器(未示出)上運行的軟件實現,并且所述軟件可以被提供為在諸如磁或光計算機盤之類的任何適合數據載體(也未示出)上承載的計算機程序元素。用于數據傳輸的通道同樣可以包括所有描述的存儲介質以及諸如有線或無線信號介質的信號承載介質。本發明可以適合地體現為與計算機系統一起使用的計算機程序產品。此類實施方式可以包括一系列計算機可讀指令,所述計算機可讀指令或者固定在諸如計算機可讀介質(例如軟盤、CD-ROM、ROM或硬盤)之類的有形介質上,或者可以通過調制解調器或其他接口設備借助有形介質(包括但不限于光或模擬通信線路)或使用無線技術(包括但不限于微波、紅外線或其他傳輸技術)無形地傳輸到計算機系統。所述一系列計算機可讀指令包含本文先前描述的全部或部分功能。本領域技術人員將理解,此類計算機可讀指令可以采用多種編程語言編寫以便與許多計算機架構或操作系統一起使用。此外,此類指令可以使用任何存儲技術(現在或未來的,包括但不限于半導體、磁或光)來存儲,或者使用任何通信技術(現在或未來的,包括但不限于光、紅外線或微波)來傳輸。構想了此類計算機程序產品可以作為具有隨附印刷或電 子文檔的可移動介質(例如,現用軟件)分發,隨計算機系統一起預先加載(例如,在系統ROM或固定磁盤上),或者通過網絡(例如,因特網或萬維網)從服務器或電子公告板分發。
權利要求
1.一種可與具有多個處理區域的分布式事務處理器一起操作的工作負載管理器,所述工作負載管理器包括 事務啟動器區域,其用于啟動事務; 事務路由器組件,其用于將所啟動的事務路由到所述多個處理區域中的一個處理區域; 親和性控制器組件,其用于限制事務路由操作以維持親和性; 所述親和性控制器組件的特征在于包括工作單元親和性組件,所述工作單元親和性組件可在所述多個處理區域中的所述一個處理區域處與資源管理器一起操作,以響應于在所述多個處理區域中的所述一個處理區域處完成可恢復數據操作而激活親和性。
2.如權利要求I中所述的工作負載管理器,所述工作單元親和性組件還可操作以響應于在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作的指示,允許所述事務路由器組件將事務重新路由到所述多個處理區域中的一個不同處理區域。
3.如權利要求2中所述的工作負載管理器,其中在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作與路由拒絕或異常事務終止關聯。
4.如任一上述權利要求中所述的工作負載管理器,其中所述分布式事務處理器包括聯機事務處理系統。
5.如任一上述權利要求中所述的工作負載管理器,其中所述分布式事務處理器包括事務型數據庫系統。
6.一種用于與具有多個處理區域的分布式事務處理器一起操作工作負載管理器的方法,所述方法包括 由事務啟動器區域啟動事務; 由事務路由器組件將所啟動的事務路由到所述多個處理區域中的一個處理區域; 由親和性控制器組件限制事務路由操作以維持親和性; 所述方法的特征在于包括在所述多個處理區域中的所述一個處理區域處與資源管理器一起操作工作單元親和性組件,以響應于在所述多個處理區域中的所述一個處理區域處完成可恢復數據操作而激活親和性。
7.如權利要求6中所述的方法,還包括操作所述工作單元親和性組件以響應于在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作的指示而允許將事務重新路由到所述多個處理區域中的一個不同處理區域。
8.如權利要求7中所述的方法,其中在所述多個處理區域中的所述一個處理區域處沒有完成可恢復數據操作與路由拒絕或異常事務終止關聯。
9.如權利要求6至8中的任一權利要求中所述的方法,其中所述分布式事務處理器包括聯機事務處理系統。
10.如權利要求6至9中的任一權利要求中所述的方法,其中所述分布式事務處理器包括事務型數據庫系統。
11.一種包括計算機程序代碼的計算機程序,當所述計算機程序代碼被載入計算機系統并在其上執行時,導致所述計算機系統執行權利要求6至10中的任一權利要求中所述的方法的所有步驟。
全文摘要
一種可與具有多個處理區域(110、120)的分布式事務處理器一起操作的工作負載管理器,所述工作負載管理器包括事務啟動器區域(100),其用于啟動事務;事務路由器組件(170),其用于將所啟動的事務路由到所述多個處理區域中的一個處理區域;親和性控制器組件,其用于限制事務路由操作以維持親和性;所述親和性控制器組件的特征在于包括工作單元親和性組件,所述工作單元親和性組件可在所述多個處理區域中的所述一個處理區域處與資源管理器一起操作,以響應于在所述多個處理區域中的所述一個處理區域處完成可恢復數據操作而激活親和性。
文檔編號G06F9/46GK102713850SQ201080061080
公開日2012年10月3日 申請日期2010年12月23日 優先權日2010年1月11日
發明者G·伯吉斯, I·米切爾, P·約翰遜 申請人:國際商業機器公司