第16页 共20页
停止服务:tmshutdown -y 管理服务:tmadmin
2.3 定义配置文件
修改sample中的simpserv项目的,所以怎么建服务不是很清楚,就是改服务。
主要看ubbsimple配置文件 *RESOURCES
IPCKEY 123456
DOMAINID simpapp MASTER simple
MAXACCESSERS 100()(这个以及一下几个数字都是改大了点) MAXSERVERS 50 MAXSERVICES 100
MODEL SHM(单机方式,多机方式是MP,不会) LDBAL N *MACHINES DEFAULT:
APPDIR=\ TUXCONFIG=%uxconfig\
TUXDIR=\ MAXWSCLIENTS=50
TLOGDEVICE=\(这行以及下面三行是配置连接ORACLE数据库时才加上去的) TLOGNAME=TLOG TLOGSIZE=200 devsvr LMID=simple (机器名,很重要)
*GROUPS GROUP1
LMID=simple GRPNO=1
OPENINFO=\1+SqlNet=orcl_20+SesTm=600+MaxCur=5+LogDir=.\
TMSNAME=\(这行也是连数据库时才加的,否则原来是OPENINFO=NONE)
WSGRP LMID=simple GRPNO=4 OPENINFO=NONE
第17页 共20页
JSLGRP LMID=simple GRPNO=5 OPENINFO=NONE JREPGRP LMID=simple GRPNO=6 OPENINFO=NONE *SERVERS
DEFAULT:
CLOPT=\
simpserv SRVGRP=GROUP1 SRVID=1
JSL SRVGRP=JSLGRP SRVID=5 CLOPT=\-M 10 -x 5\
JREPSVR SRVGRP=JREPGRP SRVID=6 CLOPT=\/home/bea/tuxedo9.1/samples/atmi/simpapp/jrepository\WSL SRVGRP=WSGRP SRVID=8888
CLOPT=\*SERVICES
DEFAULT: LOAD=50 AUTOTRAN=Y TRANTIME=30 TOUPPER PRIO=50 ROUTING=INSTR
*ROUTING
INSTR FIELD=INSTR BUFTYPE=\
RANGES=\(这部分是把参数改成FML32缓冲区时改的,否则只要在上面SERVICES中写TOUPPER,其他就不需要了)
2.4 修改服务的参数
可以用JREPSVR增加服务,修改服务的参数等:
JREPSVR is Jolt Repository Server 定义如:
JREPSVR SRVGRP=JREPGRP SRVID=6 CLOPT=\
/usr/bea/tuxedo9.1/udataobj/jolt/repository/jrepository\
一个主机上可以有多个JREPSVR,但 -W的只能有一个,这是指可写,但只有一个jrepository文件可写
-P 指jrepository文件的路径,是必须有的。
如果要修改
appletviewer -J-Djava.security.policy=d:\\jdk1.5.0_06\\jre\\lib\\security\\java.policy RE.html
可以连上主机。
要先用policytool.exe编辑java.policy文件,当然也可以另外创建一个policy文件的,需要在policy文件中有socket的connect权限
第18页 共20页
2.5 连接oracle
XA方式:
2.5.1ORACLE方面改动
必须要装oracle客户端中的PROC *C/C++模块,因为tuxedo服务程序中连接oracle是用嵌入SQL实现的,也有其他方式的,不熟悉了。而且这个模块在oralce的服务端一般是没有的,不是默认安装的。
@$ORACLE_HOME/rdbms/admin/xaview.sql
grant select on v$xatrans$ to public with grant option;
grant select on v$pending_xatrans$ to public with grant option; grant select any table to public;
2.5.2TUXDO方面改动
修改$TUXDIR/udataobj/RM 文件
把原来的Oracle_XA:xaosw打头的一行注释掉,加: Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
在TUXDIR/bin目录下 buildtms -o TMS_ORA9i -r Oracle_XA 创建TMS文件
(RM文件包含所有的资源管理器的入口,它们被tuxedo应用访问。RM文件在$TUXDIR/udataobj目录下。每一个入口使用冒号分隔。
第一个字段是资源管理器的唯一名字。你可以使用任何指定的名字,通常启比较被人容易理解的名字。
第二个字段是xa_switch_t 结构名字。Oracle叫做 xaosw,oracle7引用的是静态注册。从oracle后使用另外一个结构xaoswd 用来动态注册。(具体的查看the Oracle8i Application Developer's Guide - Fundamentals 获得更多信息)
第三个字段是使用空格分隔的建立TM所需要的lib库文件列表。这些库文件通过访问RM文件建立tuxedo server 还是需要的。 一旦资源管理器入口正确建立到该RM文件中,就可以build事务管理server了。
第19页 共20页
RM的例子如下:
如果你没有使用cobol,oracle的RM使用: Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh 如果使用cobol:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib
${ORACLE_HOME}/precomp/lib/cobsqlintf.o -lclntsh )
2.5.3配置UBBCONFIG
在*MACHINES节中增加
TLOGDEVICE=\ TLOGNAME=TLOG TLOGSIZE=200
在*GROUPS节中增加
OPENINFO=\orcl_20+SesTm=600+MaxCur=5+LogDir=.\ TMSNAME=\
2.5.4TUXEDO下的sqlca.h,sqlcode.h,sqlda.h改名
libsql.lib改名(没有找到,只有Libsql.a,libsql.o,暂时还没有改) 执行tmadmin命令
>crdl -b 500 -z /home/cuiying/temp/simpdb/TLOG 创建日志 >crlog -m catsvr(没成功) >q
2.5.5编译前的准备
编译之前先配置好 $ORACLE_HOME/precomp/admin/pcscfg.cfg 文件,否则可能找不到有些.h文件
sys_include=(/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include,/usr/include)--修改的
include=/home/oracle/product/9.2.0.4/precomp/public include=/home/bea/tuxedo9.1/include/ --增加的 ltype=short
特别注意系统默认的gcc的include目录不准确的,要自己去/usr/lib/gcc-lib目录下去看看
2.6 使用FML缓冲区
第20页 共20页
tt.fml文件
mkfldhdr或mkfldhdr32命令进行编译生成tt.fml.h文件,在.c文件中include该.h文件。
2.7 编译过程
把服务程序.c文件改成.pc文件
proc simpserv.pc --产生预编译后的.c文件,这是因为.pc文件中有嵌入SQL语句,需要进行预编译
buildserver -f simpserv.c -o simpserv -r Oracle_XA -s TOUPPER
如果有多个c文件:buildserver -f \ -o simpserv -r Oracle_XA -s TOUPPER
头文件不需要写在命令行中,因为.c文件中都包含了。
如果tmloadcf也执行过了,就可以执行tmboot了,客户端就可以调用了。