[转帖]TUXEDO 服务架构过程_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4056 | 回复: 0   主题: [转帖]TUXEDO 服务架构过程        下一篇 
mengyuanye
注册用户
等级:少校
经验:1413
发帖:108
精华:7
注册:2012-11-14
状态:离线
发送短消息息给mengyuanye 加好友    发送短消息息给mengyuanye 发消息
发表于: IP:您无权察看 2012-11-14 16:28:34 | [全部帖] [楼主帖] 楼主

前言

       通过一段时间的工作,使用了在Unix环境下的Tuxedo服务,对Tuxedo的架构与机制有了初步的了解。为了加深了解,掌握Tuxedo中间件的开发,特地在Windows操作系统环境下安装了一次Tuxedo,并且成功启动了服务。将全过程中遇到的问题和积累的经验记录如下。

安装准备

     首先要明确安装Tuxedo的目的,否则费尽艰辛发现对自己毫无用处,就等于浪费时间。TuxedoBea公司开发的在联机事务处理(OLTP)方面十分著名的中间件软件。据查,全世界40家最大的电信企业,有38家是采用Tuxedo作为交易中间件来使用的,足见其在行业中之地位。学习并掌握Tuxedo的架构,对于研究分布式计算,有着十分重要的参考价值;开发就更不用说了,电信行业及其附属公司招聘有经验开发人员时候,通常将掌握Tuxedo中间件的开发作为首要资历条件。

     言归正传,从Bea的官方网站下载Tuxedo8.1以及相应的4-6个月的评估License,通常在下载网页最后可以得到。

     操作系统要求为WinNT2000,虽然没有说明XP,但因为XP也是基于NT核心的,所以XP也是可以正常安装和运行的,我在Win2000p)与XP下都成功启动了服务,足以说明这一点。

     硬盘内存的要求,在这个时代来说,基本上算是落伍的了。

安装以及配置

     如果怕麻烦,运行安装文件,选择Full Setup,跳过加密传输设置,一直到安装结束。

环境变量

     安装Tuxedo过程虽然很爽,但还没完,接下来的工作就是配置环境变量。安装结束,我们可以在本机的环境变量中看到自动配置好的TUXDIR,貌似TUXDIR=C:\BEA\Tuxedo8.1。这是不够的,系统还需要加上几项才行。

[补充:环境变量配置方法]

     右键点击我的电脑-属性-高级-环境变量,可以看到分为系统和用户的环境变量。联想一下不难推断,系统的表示每次所有用户的设置,而用户的则只是在对应的用户登陆后才生成个性化的环境变量。按照自己需要,可以添加各种环境变量。但注意,在这里设置的,并不能马上生效,因为这是系统启动时候参照的一个表而已,设置时候系统是已经启动了的。有过Unix下配置环境变量的朋友肯定会想到.Profile文件,和这里就是差不多一样的概念。如果想要马上生效,那么可以象Unixexport那样,用SetDos界面下操作,比如Set TUXAPPC:\TUXAPP。设置成功之后,可以用echo %TUXAPP% 查看是否设置成功。

还需要为系统增加的环境变量有:

TUXCONFIG=e:\tuxapp\tuxconfig
TUXDIR=C:\bea\tuxedo8.1
APPDIR=e:\tuxapp


这些环境变量将来要与配置文件中的一致。

为了让系统识别Tuxedo的指令,将PATH中增加%TUXDIR%\bin。另外,装了VC的朋友,检查VC的编译器CL路径是否被包含在PATH里,还有INCLUDELIB环境变量,这些都会影响CL编译Tuxedo服务。具体的问题,需要在调试中发现,针对不同的编译工具进行变动。

Tuxconfig配置文件

     这个文件是最重要的Tuxedo配置文件,几乎大部分的服务参数都和这个有关。TUXCONFIG文件必须由Tuxedotmloadcf命令来执行生成,是一个二进制文件,而来源则是一个特定内容的文本文件,我所配置的ubb文件内容如下:

*RESOURCES
IPCKEY 211111
MASTER "xj"
DOMAINID modelapp
MAXACCESSERS 100
MODEL SHM
LDBAL Y
SCANUNIT 10
SANITYSCAN 12
BLOCKTIME 6
NOTIFY DIPIN
MAXCONV 10
*MACHINES
"POSONXIAOJ" LMID="xj"
TUXCONFIG="e:\tuxapp\tuxconfig"
TUXDIR="C:\bea\tuxedo8.1"
APPDIR="e:\tuxapp"
TLOGSIZE=100
MAXWSCLIENTS=5
CMPLIMIT="MAXLONG,MAXLONG"
NETLOAD=0
SPINCOUNT=0
MAXACLCACHE=100
*GROUPS
GROUP_ORA LMID=xj GRPNO=1
*SERVERS
DEFAULT:
CLOPT="-A"
WSL SRVGRP=GROUP_ORA SRVID=200
CLOPT="-A -t -- -n //192.168.2.101:4050 -m 10 -M 20 -x 5"
gg SRVGRP=GROUP_ORA SRVID=1 MIN=1 MAX=1
RQADDR="foreground" REPLYQ=Y
*SERVICES


    很多内容都有缺省值,因此并不要求都填写,红色部分是Tuxedo官方文档必须填写的内容。其他的配置相信网上很容易就搜索到无数,我只是挑几个相对不好理解的配置说明一下。

     LMID是机器的逻辑名,可以是任意的字符,官方要求是:用户定义的字符串,必须要与*machines一节中一致。因此,对应几个LMID都任意设置成MASTER后字符相同就行了。

     TUXCONFIG是指明配置文件的,不要以为是指路径,如果指定成了目录,在后面的编译中就会出错。而且要求参数最大长度不能超过64个字符,所以文件目录的深度不能太深。

*MACHINES
"XXX" LMID="xj"


这一节中的XXX,一定要大写,计算机名在DOS下用echo %COMPUTERNAME% 可以查到。

服务程序的编译


     在配置好ubb配置文本文件之后,确保在访问的路径之内,执行tmloadcf –y ubb

       这样,系统就会生成Tuxedo的配置文件。

     过程中可能会因为配置文件语法错误,而有相应的提示。参照例子以及自己机器的配置,并且对照Tuxedo的参数说明,修改自己的配置文件或者环境变量一般都能解决问题。

     当无任何编译错误,就可以开始编译服务程序了。

给个最简单的例子:

#include <stdio.h>
#include "atmi.h"
void TOUPPER(TPSVCINFO *rqst)
{
      char a[10] = "xxUU";
      tpreturn(TPSUCCESS,0,a,0L,0);
}


   保存为gg.c

     然后,在命令行下执行buildserver –o gg.exe –f gg.c –s TOUPPER

-o 输出

-f 要编译的源文件,我尝试过编译gg.cpp,仅修改后缀,编译无法通过。

-s 源程序中不同的服务函数名

相信经过一些调试,服务程序最终将编译成功。(因为都已调试通过)

完成上面这些配置和编译之后,就可以来享受成功的喜悦了。

tmboot -y
….


一堆成功信息

tmadmin


进入管理界面

psr


看到自己的gg服务,以及wsl

psc


看到自己的TOUPPER服务

pq


看到自己设置的消息队列名

q
….


Quit当然是退出了

Tmshutdown -y


将服务全部关闭

仍然有很多没有说明的,但在这个基础上,就可以进行下一步开发了。

今后开发完再补充更为详细的资料。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论