tuxedo 配置小記

來源:互聯網
上載者:User

 

初次接觸。從昨天下午弄到現在,終於添加好了一個簡單的服務。

先簡單瞭解一下tuxedo 的原理:

The heart of the Tuxedo system is the Bulletin Board (BB). This is a shared memory segment that contains the state of a Tuxedo domain.

看來IPC真是個很重要的知識些。tuxedo 這些大名鼎鼎的分布式系統,用的無非就是IPC技術。

 

1、服務(service )是 tuxedo 的核心概念。每個服務對應c 中的一個函數。服務是阻塞啟動並執行。

兩個請求先後到達時,後來的必須等先到的處理完畢才能被處理。為瞭解決排隊的問題,可以把一個程式啟動多份執行個體(啟動的進程數量在 *.ubb中指定 ),tuxedo 會自動地找到閒置進程。這就是所謂的負載平衡(load balance )。

2、程式(server)是服務的集合。一個程式中可以有多個服務。編譯時間使用 -s 選項將這些服務匯出,以供 tmboot識別。

2、一個程式可以運行多個進程執行個體。同一主機上有若干程式/進程,一個進程可以提供若干服務。這些服務可通過函數呼叫(tpcall())的方式來相互調用,無論進程內部還是進程之間。

3、進程的類型:一個主機上可以有三種進程:管理進程(admin process 或者叫 bbl process )、網關進程(gateway processes )、服務進程( server processes ),用來同步主機間的資訊。
4、tuxedo 的長/短串連,阻塞/非阻塞的概念。
tpconnect() 是長串連。可以是阻塞模式(request/response communication )。也可以是非阻塞模式(Conversational communication )。
tpcall() 是一種阻塞的短串連。

程式開發:
tuxedo 使用了 dispatch機制:在編譯時間提供了 service_name 和 service_instance 的映射關係。client 可以指定 service-name 向管理進程申請調用相關的 service。( connect 或 call )。管理進程則根據 service_name 來將處理請求 dispatch 到指定的 service(進程)。
管理進程和 service_name 是通過資料結構 tpsvcinfo 來實現資料交換的:

struct tpsvcinfo {
#define XATMI_SERVICE_NAME_LENGTH  32
        char    name[XATMI_SERVICE_NAME_LENGTH];//  service name invoked 
        long    flags;          //  describes service attributes 
        char    *data;          //  pointer to data 
        long    len;            //  request data length 
        int     cd;             //  connection descriptor 
        long    appkey;         //  application authentication client key 
        CLIENTID cltid;         //  client identifier for originating client 
};

以上,date 和 len 指定了 client 的資料輸入緩衝的地址和長度。 cd 即 socket 控制代碼。可以看出,無論 call 還是 connect ,內部都是使用了 socket 來實現的。

添加一個服務的完整過程:

1、寫程式,編譯。編譯時間用 -s 來指定服務名稱

2、將程式放到指定的目錄下。

3、在 .ubb 中添加 service 。這裡可以指定進程最大數量,最小數量,所屬的 group 等等。

4、編寫 Bulletin Board config file ( ubbconfig file ),並使用 tmloadcf 命令編譯將其編譯為二進位檔案,稱做 TUXCONFIG 檔案。該檔案的檔案名稱在環境變數中設定的:

$env |grep TUXCONFIG
TUXCONFIG=/hbtest/bin/bill.tux

5、編寫工作站設定檔( domain configure file,用於發布服務和註冊路由 )使用 dmloadcf 命令編譯為二進位檔案。

6、tmboot -s serviename 啟動服務。 

縮減語介紹:
ATMI:Application-to-Transaction Monitor Interface
 相關資料:

維基百科上的 Tuxedo (software) 

 化繁為簡來學習編寫BEA TUXEDO會話的程式 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.