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