新聞中心
在大型企業(yè)級(jí)應(yīng)用系統(tǒng)中,數(shù)據(jù)庫事務(wù)處理是至關(guān)重要的一部分。Tuxedo是一個(gè)面向分布式應(yīng)用的事務(wù)處理系統(tǒng),它提供了一個(gè)高效的數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)方案。本文將介紹,包括分布式事務(wù)管理、XA協(xié)議、事務(wù)恢復(fù)和分布式鎖等。

10多年的景東網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整景東建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“景東網(wǎng)站設(shè)計(jì)”,“景東網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
分布式事務(wù)管理
在分布式環(huán)境下,事務(wù)處理變得更加復(fù)雜。Tuxedo通過分布式事務(wù)管理器(DTM)來協(xié)調(diào)不同節(jié)點(diǎn)上的事務(wù)處理,確保數(shù)據(jù)的一致性和完整性。DTM負(fù)責(zé):
1. 事務(wù)發(fā)起:當(dāng)一個(gè)應(yīng)用程序發(fā)起一個(gè)事務(wù)請(qǐng)求時(shí),DTM會(huì)為該事務(wù)創(chuàng)建一個(gè)唯一的事務(wù)ID,并將該ID傳遞給所有涉及的節(jié)點(diǎn)。
2. 事務(wù)協(xié)調(diào):當(dāng)一個(gè)事務(wù)涉及多個(gè)節(jié)點(diǎn)時(shí),DTM協(xié)調(diào)這些節(jié)點(diǎn)之間的事務(wù)處理。它能夠處理各種異常情況(如節(jié)點(diǎn)故障)并確保事務(wù)的完整性。
3. 事務(wù)提交和回滾:當(dāng)所有節(jié)點(diǎn)上的事務(wù)操作都成功完成時(shí),DTM會(huì)提交該事務(wù)。否則,它會(huì)回滾所有已執(zhí)行的操作并恢復(fù)所有未完成的操作。
XA協(xié)議
在分布式事務(wù)中,XA協(xié)議是一種用于協(xié)調(diào)多個(gè)資源管理器(如數(shù)據(jù)庫、消息隊(duì)列等)的標(biāo)準(zhǔn)協(xié)議。Tuxedo實(shí)現(xiàn)了XA協(xié)議,允許它與其他XA兼容的資源管理器協(xié)同工作。
對(duì)于數(shù)據(jù)庫事務(wù),XA協(xié)議涉及以下三個(gè)階段:
1. 準(zhǔn)備階段:每個(gè)參與者節(jié)點(diǎn)將操作提交到本地的數(shù)據(jù)庫,并將其更改狀態(tài)記錄到日志中。然后發(fā)送一個(gè)prepare消息到DTM。
2. 提交階段:當(dāng)DTM收到所有參與者的prepare消息時(shí),它將開始提交該事務(wù)。它會(huì)向每個(gè)參與者發(fā)送一個(gè)commit消息以通知其提交更改。在所有參與者都提交后,DTM會(huì)將事務(wù)提交確認(rèn)發(fā)送給應(yīng)用程序。
3. 回滾階段:當(dāng)一個(gè)參與者無法完成prepare或commit操作時(shí),它會(huì)發(fā)送一個(gè)rollback消息。所有其他參與者將接收到DTM發(fā)送的該事務(wù)的rollback消息,并回滾本地的更改。
事務(wù)恢復(fù)
在復(fù)雜的分布式系統(tǒng)中,節(jié)點(diǎn)和網(wǎng)絡(luò)之間的通信可能由各種原因中斷,這可能導(dǎo)致某些節(jié)點(diǎn)上的事務(wù)操作未能完成。為了確保數(shù)據(jù)的一致性,Tuxedo擁有一個(gè)事務(wù)恢復(fù)機(jī)制。當(dāng)節(jié)點(diǎn)重新啟動(dòng)時(shí),Tuxedo會(huì)檢查所有未完成的事務(wù)操作,并嘗試將其回滾或提交。
分布式鎖
在分布式環(huán)境中,要確保多個(gè)節(jié)點(diǎn)同時(shí)訪問同一個(gè)數(shù)據(jù)時(shí)不會(huì)導(dǎo)致競(jìng)爭(zhēng)問題。Tuxedo使用分布式鎖機(jī)制來管理對(duì)數(shù)據(jù)的訪問。使用Tuxedo的分布式鎖機(jī)制,應(yīng)用程序可以通過創(chuàng)建鎖來保護(hù)數(shù)據(jù)。在分布式環(huán)境中,鎖可以跨多個(gè)節(jié)點(diǎn)上的進(jìn)程/線程共享。
Tuxedo提供了一個(gè)高效的數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)方案。它使用分布式事務(wù)管理器(DTM)來協(xié)調(diào)多個(gè)節(jié)點(diǎn)和XA協(xié)議來確保數(shù)據(jù)的一致性和完整性。它的事務(wù)恢復(fù)機(jī)制可以在節(jié)點(diǎn)和網(wǎng)絡(luò)故障時(shí)保持?jǐn)?shù)據(jù)的一致性。使用分布式鎖,它可以有效地管理多個(gè)節(jié)點(diǎn)上的數(shù)據(jù)訪問。對(duì)于需要處理復(fù)雜事務(wù)的企業(yè)級(jí)應(yīng)用,Tuxedo是一個(gè)可靠的選擇。
相關(guān)問題拓展閱讀:
- TUXEDO調(diào)服務(wù)時(shí),客戶端返回tpcall錯(cuò)誤:tpforward tpacall failure TPENOENT – no entry found。
TUXEDO調(diào)服務(wù)時(shí),客戶端返回tpcall錯(cuò)誤:tpforward tpacall failure TPENOENT – no entry found。
這個(gè)是說客戶端找不到調(diào)用的服務(wù)端程序
Tuxedo介紹 原創(chuàng)
:23:02
11點(diǎn)贊
waterxcfg304
碼齡14年
關(guān)注
1、Tuxedo介紹
Tuxedo 是什么?
Tuxedo是BEA公司(現(xiàn)已被Oracle公司收購(gòu))的一個(gè)客戶機(jī)/服務(wù)器的“
中間件
”產(chǎn)品,它在客戶機(jī)和服務(wù)器之間進(jìn)行調(diào)節(jié),以保證正確地處理事務(wù)。它用C語言技術(shù)開發(fā)的并且有很高性能。
TUXEDO是在、Internet 這樣的分布式運(yùn)算環(huán)境中開發(fā)和管理三層結(jié)構(gòu)的客戶/服務(wù)器型關(guān)鍵任務(wù)應(yīng)用系統(tǒng)的強(qiáng)有力工具。它具備分布式事務(wù)處理和應(yīng)用通信功能,并提供完善的各種服務(wù)來建立、運(yùn)行和管理關(guān)鍵任務(wù)應(yīng)用系統(tǒng)。開發(fā)人員能夠用它建立跨多個(gè)硬件純蔽平臺(tái)、數(shù)據(jù)庫和操作系統(tǒng)的可互操作的應(yīng)用系統(tǒng)。
Tuxedo 的主要作用是:
屏蔽分布式環(huán)境中各種通信協(xié)議、硬件體系結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫和其它應(yīng)用服務(wù)等方面的差異,使分布于網(wǎng)絡(luò)節(jié)點(diǎn)上的應(yīng)用程序的各個(gè)單元部件之間能夠進(jìn)行互操作,并協(xié)調(diào)操作的一致性和完整性,更大限度地節(jié)省系統(tǒng)資源,提高系統(tǒng)性能。
* Tuxedo 已經(jīng)廣泛地應(yīng)用于金融、電信、制造業(yè)等各行各業(yè)的核心業(yè)務(wù)系統(tǒng)。
三層架構(gòu)
從左邊往右依次為:客戶端層(表現(xiàn)層),中間件服務(wù)層(業(yè)務(wù)邏輯層),數(shù)據(jù)庫服務(wù)器層(數(shù)據(jù)層)。這種典型的三層架構(gòu)應(yīng)用非常廣泛。對(duì)于應(yīng)用weblogic中間件的系統(tǒng)一般采用的B/S架構(gòu),絕大部分采用
HTTP協(xié)議
,少量的系統(tǒng)用java編寫的客戶端,使用的是RMI 協(xié)做者州議,或J2EE里的其它協(xié)議。
對(duì)于tuxedo中間件使用的是tuxedo協(xié)議,前端開發(fā)工具可以是各式各樣,VC++ 、java 、Delphi 、VB 等。
Tuxedo 的通訊過程
Tuxedo 服務(wù)器處理請(qǐng)求的方式與apache有本質(zhì)的區(qū)別。
Apache服務(wù)器處理請(qǐng)求,由客戶端發(fā)出請(qǐng)求到服務(wù)器,由服務(wù)器對(duì)請(qǐng)求進(jìn)行處理后將數(shù)據(jù)返回給客戶端。
Tuxedo 服務(wù)器一次請(qǐng)求需要兩次進(jìn)行兩次交互,Tuxedo有兩個(gè)負(fù)責(zé)通訊的進(jìn)程,一個(gè)為WSL,WSL的數(shù)量可以進(jìn)行配置,典型的配置一般兩、三個(gè);WSH可以有N多個(gè)??蛻舳送ㄟ^
IP地址
和端口號(hào)與WSL建立連接,由WSL認(rèn)證請(qǐng)求是否合法,在WSL的響應(yīng)中包含了另外一個(gè)IP地址和端口號(hào);然后,客戶端通過拿到的新的IP地址和端口號(hào)去請(qǐng)求WSH 。
客戶端程序由GUI 與 Tuxeo通訊兩部分組成,GUI部分主要由開發(fā)人員關(guān)心如何設(shè)計(jì),通訊部分可能設(shè)計(jì)成幾個(gè)函數(shù)供開發(fā)人員調(diào)用。對(duì)于
性能測(cè)試
人員可能更關(guān)心客戶端與服務(wù)器之間的通訊過程。嫌攔
2、tuxedo相關(guān)概念
IPC: Inter-Process Communication 進(jìn)程間通信: 管道、信號(hào)量(semaphore)、共享內(nèi)存(shared memory)、消息隊(duì)列(
Message Queue
)。
管道是UNIX系統(tǒng)IPC的最古老形式,數(shù)據(jù)只能單向流動(dòng)。
Tuxedo在客戶機(jī)和服務(wù)器通信中大量使用UNIX系統(tǒng)的消息隊(duì)列。
SSSO(Single Server Single Queue)模式:每個(gè)客戶機(jī)都有一個(gè)響應(yīng)隊(duì)列來接受客戶端請(qǐng)求。
MSSO(Multiple Server Single Queue)模式:多個(gè)服務(wù)器共享同一個(gè)請(qǐng)求隊(duì)列。
信號(hào)量包含一個(gè)計(jì)數(shù)器,表示某個(gè)資源正在被訪問和訪問的次數(shù),用來控制
多線程
對(duì)共享數(shù)據(jù)的訪問。
Tuxedo使用共享內(nèi)存存儲(chǔ)公告牌,用來公告進(jìn)程狀態(tài)信息和需要在進(jìn)程間共享或傳遞的數(shù)據(jù)。
—–
Tuxedo的配置文件稱為UBBCONFIG或ubb,包含了域(Domain)、邏輯機(jī)器(Machine)、服務(wù)器組(Group)、服務(wù)進(jìn)程(Server)、服務(wù)(Service)的定義。運(yùn)行前,需要把UBBCONFIG裝載成二進(jìn)制文件,稱為TUXCONFIG。
Tuxedo服務(wù)啟動(dòng)時(shí),執(zhí)行tpsvrinit()函數(shù),可以打開一些如數(shù)據(jù)庫之類的資源供以后使用
Tuxedo服務(wù)停止時(shí),執(zhí)行tpsvrdown()函數(shù),關(guān)閉資源
服務(wù)程序調(diào)用tpreturn()函數(shù)來結(jié)束服務(wù)請(qǐng)求,并返回一個(gè)緩沖區(qū),必要時(shí),將它傳給客戶程序。
ATMI環(huán)境支持的C/S通信方式:請(qǐng)求/應(yīng)答式通信、回話通信、隊(duì)列通信、事件代理通信、消息通知
請(qǐng)求/應(yīng)答式通信:同步調(diào)用(tpcall)、異步調(diào)用(tpacall)、嵌套調(diào)用、轉(zhuǎn)發(fā)調(diào)用(tpforward)
轉(zhuǎn)發(fā)調(diào)用和嵌套調(diào)用類似,不同的是最里層的嵌套服務(wù)可以直接給客戶程序一個(gè)響應(yīng),而不必按照調(diào)用棧 逐級(jí)返回。
回話方式:tpsend()/tprecv() 基于事件,分通告和代理
void (**p)(): 定義了一個(gè)指向函數(shù)指針的指針p
tpsetunsol(p) : 將p指向的函數(shù)func設(shè)置為客戶機(jī)的事件處理器。
tpchkunsol(): 檢查意外事件
事件代理: tppost()/tpsubscribe() 消息發(fā)布/訂閱
Tuxedo提供了兩個(gè)事件代理器(TMUSREVT TMSYSEVT)來處理訂閱請(qǐng)求。
隊(duì)列存儲(chǔ): tpenqueue() / tpdequeue()
Tuxedo/Q用到了Tuxedo提供的兩個(gè)服務(wù)器:消息隊(duì)列服務(wù)器(TMQUEUE)和消息轉(zhuǎn)發(fā)服務(wù)器(TMQFORWARD)
多系統(tǒng)多機(jī)之間通信需要每臺(tái)機(jī)器上都有一個(gè)Bridge進(jìn)程,通過TCP/IP通信,Bridge進(jìn)程維持一個(gè)長(zhǎng)連接,一旦建立不會(huì)斷掉。
TUXEDO應(yīng)用系統(tǒng)的客戶端訪問TUXEDO服務(wù)器上的服務(wù)的過程圖:
說明:
WS(Workstation Extension Product)用于指TUXEDO產(chǎn)品的客戶端部分
WSC Workstation Client
WSL(Workstation Listener) TUXEDO系統(tǒng)自帶的一個(gè)SERVER,它偵聽一個(gè)指定的端口,WSC最初與該SERVER建立連接
WSH(Workstation Handler)TUXEDO系統(tǒng)自帶的一個(gè)SERVER,由它處理WSC與TUXEDO SERVER之間的通訊。
Bulletin Board(公告板)TUXEDO把系統(tǒng)的配置保存在一個(gè)共享內(nèi)存中,該共享內(nèi)存稱為公告板(BB)
BBL TUXEDO的管理進(jìn)程,主要對(duì)公告板等進(jìn)行管理
Workstation Client與TUXEDO SERVER建立連接的過程為:
1. WSC 調(diào)用tpinit()或tpchkauth()
2. WSC采用在WSNADDR中指定的IP地址與服務(wù)端的WSL建立連接
3. WSL為該WSC指定一個(gè)WSH,并把該WSH的偵聽端口返回給WSC
4. WSC采用返回的端口與指定的WSH建立連接,并與WSL斷開連接,這之后WSC與TUXEDO SERVER之間的通訊通過WSH進(jìn)行處理,與WSL無關(guān)。
5. tpinit()或tpchkauth()調(diào)用返回。
—
單域模式Single-Domain Model。單機(jī)模式 Single Host Model, 多機(jī)模式Multi-Processor Model
多域模式Multi-Domain Model
一般出現(xiàn)這個(gè)問題可能有兩種指槐情況:
1.是服務(wù)沒有嫌氏部署
2.服務(wù)被core dump了
你可以檢查一下appdir目錄下唯者友是否有core 文件產(chǎn)生
對(duì)于BEA的中間價(jià)產(chǎn)品TUXEDO,常采用C/C++語言編寫后臺(tái)服務(wù)程序,廣泛應(yīng)用于電信、金融等領(lǐng)域,因項(xiàng)目的需要,我們經(jīng)常面悔橘臨調(diào)TUXEDO服務(wù)的需求!談春
對(duì)于JAVA調(diào)TUXEDO服務(wù),有三種方法:一是通過JNI,二是通過WTC,三是通過JOLT!這三種方式各有優(yōu)劣,簡(jiǎn)單的描述為:
JNI
優(yōu)–無需購(gòu)買License;發(fā)布TUXEDO服務(wù)無需做額外限制;無需借助于任何J2EE容器
劣–JNI影響系統(tǒng)移植;防止過度JNI帶來性能問題
WTC(WEBLOGIC為TUXEDO定制)
優(yōu)–因定制,存在一套和TUXEDO API相對(duì)應(yīng)的JAVA API;發(fā)布TUXEDO服務(wù)無需做額外限制;雙向調(diào)用
劣–需要購(gòu)買License;依賴于WEBLOGIC容器,不能移植到其它J2EE容器(如WEBSPHERE,JBOSS)
JOLT
優(yōu)–可用于但不依賴于J2EE容器(如WEBLOGICWEBSPHERE,JBOSS);提供的API用WTC類似但不同;
劣–需要購(gòu)買License;發(fā)布TUXEDO服務(wù)有些額外的要求;不提供集成的 WebLogic Server-Tuxedo 事務(wù)的機(jī)制
由此可知,之一,在受限于License經(jīng)濟(jì)壓力或無法要求UXEDO服務(wù)方發(fā)布服務(wù)的情況下,我們可以選擇JNI方式調(diào)TUXEDO服務(wù);
第二,當(dāng)需要一般 Java 客戶端或其他 Web 服務(wù)器應(yīng)用程序且 WebLogic Server 不是解含前耐決方案的一部分時(shí),用戶應(yīng)使用 Jolt(而不使用 WTC)作為解決方案。
服務(wù)沒啟, 重啟下就好了
tuxedo 數(shù)據(jù)庫事務(wù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于tuxedo 數(shù)據(jù)庫事務(wù),Tuxedo數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)的關(guān)鍵技術(shù),TUXEDO調(diào)服務(wù)時(shí),客戶端返回tpcall錯(cuò)誤:tpforward tpacall failure TPENOENT – no entry found。的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前名稱:Tuxedo數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)的關(guān)鍵技術(shù)(tuxedo數(shù)據(jù)庫事務(wù))
網(wǎng)站URL:http://www.5511xx.com/article/cdpjcpg.html


咨詢
建站咨詢
