Google

Thursday, September 30, 2004

TUXEDO_XA的使用方法

Data-dependent routing

据说tuxedo的XA要单买,并且很贵。我们的系统就不用。
DDR技术是指数据依赖路由,tuxedo自带的bankapp例子里面有应用。
它主要是说client端传来的数据在server端对其中某个field的数据进行判断,将这个client分别传给不同的service,但是这些 service同名。不过DDR只能判断view或者FML的field。具体的应用你最好去看看tuxedo的文档,很难一言两语说清楚。你可把它用于不同的用户帐户转给不同的分行处理之类的程序。

Service Security

分多次返回数据的问题

Wednesday, September 29, 2004

Performance Tools

tuxmon.sh
------------------------------------------------------------
while :
do
echo psr | tmadmin 2>&1 | grep -v TMADMIN | grep -v Inc |grep -v Tuxedo | grep -v All | grep -v IDLE
echo pq | tmadmin 2>&1 | grep -v TMADMIN | grep -v Inc |grep -v Tuxedo | grep -v All | grep -v " 0"
sleep 5
done
------------------------------------------------------------

在unix下面运行这个脚本,将每隔5秒钟显示系统中的忙服务进程和不为空的请求队列。如果一个请求队列长期不为空,则说明该请求队列对应的服务进程处理能力不够;如果一个服务进程一直为忙状态,则可能这个进程被挂死了!

正常情况下只会有少量的、不固定的忙服务进程和不为空的请求队列。

Tuesday, September 28, 2004

Running tmipcrm

To run tmipcrm, BBL must be running.
The following is an example status with solely BBL running. Note that BBL also will be shutdown after confirmation.
Looking for IPC resources in TUXCONFIG file /kenanbp/hkbppt35/appdir/tuxconfig
The following IPC recources were found:

Message Queues:
112857

Shared Memory:
41001

Semaphores:
540055
980054

Remove IPC resources (y/n)?

Monday, September 27, 2004

WSL + FireWall

Learning Path for Tuxedo learner

Re:实现与Tuxedo的第一次亲密接触--给自学Tuxedo的朋友
提交时间: 2003-3-25 23:02:40
回复 发消息

jele:没有发上来,我转贴上来。谢谢jele对本版的支持。欢迎大家谈谈自己学习tuxedo的过程和感受,让大家都来这里交流和学习,共同提高!
================================================================
实现与Tuxedo的第一次亲密接触-给自学Tuxedo的朋友

写本贴甚是犹豫,毕竟自己也还是个“棒槌”,而且这些也仅仅是自己的感觉,未必适合其他人。于是抛砖引玉,请各路大虾赐教。
其它诸如搭建一个实验平台之类的方法就不说了,我这里仅从如何看文档、看哪些文档方面说些感受。从网上搜索一番,中文的资料也有一些,但全面的却极少,大多是简单的一些介绍。对于稍微长一些的入门、方法性质的文章,觉得还是没那么细致。关键是还有两条,中文的资料无论翻译的也好自己原创的也好,几乎都没有索引,对于几个关键词如server、service、transaction等的译法也不统一,很容易令初学者迷糊。
所以我积极建议初学者能够直接查阅Tuxedo的原版文档。对于不太常看英文的网友起初觉得会有些困难,但这只是暂时的,坚持一个礼拜之后肯定就不会有什么问题,需要的只是一些耐心而已。
初学阶段,建议从下面这些文档看起。每个文档不一定非要先全部看完,几个文档之间可以交叉阅读。为方便起见文档名称已译为中文,具体下载地址请参考后面的链接。
《ATMI 介绍》,介绍BEA Tuxedo系统的基本概念和术语,C/S结构剖析;Tuxedo ATMI的基本框架,对Tuxedo所提供的“系统服务层”各service的详细解释和原理说明,消息模式机制的详细描述。第三章重点说明Tuxedo 的底层结构,包括管理工具的使用介绍,应用队列管理,事件管理,如何创建UBBCONFIG,如何实时动态管理UBB配置,如何集中管理分布式应用环境,如何管理安全机制,如何管理事务,如何启动、关闭应用,对Tuxedo系统各概念如BRIDGE、LOG、BBL、DBBL、MESSAGE等的详细描述,单节点、多节点、域的配置和管理等等。共3章138页。
《建立BEA Tuxedo应用》,包括如何配置UBBCONFIG的详细说明,UBB各参数的意义,事务、分布式事务的详细解释,TMS的说明;如何配置应用使用事务以及对应的UBB参数设置以及示例;分布式应用环境的原理、意义详细解释及示例;分布式应用环境UBB的详细参数配置;具体建立一个分布式应用的方法和步骤;工作站客户端工作原理和配置方法等等。共12章254页。
《文件格式数据描述系统处理参考》,主要查阅UBBCONFIG那部分,包含了UBB配置文件各参数的详细说明。共578页。
《实时管理Tuxedo应用》,包含如何启动、关闭一个应用以及应用启动的详细过程,如何创建配置文件、LOG等,如何启动tlisten进程等;如何实时监控应用;如何动态修改应用的各种情况的详细介绍;如何管理一个分布式应用,如负载平衡等;如何订阅各种事件;如何迁移应用;如何微调应用;Tuxedo应用的问题解决等等。共9章190页。
《ATMI应用开发指导》,通过详细的示例建立几个不同的应用。共5章166页。
《用C语言编写 Tuxedo ATMI应用》,介绍编程环境;管理类型缓冲;如何编写客户端程序;如何编写服务程序;编写请求/应答式的客户端和服务;编写对话模式的客户端和服务;编写基于事件的客户端和服务;编写全局事务;编写多线程、多上下文(或者说多关联)的ATMI应用;管理错误信息等。共11章306页。

BEA Tuxedo在线电子文档:http://e-docs.bea.com/tuxedo/tux80/index.htm
全部链接:http://e-docs.bea.com/more_tux.html
BEA Tuxedo系统信息文档:http://edocs.bea.com/tuxedo/tux80/messages/index.htm
灰狐中间件论坛:http://www.huihoo.com/cgi-bin/forum/index.php
BEA dev2dev在线中文论坛:http://dev2dev.bea.com.cn/index.jsp
BEA dev2dev在线英文论坛:http://dev2dev.bea.com/index.jsp
先说这么多,我躲板砖去也。

Hide DB password in UBBCONFIG

前几天在Oracle的网站上神游,见一老外用过这个方法,就是可以在XA配置OPENINFO的时候,直接将密码部分用星号代替,但星号数目要大于5个,这样在tmloadcf的时候提示让你输入密码,输入就OK了,大家可以试试^_^
example:
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/dbo/******+SqlNet=DBNAME+SesTm=50+MaxCur=5+LogDir=E:\PriDll\log+DbgFl=15"

For each resource manager you can define the OPENINFO and CLOSEINFO parameters. The value of each is a string that contains information needed to open or close a resource manager, respectively. Appropriate values for these parameters are supplied by RM vendors. For example, if you are using an Oracle database as your RM, you might supply the value shown in the following entry.

OPENINFO="ORACLE_XA:


Oracle_XA+Acc=P/Scott/*****+SesTm=30+LogDir=/tmp"

HA of Tuxedo

MP模式下,如果master死掉或突然断电,那备用的master可以自动切换吗?如果不能,那备用的master有什么用处呢?

tmadmin->master命令就是在备用master机器上启动DBBL进程的。按照tuxedo文档,如果master机器不能访问了,在备用master上:
1 tmadmin->pcl master1
2 tmadmin->master
3 tmadmin->migm
明天装一个linux试一下,纸上谈兵总是心里没底。嘿嘿:)其实这个课题不错,甚至可以结合操作系统的高可用性深入研究一下!

什么是备用的Master?这个叫法不准确,应该叫Slave
你可以在Slave上再起一个WSL,然后在客户端的WSNADDR中配置两个监听地址,用逗号分割,如:WSNADDR=//master:port1,//slave:port2
其中master代表Master机的主机名或IP,slave代表Slave机的主机名或IP
这样当Master机当机后,客户端会重试Slave上的WSL,整个系统不会因此都不能服务。
但这种方式会比较慢,因为客户端总是先试第一个(Master)地址和端口。

How to config routing service

DDR只用在UBBCONFIG中配置就可以了。
UBBCONFIG文件部分例子如下:
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
GROUP2
LMID=simple GRPNO=2 OPENINFO=NONE

*SERVERS
DEFAULT:
CLOPT="-A"

routserv1 SRVGRP=GROUP2 SRVID=2
routserv SRVGRP=GROUP1 SRVID=1
注意:这两个server在buildserver时都-s WRITE。就是说用DDR时,server程序名可不同,但是service名必须一样。

*SERVICES
WRITE ROUTING=MYROUTING
这里说明,service根据哪ROUTING申明来判断。

*ROUTING
MYROUTING FIELD=AA BUFTYPE="FML"
RANGES="MIN-500:GROUP1,501-MAX:GROUP2"
这里说明根据client发送FML结构中AA域的值来判断client的请求具体交给那个service处理。MIN-500:GROUP1是说从AA域的最小值到500的范围交给GROUP1对应的routserv处理。501-MAX:GROUP2是说从501到AA域的最大值的范围交给GROUP2 对应的routserv1处理。