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…


发表评论

电子邮件地址不会被公开。 必填项已用*标注