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…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营