开始的时候用的tuxedo81_win版本,由于TUXEDO 8.1 Listener on Port 3050无法启动追查原因,多半是由于版本和系统不兼容。
故此去orcal官网下载(之前不想下载是因为需要orcal账号,懒得申请,最后还是要~。~),下载的版本为最新tuxedo121300_64_win_2k8_x86_VS2010。
环境:
win7系统
vs2008
安装过程截图
初始检查
指定安装目录
下面的安装过程大家可以自行设置,直接下一步,下一步,done。ok,其实安装是挺简单的。
安装完成后,打开我的电脑-管理-服务 ,按T键 定位到 TUXEDO 12.1.3.0.0_VS2010 Listener on Port 3050 服务,查看其状态为 已启动,则可。
安装完成后:(文中的路径可以自行对应,我想你应该可以知道怎么对应的。哈哈)
添加texudo 系统环境变量
TUXDIR = G:\L-lib\tuxedo\bea1213\tuxedo12.1.3.0.0_VS2010(安装位置\tuxedo12.1.3.0.0_VS2010)
APPDIR = F:\My-app\atuxedo\dbread (该目录为应用目录,用户可以自己定义一个目录,需要运行程序的目录dbread 是个文件夹)
TUXCONFIG = F:\My-app\atuxedo\dbread\tuxconfig (同上描述,tuxconfig是自己编写的运行程序配置文件编译后生成的文件名,tuxconfig文件名可以随意修改)
WSNADDR = //192.168.1.168:23232
PATH (window下tuxedo安装成功后已经自动配置好了)
安装成功,环境配置完成后,开始运行示例。
运行简单示例,文件位置:G:\L-lib\tuxedo\bea1213\tuxedo12.1.3.0.0_VS2010\samples\atmi\simpapp
1. 只需copy,simpcl.c、simpserv.c和ubbsimple到配置的APPDIR路径下F:\My-app\atuxedo\dbread
2.修改配置文件ubbsimple,其实这个名字可以随意修改
# (c) 2003 BEA Systems, Inc. All Rights Reserved.
#ident "@(#) samples/atmi/simpapp/ubbsimple$Revision: 1.5 $"
#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.
*RESOURCES
IPCKEY 123456
#Example:
#IPCKEY 123456
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="F:\My-app\atuxedo\dbread"
TUXCONFIG="F:\My-app\atuxedo\dbread\tuxconfig"
TUXDIR="G:\L-lib\tuxedo\bea1213\tuxedo12.1.3.0.0_VS2010"
#Example:
# APPDIR="/home/me/simpapp"
# TUXCONFIG="/home/me/simpapp/tuxconfig"
# TUXDIR="/usr/tuxedo"
"DREAM-PC" LMID=simple
#Example:
#beatux LMID=simple
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER
其中需要注意的是:
<>中的内容必须修改掉。
IPCKEY暂时可以随意命名(写此文时本人还未明白此参数的作用)
"DREAM-PC" 命名加上双引号,为计算机名字,可以在cmd下用echo %COMPUTERNAME%查看。
否则会出错CMDTUX_CAT:1615: ERROR: Identifier or number must be followed by white space or punctuation
CMDTUX_CAT:866: ERROR: tmloadcf: Severe error found. Stop syntax checking.错误。
*MACHINES类似TUXDIR的内容必须与环境变量设置一致。
*SERVERS中的simpserv名子必须是你服务端程序编译后的EXE文件名。
*SERVICES的TOUPPER是你服务端程序编译时-s制定的服务名。
3.修改完配置文件,启动开始程序里面找到Microsoft Visual Studio 2008-Visual Studio Tools-Visual Studio 2008 x64 兼容工具命令提示
其中最开始的时候,我使用Visual Studio 2008 命令提示,发现库连接错误,找不到库,后来发现安装的是64位的,应该运行64的命令窗口
顺便怕兼容有问题,就开的兼容版本。
在命令窗口下,进入APPDIR目录,
a,编译config文件
tmloadcf -y ubbsimple
生成tuxconfig 二进制文件
b,编译client
buildclient -o simpcl -f simpcl.c -v
生成simpcl.exe
c,编译server
buildserver -o simpserv -f simpserv.c -s TOUPPER -v
生成simpserv.exe
d,启动tuxedo
F:\My-app\atuxedo\dbread>tmboot -y
Booting all admin and server processes in F:\My-app\atuxedo\dbread\tuxconfig
INFO: Oracle Tuxedo, Version 12.1.3.0.0_VS2010, 64-bit, Patch Level (none)
Booting admin processes ...
exec BBL -A :
process id=8072 ... Started.
Booting server processes ...
exec simpserv -A :
process id=7420 ... Started.
2 processes started.
e,测试服务
F:\My-app\atuxedo\dbread>simpcl "hello,wenwen"
Returned string is: HELLO,WENWEN
F:\My-app\atuxedo\dbread>simpcl "sfie;;lkfsoekcjls"
Returned string is: SFIE;;LKFSOEKCJLS
哈哈,成功了,下面列举下遇到的错误,问题及解决办法。
大部分是卡在配置。
TUXNT_CAT:101:ERROR:You do not have a valid TUXEDO SDK license
出现这个错误,主要原因是License问题,需要在G:\L-lib\tuxedo\bea1213\tuxedo12.1.3.0.0_VS2010\udataobj目录下把得到的证书lic.txt
复制过来,若是不行看看lic.txt中把TYPE=RTK 修改成TYPE=SDK 试一试。若是不行那你就得去搞到一个有效的License了。网上可以搜到有效的,祝你好运。
Unable to initialize public key subsystem 更换:IPCKEY
CMDTUX_CAT:1098: ERROR: Can’t create
关于Window 2K 下的终端服务(Terminal Services )不能用于远程控制tuxedo 的Boot 和tmadmin 操作,否则会出现Can’t create queue 错误! 若出现这种问题,请直接到目标机器上操作或者通过别的远程控制软件实现,例如PCAnyWhere,Telnet 等。此问题的原因可能是Windows 提供的远程服务有某些方面的限制。 或者可以 run – > mstsc /admin 通过这种方式来进行远程登录
CMDTUX_CAT:4382: ERROR: You do not have a valid SDK license
需要将lic.txe 中的TYPE=RTK 改为TYPE=SDK
NLS:4: Cannot open message catalog CMDTUX_CAT, set 2, num 4323; check TUXDIR=C:\bea\tuxedo8.1, LANG=Chinese People's Republic of China.936
需要配制环境变量:NLSPATH=C:\bea\tuxedo8.1\locale\C
- CMDTUX_CAT:868: ERROR: tmloadcf cannot run on a non-master node
解决方法:ubbsimple 文件中将<Machine-name>改为你的机器名,在windows下使用
echo %computername% 显示机器名,在unix下使用 uname -n 。注意在windows 下,通过hostname 或者 %COMPUTERNAME% 查出来的机器名不论是大小写,在ubb中设置成大写.
若是创建队列失败的错误,可能原因是服务启动失败,安装版本与当前系统不兼容。其他原因暂时不知。
这是到目前为止我能分享出来的,与大家一起进步。