tuxedo應用程序開發指南3

#Example:

#JQ        LMID=simple

 

*GROUPS

GROUP1

    LMID=simple    GRPNO=1    OPENINFO=NONE

 

*SERVERS

DEFAULT:

        CLOPT=”-A”

 

simpserv    SRVGRP=GROUP1 SRVID=1

 

*SERVICES

TOUPPER

⑵.    載入配置文件

$ tmloadcf ubbsimple

Initialize TUXCONFIG file: /usr/me/simpdir/tuxconfig [y, q] ? y

$

5.啟動應用程序

⑴.    執行tmboot啟動應用程序

$tmboot

Boot all admin and server processes? (y/n): y

Booting all admin and server processes in

/usr/me/simpdir/tuxconfig

Booting all admin processes ….

exec BBL -A:

process id=24223 … Started.

Booting server processes …

exec simpserv -A :

process id=24257 … Started.

2 processes started.

BBL是應用程序中監視共享內存結構的管理進程,simpserv是連續運行的simpapp服務程序,它等待著處理請求。

6.如何執行運行時應用程序

$ simpcl “hello, world”

Returned string is: HELLO, WORLD

7.如何監視運行時應用程序

    作為管理者,你可以使用tmadmin命令解釋器來檢測一個應用程序,並作一些動態的改變,要運行該命令,你必須設置TUXCONFIG環境變數。tmadmin可以解釋超過50個命令,要看完整的列表,請看tmadmin(1),這裡我們使用了兩個tadmin命令。

    ⑴.輸入如一命令:

        $tmadmin

        顯示:

tmadmin – Copyright (c) 1999 BEA Systems, Inc. All rights

reserved.

>

⑵.    輸入printserver(psr)命令,顯示:

> psr

a.out Name Queue Name Grp Name ID RqDone Load Done Current Service

————– ————— ————- — ——— ————– ——————

BBL         531993         simple      0     0          0             ( IDLE )

simpserv      00001.00001     GROUP1     1     0          0              ( IDLE )

⑶.    輸入printservice(psc)命令,顯示:

Service Name Routine Name a.out Name Grp Name ID Machine # Done Status

———— — —————— ————- ———— — ———- ——— ———

TOUPPER TOUPPER simpserv GROUP1 1 simple – AVAIL

>

8.如何關閉應用程序

⑴.    運行tmshutdown命令來關閉應用程序

$ tmshutdown

Shutdown all admin and server processes? (y/n): y

Shutting down all admin and server processes in

/usr/me/simpdir/tuxconfig

Shutting down server processes …

Server Id = 1 Group Id = GROUP1 Machine = simple: shutdown

succeeded.

Shutting down admin processes …

Server Id = 0 Group Id = simple Machine = simple: shutdown

succeeded.

2 processes stopped.

$

⑵.    檢查ULOG文件

$ cat ULOG*

$

113837.tuxmach!tmloadcf.10261: CMDTUX_CAT:879: A new file system

has been created. (size = 32 4096-byte blocks)

113842.tuxmach!tmloadcf.10261: CMDTUX_CAT:871: TUXCONFIG file

/usr/me/simpdir/tuxconfig has been created

113908.tuxmach!BBL.10768: LIBTUX_CAT:262: std main starting

113913.tuxmach!simpserv.10925: LIBTUX_CAT:262: std main starting

113913.tuxmach!simpserv.10925: Welcome to the simple server

114009.tuxmach!simpserv.10925: LIBTUX_CAT:522: Default

tpsvrdone() function used.

114012.tuxmach!BBL.10768: CMDTUX_CAT:26: Exiting system

第三章
一個完整的Tuxedo應用程序bankapp

bankapp是BEA Tuxedo系統提供一個簡單的銀行應用程序,它完成如下功能:打開和關閉賬號,查詢賬號餘額,存款和取款,賬號之間轉賬。

§3.1 熟悉bankapp的文件

BEA Tuxedo系統提供了一個演示資料庫,bankapp例子中有很多個地方使用了命令和SQL代碼來訪問它。bankapp由如下文件組成:

源文件

生成的文件

內容說明

ACCT.ec

ACCT.c, ACCT.o,

ACCT

包括兩個服務:OPEN_ACCT和CLOSE_ACCT 用於打開和關閉賬號

ACCTMGR.c

ACCTMGR

訂閱事件和記錄通告日誌的伺服器,包含: WATCHDOG 和 Q_OPENACCT_LOG 服務

AUDITC.c

AUDITC

包括一個會話伺服器處理來自客戶端auditcon的請求

BAL.ec 

BAL.c, BAL.o,

BAL 

包括一組服務:ABAL, TBAL, ABAL_BID, 和

TBAL_BID 允許audit客戶獲得銀行或支行賬號以及餘額

BALC.ec 

BALC.c, BALC.o,

BALC  

包括兩個服務:ABALC_BID和TBALC_BID。這些服務和TBAL_BID,ABAL_BID是一樣的。

bankmgr.c 

bankmgr 

訂閱特定事件客客戶程序

cracl.sh 

– 

用於創建訪問控制列表ACL以演示ACL安全的shell腳本

crqueue.sh 

– 

notification.用於創建應用程序隊列以供事件通告使用的shell腳本

crusers.sh 

– 

創建用戶和組以演示驗證安全級別的shell腳本

event.flds 

– 

在事件特徵中用到的欄位表文件

FILES  

– 

bankapp用到的所有文件列表

README 

– 

在除NT以外的所有平台上安裝指南

README.nt 

– 

NT平台上的安裝指南

README2 

– 

在bankapp中演示新特性的自述文件

README2.nt 

– 

在NT平台上演示新特性自述文件

RUNME.cmd 

– 

在NT平台上創建、配置、啟動、關閉應用程序的互動式腳本

RUNME.sh 

– 

UNIX平台下的腳本文件,功能同上

showq.sh! 

– 

顯示消息隊列的狀態和內容的shell腳本

TLR.ec 

TLR.c, TLR.o, TLR

包含三個服務:WITHDRAWAL, DEPOSIT和INQUIRY

usrevtf.sh 

– 

創建供TMUSREVT伺服器使用的ENVFILE文件

XFER.c 

XFER.o, XFER 

包括TRANSFER服務

aud.v 

aud.V, aud.h 

一個在audit 客戶和BAL伺服器之間使用的FML view

appinit.c 

appinit.o 

包含供所有伺服器(除TLR以外)使用的用戶自定義版的tpsvrinit()和tpsvrdown()

audit.c 

audit.o, audit

通過ABAL, TBAL, ABAL_BID和TBAL_BID 服務獲得銀行及支行賬號和余餘額的客戶程序

auditcon.c 

auditcon 

audit的互動式版本,使用ABAL, TBAL, ABALC_BID和TBALC_BID.服務

bankapp.mk 

– 

UNIX下應用程序Make文件

bankapp.nt 

– 

NT平台下應用程序的Make文件

bank.flds 

bank.flds.h 

由伺服器使用,包含銀行資料庫和輔助FML欄位文件

bank.h 

– 

bankapp應用程序的頭文件

bankvar 

– 

包括bankapp使用的環境變數,其它環境變數在ENVFILE中定義,後者被前者調用

crbank.sh 

crbank

為bankapp在SHM模式下運行時創建數據的shell腳本

crbankdb.sh 

crbankdb 

為一個伺服器組創建資料庫的shell腳本

crtlog.sh 

crtlog, TLOG 

在master站和non-master站的UDL上創建UDL和TLOG的shell腳本

driver.sh 

driver 

通過FML緩衝區驅動應用程序的shell腳本

envfile.sh 

envfile, ENVFILE 

創建供tmloadcf使用的ENVFILE文件的shell腳本

gendata.c 

gendata

生成10個支行,30個出納員及200個賬號的程序

gentran.c 

gentran

從DEPOSIT, WITHDRAWAL, TRANSFER和INQUIRY.生成事務請求的程序

populate.sh 

populate

通過FML緩衝區向資料庫中插入支行、出納員、和賬號信息的shell腳本

ubbmp 

TUXCONFIG 

在MP-mode下使用的UBBCONFIG文件

ubbshm 

TUXCONFIG 

在SHM-mode下使用的UBBCONFIG文件

util.c 

util.o 

包含一組由服務使用的函數,如getstr1()等

bankclt.c 

bankclt 

bankapp的客戶程序

§3.2 檢查bankapp的客戶程序

1.bankclt.c文件

    它是一個基於文本的客戶,提供了:餘額查詢、取款、存款、轉賬、打開賬號、關閉、號、退出程序等幾大功能。除退出應用程序以外,每一個選項都調用了一個執行如下功能的常式:

⑴.    通過get_account(), get_amount(), get_socsec(), get_phone(), get_val()函數從鍵盤獲得用戶輸入。

⑵.    將值存入一個全局的FML緩衝區(*fbfr),有些函數需要更多的欄位,需要根據伺服器所需的信息來確定。

⑶.    通話通過do_tpcall()函數調用BEA Tuxedo系統服務,下面列出了一些函數和服務。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營