1、TUXEDO 培训教材(中)1.1 TUXEDO Buffer 类型简介1.1.1 STRINGSTRING Buffer 比较适用于变长的,行结构的数据处理。数据以来分割。Buffer 长度指定为 0执行 encode/decode1.1.2 CARRAYCARRAY Buffer 适用于处理平台无关性数据(independent machine data)不执行 encode/decode指定 Buffer 长度,因此缓冲数据可能包括(跟 STRING 类型不同)1.1.3 VIEW1.1.4 FML1.2 具体 DEMO1.2.1 SHM 模式应用(1) 了解 TUXEDO 最基本的客户
2、端 ATMI 函数,及客户端程序编写(2) 了解 TUXEDO 最基本的服务端 ATMI 函数,及服务端程序编写(3) 了解 TUXEDO 配置文件最基本的组成部分,及二进制配置文件的生成(4) 具体例子:c:simpappshm1.2.2 MP 模式应用(1) 编程上与 SHM 模式一样。(2) 配置上: RESOURCE Section 的 MODEL 要配置成 MP 在 MACHINE Section 增加主机的配置 增加 NETWORK SectionNADDR=/IP:PORT 不同主机之间 brige 进程通讯的 IP:PORTNLSADDR=/IP:PORT 本机 tlisten
3、 进程使用的 IP:PORT(3) tlisten 进程的启动在应用启动之间,每台 machine 的 tlisten 进程必须先启动。一般在机器启动时,就启动 tlisten 进程。tlisten 进程是 TUXEDO 自带的管理程序,在 MP 模式下,完成主机之间的初始化通讯,如非 MASTER 机从 MASTER 机中下载 tuxconfig 配置文件。tlisten 的启动办法:tlisten l /NLSADDR使用 tmamin 的管理命令 printnet 可以查看当前应用的主机之间的连接关系。(4) 具体例子 c:appssimpappmp 和 c:appssimpappmp1
4、1.2.3 conversation 交易(1) conversation 交易中基本的 ATMI 函数 tpconnect(“TRANS“, NULL, 0, TPSENDONLY)与后台应用的 CONVERSATION SERVER 建立一个逻辑上的长连接。“TRANS”会话类型的 service 名 tpsend(cd, SendBuf, (long)nBufLen, 0, 断开连接(2) 会话通讯的基本原理客户端与服务端为传输大数据来建立一个长连接的一种通讯方式。同一时间,只有取得控制权的一方才可以发送数据,而另一方只能被动接收数据控制权是可以转让的(3) 具体例子:c:simpapp
5、con1.2.4 DOMAIN 之间交易调用要实现 DOMAIN 之间的服务调用。编程上没有变动,主要体现在配置上(1) 每个 DOMAIN,除了本身的配置文件外,还必须增加一个配置文件 DMUBB,用来域之间的通讯(2) 在 UBB 配置文件中至少要增加两个组(3) 在 SERVER Section 中,要增加 1 个 DMADM 进程。至少增加一个GWADM/GWDOMAIN 进程组,GWADM,GWDOMAIN 两个进程必须成对出现。多个这样的进程必须分属不同的组。(4) 域配置文件 dmubb 中,要列出*DM_LOCAL_DOMAINS本地的域*DM_REMOTE_DOMAINS远程
6、的域*DM_LOCAL_SERVICES本地对外提供的 service*DM_REMOTE_SERVICES可访问的远程域的 service不在此列表中的 service,本地域不能访问。(5) 详细配置见 c:appssimpappdom1.2.5 DDR(数据依赖路由)(1) 只适用 VIEW,FML 两种 BUFFER 类型(2) 在配置中要增加 ROUTING Section在 SERVICES Section 指出要进行 DDR 的路由表达式名在 ROUTING Section 详细定义路由表达式(3) 路由是针对组级别的。因此一个 service 如果要使用 DDR 机制,则配置文
7、件必须存在两个以上的分属不同组的 copies(4) 具体例子是 c:appssimpappddr第 2 节 BEA TUXEDO 配置详解2.1 配置文件的 8 个组成部分及简要说明*RESOURCESsystem-wide information*MACHINESmachine specific information*GROUPSgroup specific information*SERVERSserver specific parameters (optional)*SERVICESservice specific parameters (optional)*NETGROUPSnet
8、work group-specific information (optional)*NETWORKnetwork specific information (optional)*ROUTINGrouting criteria (optional)2.2 RESOURCES SECTION*RESOURCESIPCKEY 80952UID 102GID 10PERM 0660MAXACCESSERS 40MAXSERVERS 35MAXSERVICES 75MAXCONV 10MAXGTT 20MASTER SITE1,SITE2SCANUNIT 10SANITYSCAN 12BBLQUERY
9、 30BLOCKTIME 30DBBLWAIT 6MODEL MPOPTIONS LAN,MIGRATELDBAL YNOTIFY DIPIN(1) IPCKEY 80952共享内存块的起始地址:(32769262142),标识一个应用在单机模式下命名 BBL 的消息队列。在多机模式下来命名 DBBL 的消息队列(2) UID 102 管理后台 TUXEDO 应用(启动、关闭应用)的用户 ID 号(用 id 命令查看),系统默认值是执行 tmloadcf 的用户 UID 号。(3) GID 10 管理后台 TUXEDO 应用的用户组 GID 号(用 gid 命令查看),系统默认值时执行 tml
10、oadcf 的用户 GID 号。说明:在默认 WINDOWS NT 中,UID,GID 必须指定为 0(4) PERM 0660指定 TUXEDO 应用启动时,分配给被创建的 IPC 资源的权限。用 4 位 8 进制表示。系统默认是 0666,即所有用户均可读和写。这也是 TUXEDO 最初级别的安全控制。(5) MAXACCESSERS 40 当前活动的客户端与服务进程的总和即同一时间能够访问 BB 的进程数,应该大于 license 数 + server 数(包括副本)系统核心参数 SEMAPHORE 的数目(SEMMNS)要大于这里的 MAXACCESSERS数目,而系统的 ipc 消息
11、个数(MAXMSG)要大于这里的 MAXACCESSERS 所有带REPLYQ 的 SERVER 的个数(6) MAXSERVERS 35在 BB 中所能容纳的 servers 的数目(0-32768)如果一个进程加了 MAX=10,则要给这个进程预留 10 的 server 数。(7) MAXSERVICES 75 在 BB 中所能容纳的 services 的数目(0-32768),多个 servers 要重复计算。如果启动时,某个或某些 SERVER 不能起来,并且报 NO SPACE 错误,一般调整MAXSERVICES 和 MAXSERVERS 两个参数即可。(8) MAXCONV 1
12、0Conversation 进程的最大会话数。(9) MASTER site1,site2 控制整个应用的 boot 和管理。如果在 MP 方式下,master node 允许迁移的话(migration)则必须要指定两个逻辑机器名。site1 是主服务器,site2 是备份服务器。(10) SCANUNIT 10SCANUNIT 是 BBL 在所有服务请求中定期扫描以寻找超时的交易和被阻塞调用的间隔时间(秒)。这个参数指定 BBL 扫描间隔的基本单位,它会影响在tpbegin 中指定的交易超时时间和用 BLOCKTIME 指定的请求阻塞超时时间的精确程度。SANITYSCAN,BBLQUER
13、Y,DBBLWAIT,BLOCKTIME 等参数都是 SCANUNIT的倍数,而不是实际秒数。而作为时间单位 SCANUNIT 必须是 5 的倍数,并且满足 0/bankdl1:bankdb:readwrite“BANKB2 LMID=site2 GRPNO=2OPENINFO=“TUXEDO/SQL:/bankdl2:bankdb:readwrite“一般,每台 machine 至少需要一个组,以让应用程序的 server 能够在上运行。一个组要配置的基本信息:包括 组名,逻辑机器名,组号如果要用分布式事务处理(DDP),必须要用组如果要用 DDR 功能,必须要用组。在 MP 方式,SERV
14、ER 可以在不同 machine 之间迁移的。这种迁移是组级别的。因此,要迁移必须设定组且 LMID 要设成用逗号分割的多台逻辑机器名。(1) BANKB1 组名(2) LMID 逻辑机器名(3) GRPNO 唯一的组号(4) OPENINFO 为该组通过 XA 打开 RM(通常为数据库)的初始串。2.5 SERVERS SectionDEFAULT: RESTART=Y RCMD=errrpt GRACE 3600 MAXGEN=5 REPLYQ=Y CLOPT=“-A“WSL= CLOPT=”-A t - -n /10.222.13.2 :8888” m 1 M 10 x 10 H:/10
15、.220.13.1:-p 5000 P5500 I 30TLR SRVGRP=BANKB1 SRVID=1 RQADDR=tlr1 CLOPT=“-A - -T 100 -e 1000.00“TLR SRVGRP=BANKB1 SRVID=2 RQADDR=tlr1CLOPT=“-A - -T 200 -e 1000.00“TLR SRVGRP=BANKB2 SRVID=3 RQADDR=tlr2CLOPT=“-A - -T 600 -e 1000.00“TLR SRVGRP=BANKB2 SRVID=4 RQADDR=tlr2CLOPT=“-A - -T 700 -e 1000.00“XFE
16、R SRVGRP=BANKB1 SRVID=5XFER SRVGRP=BANKB2 SRVID=6ACCT SRVGRP=BANKB1 SRVID=7ACCT SRVGRP=BANKB2 SRVID=8BAL SRVGRP=BANKB1 SRVID=9 BAL SRVGRP=BANKB2 SRVID=10BTADD SRVGRP=BANKB1 SRVID=11 BTADD SRVGRP=BANKB2 SRVID=12AUDITC SRVGRP=BANKB1 SRVID=13 CONV=Y MIN=1 MAX=10 RQADDR=“auditc“,RQPERM=0660CLOPT=“-A p 1
17、,10:2,1 o audit.out e audit.err -r“BALC SRVGRP=BANKB1 SRVID=24BALC SRVGRP=BANKB2 SRVID=25每个条目代表在应用要启动的一个服务进程。每个 SERVER 的细节信息包括:所在的组名,SERVER 的 ID 号(SRVGRP,SRVID)命令行参数 Command line options(CLOPT)决定 SERVER 启动的顺序,启动进程的数目的参数(SEQUENCE, MIN, MAX)重起信息 Restart information(ESTART, RCMD, MAXGEN, GRACE)服务进程特定的环
18、境变量文件(ENVFILE)服务进程消息队列相关信息(RQADDR, RQPERM, REPLYQ, RPPER)指定一个服务进程是会话。(CONV)(1) MSSQ(Multi Servers Single Queue)相关的参数如果没有使用 RQADDR 重命名消息队列名,则 TUXEDO 使用以下规则作为消息队列的名称:5 位组号.5 位 SERID 号(不足 5 位前面补 0)在 tmadmin 中,执行 pq 查看当前的消息队列一个会话进程要加 CONV=Y 加以标识。会话进程中不能包含非conversation 的 service。经验:SERVER ID 一般不要重复。这样便于管理工具的查看 SERVERS 的信息。RQADDR 多个进程共用一个消息队列,RQADDR 为消息队列的名称