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

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

§3.1 熟悉bankapp的文件

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

源文件

生成的文件

內容說明

ACCT.ec

ACCT.c, ACCT.o,

ACCT

包括兩個服務:OPEN_ACCTCLOSE_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_BIDTBALC_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, DEPOSITINQUIRY

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_BIDTBAL_BID 服務獲得銀行及支行賬號和余餘額的客戶程序

auditcon.c 

auditcon 

audit的互動式版本,使用ABAL, TBAL, ABALC_BIDTBALC_BID.服務

bankapp.mk 

 

UNIX下應用程序Make文件

bankapp.nt 

 

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

bank.flds 

bank.flds.h 

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

bank.h 

 

bankapp應用程序的頭文件

bankvar 

 

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

crbank.sh 

crbank

bankappSHM模式下運行時創建數據的shell腳本

crbankdb.sh 

crbankdb 

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

crtlog.sh 

crtlog, TLOG 

master站和non-master站的UDL上創建UDLTLOGshell腳本

driver.sh 

driver 

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

envfile.sh 

envfile, ENVFILE 

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

gendata.c 

gendata

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

gentran.c 

gentran

DEPOSIT, WITHDRAWAL, TRANSFERINQUIRY.生成事務請求的程序

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的客戶程序

1bankclt.c文件

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

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

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

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

以下文章點擊率最高

Loading…

     

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