close

在對tuxedo的架構有了初步的瞭解後,對於如何使用tuxedo應該有了初步的瞭解

接下來就是實際操作了

 

由於tuxedo的架構就是client -> tuxedo server -> DB

所以我建立三台虛擬機來做測試

Client -> win7 x64

tuxedo server -> ubuntu 12.04 desktop x64

db -> oracle 11gR2 x64 on windows server 2008 r2

 

tuxedo server在ubuntu上的安裝可以參考另一篇 ubuntu 12.04 安裝tuxedo 12c

txuedo 在win7 的安裝,就不用多說,和一般安裝應用程式一樣,一直按下一步就好了。但安裝完只會有client保留,因為tuxedo在win7只支援client

另外,之後還會有講解tuxedo 在windows server上的設定及DB SERVER 的設定

 

這次的記錄會分為上下篇來講

上篇主要是講tuxedo server和client都在同一台server上的設定

下篇則是講tuxedo server 和client分開的情況下的設定

 

其實tuxedo的設定非常簡單

基本上就是設定環境變數 -> 編譯server 和client -> 啟動tuxedo ->調用相關service

 

1、設定環境變數

在ubuntu上安裝完tuxedo後,可以在tuxedo的安裝目錄下找到一個tux.env的檔案

這個檔案是安裝完tuxedo後產上的環境變數的預設設定檔

以我的為例是在 /home/tuxedo/oracle/tuxedo12下,tux.env的內容如下

2012-11-17_224533    

基本上是不用修改,直接把這些設定貼到OS 的環境變數設定裡

以Ubuntu為例就是貼到 /home/.bashrc裡(此檔為隱藏檔,請按Ctrl+h顯示)

如下圖

2012-11-17_230401

然後到終端機執行   source .bashrc,讓命令生效,然後重新登入系統。

 

2、建立測試環境目錄

在 /home/tuxedo/oracle/tuxedo12 新建一個目錄

tuxedo@blou:~$ mkdir myapp

 

3、建sample裡的simpapp全部複製到myapp裡

tuxedo@blou:~/oracle/tuxedo12$ cp samples/atmi/simpapp/* myapp/

應該會有四個文件被複製過去

README           simpcl.c             simpserv.c        ubbsimple


4、修改myapp下的ubbsimple 設定檔,初始畫面如下圖

2012-11-17_231434  

這個ubbsimple檔,可以自己改名為ubbconfig

主要作用是設定tuxedo的資源、主機、services、server等的配置訊息

再透過tmloadcd命令加載產生二進制的文件tuxconfig,供tuxedo 運行時使用。

在ubbsimple裡主要分成幾個區塊

圖片1

 *Resources

   IPCKEYIPC資源的唯一值,32768-262143
   GID, UID:用戶組ID和用戶的ID,在Unix平臺上使用
   DOMAINID:Tuxedo域的ID
   MAXACCESSERS:並發訪問BB的進程數量,可以填0-32768,須小於等於MAXSERVERS + license 中用戶數量
   MAXSERVERS:BB中最多容納的伺服器數量,可以填0-8192,須將Tuxedo系統進程和應用的進程都要計算在內
   MAXSERVICES:BB中最多容納的服務數量,可以填0-32768,須將Tuxedo系統進程和應用的進程都要計算在內
   MODEL :SHM ->Singel Shared Memory,MP->Multi Processors
   LDBAL:Y -> 啟用負載均衡,N->禁用負載均衡(負載均衡會有額外的資源消耗)
 
  基本上這邊先只要修改IPCKEY就好了,自己任意輸入數字
 
*Machine
  
   APPDIR:應用程式的路徑,可以是多個路徑的組合,UNIX上用 : 分隔,WINDOWS上用 ; 分隔。
   TUXCONFIG:TUXEDO二進制配置文件的路徑。
   TUXDIR:TUXEDO路徑,必須要和前面設的環境變數中的TUXDIR一樣。
   LMID:邏輯主機名稱,格式是-> 物理主機名稱      LMID=邏輯主機名稱;例如beatux      LMID=simple
   *這邊要注意,物理主機名稱的大小寫,在WINDOWS的話,只能用大寫,所以電腦名稱要改成大寫
     UNIX的話大小寫一致即可。
   
   TYPE:主機類型。無有固定要求,主要是用來標識是否為同類型的主機。
   SPINCOUNT:在單CPU的主機上設置為1,在多CPU的主機設置5000-100000,實際參數依主機有所不同。
   MAXWSCLIENTS:最大的/WS客戶端數量。
   ULOGPEX:ULOG的路徑,默認為APPDIR。
 
*GROUPS
   
此部份設定主要用來定義主機與SERVICES之間的映射關係,是不能省略的,每台主機至少定一個GROUP
主要參數包括GROUP NAME、GROUP NO、LMID、OPENINFO、CLOSEINFO、TMSNAME、TMSCOUNT等等。
基本上,這邊可以用預設的就好了
 
*SERVERS

此部份設定主要用來定義SERVICES的配置資訊,不是必須的
主要參數包括可執行的SERVICES NAME、SRVID、SRVGRP、CLOPT

如果SERVER、CLIENT位於同一台SERVER,這邊就照預設的即可。
 
*SERVICES

此部份設定主要提供個性化服務配置資訊,也不是必須的。
主要參數包括SERVICES NAME、PRIOROUTING
基本上這邊就用預設的即可。
 
 
 
5、設定TUXCONFIG變數

在設定完UBBSIMPLE之後,須要再回到系統環境變數裡加上TUXCONFIG變數的設定
就是到.BASHRC裡加上TUXCONFIG路徑,如下圖
2012-11-17_235815  
 
然後開啟終端機輸入 SOURCE .BASHRC讓指令生效,再重新登入。
 
6、編譯客戶端程式

開啟終端機,將目錄移到MYAPP下,然後輸入buildclient -o simpcl -f simpcl.c
然後它就會告訴你有錯....
2012-11-18_000337  
 
因為UBUNTU是不被支援的平台而且 Oneric對於shared libraries有一些substantial changes,而且是沒有向後支援的....
那我要砍掉重練嗎?不會吧....
 
其實有方法解決,就是加上linker option  --no-as-needed,語法如下

buildclient -o simpcl -f "-Xlinker --no-as-needed simpcl.c"

2012-11-18_001216  

然後你就會在MYAPP下看到有一個叫SIMPCL的執行檔

 2012-11-18_001912  


 7、編譯服務端程式
 
開啟終端機,將目錄移到MYAPP下,然後輸入buildserver -o simpserv -f simpserv.c -s TOUPPER

2012-11-18_001637  

然後就可以在MYAPP下看到有個叫SIMPSERV的執行檔了
2012-11-18_001842  
 
 8、加載UBBSIMP文件
開啟終端機,將目錄移到MYAPP下,然後輸入tmloadcf -y ubbsimple
 
如果出現這個錯誤,是因為tuxedo服務正開啟,沒法加載ubbsimp
2012-11-18_002138  
下tmshudown -y指令,將tuxedo服務關閉,再輸入tmloadcf -y ubbsimple,即可
 

9、開啟tuxedo服務

在終端機下tmboot -y,就會開啟tuxedo 服務了

2012-11-18_002916    

10、調用程式測試

在終端機下,將目錄移到MYAPP下,然後下./simpcl "hello world"

2012-11-18_003627  


大功告成,真的很簡單... 

arrow
arrow

    Burgess 發表在 痞客邦 留言(1) 人氣()