Java連接Tuxedo

Java 編程語言 C語言 Apache 深耕IT 2017-05-08

一、JNI方式連接

通過JNI方式,JAVA去調用Tuxedo中的C接口,可以實現與Tuxedo服務端的交互。

優勢:無需購買License;發佈TUXEDO服務無需做額外限制;無需藉助於任何J2EE容器

劣勢:JNI影響系統移植;還需防止過度JNI帶來性能問題

二、WTC方式連接

WTC為Weblogic專為連接Tuxedo而定製的組件,只存在於Weblogic中間件中,因此,如果非Weblogic中間件,連接Tuxedo時,無法使用WTC方式進行連接。

優勢:因定製,存在一套和TUXEDO API相對應的JAVA API;發佈TUXEDO服務無需做額外限制;雙向調用

劣勢:需要購買License;依賴於WEBLOGIC容器,不能移植到其它J2EE容器(如WEBSPHERE,JBOSS)

三、JOLT方式連接

直接使用相應的Jar包即可實現對Tuxedo服務端的連接。

優勢:可用於但不依賴於J2EE容器(如WEBLOGICWEBSPHERE,JBOSS);提供的API用WTC類似但不同;

劣勢:發佈TUXEDO服務有些額外的要求;不提供集成的 WebLogic Server-Tuxedo 事務的機制。

JOLT方式連接步驟:

1、開發環境搭建

準備開發工具:Eclipse,獲得Tuxedo Jolt相應的Jar,可以從oracle網站上下站,也可以通過安裝Tuxedo客戶端獲得,需要的Jar包名稱如下:jolt.jar、joltjse.jar、joltwls.jar,然後新建一個應用工程,引入上述的jar包,或通過環境變量CLASSPATH指定上述三個Jar包所在的路徑。

2、服務端配置

(1)、要在服務端相應的ubb文件中配置Jolt連接所需要的地址,端口,如下圖所示:

Java連接Tuxedo

配置示例

注意:Jolt使用的JSL方式連接Tuxedo服務,需要在ubb中配置後才可以使用,如上圖中WSL為C連接Tuxedo的方式,其使用的IP、端口,Jolt連接是用不了的。

(2)、配置jrepository

Java連接Tuxedo

配置示例

如上圖所示,標識出來的部分為jrepository文件的所在位置,打開相應的jrepository文件,所有使用jolt方式與服務端進行交互的交易均都需要該文件中配置,如下圖所示:

Java連接Tuxedo

配置示例

如果相應的交易沒有在jrepository文件中配置,使用jolt調用相應的交易(服務)時,會報:"Service is not available: 180028 "

注意:如果出現上述情況,也存在兩種可能,一種情況是因為沒有在jrepository文件中配置相應的交易(服務),另一種情況是如果在jrepository文件中已經配置過了,那也有可能是Tuxedo服務端服務配置出了問題,需要確實服務端是否正常,接著可以再確認配置的jrepository文件是否為ubb配置文件中指定路徑的jrepository文件。

3、連接測試

(1)、jolt主要類介紹

JoltSessionAttributes主要用於設置連接參數,如連接地址,超時時間,連接方式等一系列連接Tuxedo所需要的參數,用於配合JoltSession類建立連接之用。

JoltSession用於與Tuxedo服務器建立連接,完成連接操作,需要JoltSessionAttributes類中的配置信息,需要連接時的用戶名,密碼,角色等信息,通常用戶名,密碼,角色等信息均為空即可。

JoltRemoteService用於調用Tuxedo的服務,需要服務名及已經實例化好的JoltSession類,調用

Tuxedo服務時所使用的報文格式在服務端配置服務時配置,配置在jrepository文件中。

(2)、連接示例

下圖示例展示了調用Tuxedo服務過程的代碼,使用String格式傳送與接收報文:

Java連接Tuxedo

Java連接Tuxedo

代碼示例

四、Tuxedo介紹

Tuxedo是Oracle公司的一個客戶機/服務器的“中間件”產品,它在客戶機和服務器之間進行調節,以保證正確地處理事務。它用C語言技術開發的並且有很高性能。

Tuxedo是在、Internet 這樣的分佈式運算環境中開發和管理三層結構的客戶/服務器型關鍵任務應用系統的強有力工具。它具備分佈式事務處理和應用通信功能,並提供完善的各種服務來建立、運行和管理關鍵任務應用系統。開發人員能夠用它建立跨多個硬件平臺、數據庫和操作系統的可互操作的應用系統。

Tuxedo是一個典型的三層架構:

Java連接Tuxedo

Tuxedo架構

從左邊往右依次為:客戶端層(表現層),中間件服務層(業務邏輯層),數據庫服務器層(數據層)。這種典型的三層架構應用非常廣泛。對於應用weblogic中間件的系統一般採用的B/S架構,絕大部分採用HTTP協議,少量的系統用java編寫的客戶端,使用的是RMI 協議,或J2EE裡的其它協議。對於tuxedo中間件使用的是tuxedo協議,前端開發工具可以是各式各樣,VC++ 、java 、Delphi 、VB 等。

Tuxedo 服務器處理請求的方式與apache有本質的區別

Apache服務器處理請求,由客戶端發出請求到服務器,由服務器對請求進行處理後將數據返回給客戶端。

Tuxedo 服務器一次請求需要兩次進行交互,Tuxedo有兩個負責通訊的進程,一個為WSL,WSL的數量可以進行配置,典型的配置一般兩、三個;WSH可以有N多個。客戶端通過IP地址和端口號與WSL建立連接,由WSL認證請求是否合法,在WSL的響應中包含了另外一個IP地址和端口號;然後,客戶端通過拿到的新的IP地址和端口號去請求WSH 。

通訊過程如下圖:

Java連接Tuxedo

Tuxedo通訊過程

五、總結

1、Java連接Tuxedo最好使用JOLT方式

2、Tuxedo可以支持分佈式事務,主要應用在金融、電信、製造業等行業的一些核心業務系統中。

3、Tuxedo算是三層架構中一個典型。

4、Tuxedo通訊過程中比較有意思的設計是兩次通訊,每次交易第一個驗證,然後返回IP地址與端口,然後才是第二次通訊,第二次通訊才算是真正的把交易把發過去執行。

相關推薦

推薦中...