#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…