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

1.安装

安装很简单,在linux下重视加参数 -i console
首要就是设备景象了,在景象变量中加:

TUXDIR=/home/bea/tuxedo9.1; export TUXDIR
PATH=¥TUXDIR/bin:¥PATH; export PATH
COBCPY=:¥TUXDIR/cobinclude; export COBCPY
COBOPT="-C ANS85 -C ALIGN=8 -C NOIBMCOMP -C TRUNC=ANSI -C OSEXT=cbl"; export COBOPT
SHLIB_PATH=¥TUXDIR/lib:¥SHLIB_PATH; export SHLIB_PATH
LIBPATH=¥TUXDIR/lib:¥LIBPATH; export LIBPATH
LD_LIBRARY_PATH=¥LD_LIBRARY_PATH:¥TUXDIR/lib:¥ORACLE_HOME/lib;export LD_LIBRARY_PATH
TUXCONFIG=/home/bea/tuxedo9.1/samples/atmi/simpapp/tuxconfig;export TUXCONFIG
CLASSPATH=¥CLASSPATH:TUXDIR/udataobj/jolt;export CLASSPATH
WEBJAVADIR=¥TUXDIR/udataobj/webgui/java;export WEBJAVADIR
FLDTBLDIR32=¥TUXDIR/samples/atmi/simpapp;export FLDTBLDIR32;
FIELDTBLS32=tt.fml;export FIELDTBLS32;
APPDIR=¥TUXDIR/samples/atmi/simpapp;export APPDIR
export NLS_LANG=American_America.ZHS16GBK(这个须要的,不然TMS可能启动不起来)


2.常用号令

编译办事器:buildserver -f simpserv.c  -o simpserv -s TOUPPER
编译客户端:buildclient [-v] –o executable –f first-file [-f first-file] [-l last-file](没有效过,我是用JAVA写客户端的)
载入设备文件:tmloadcf ubbsimp
启动办事:tmboot -y
停止办事:tmshutdown -y
经管办事:tmadmin

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="/home/bea/tuxedo9.1/samples/atmi/simpapp"
TUXCONFIG="/home/bea/tuxedo9.1/samples/atmi/simpapp/tuxconfig"
TUXDIR="/home/bea/tuxedo9.1"
MAXWSCLIENTS=50
TLOGDEVICE="/home/bea/TLOG"(这行以及下面三行是设备连接ORACLE数据库时才加上去的)
TLOGNAME=TLOG
TLOGSIZE=200
devsvr  LMID=simple
(机械名,很首要)
*GROUPS
GROUP1
LMID=simple     GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/yn_paygo_1_1/yn_paygo_1_1+SqlNet=orcl_20+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA9i"   TMSCOUNT=2(这行也是连数据库时才加的,不然本来是OPENINFO=NONE)
WSGRP LMID=simple GRPNO=4 OPENINFO=NONE
JSLGRP LMID=simple GRPNO=5 OPENINFO=NONE
JREPGRP LMID=simple GRPNO=6 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv        SRVGRP=GROUP1 SRVID=1
JSL     SRVGRP=JSLGRP SRVID=5 CLOPT="-A -- -n //192.168.2.5:7777 -m 5 -M 10 -x 5"
JREPSVR SRVGRP=JREPGRP SRVID=6 CLOPT="-A -- -W -P /home/bea/tuxedo9.1/samples/atmi/simpapp/jrepository"
WSL     SRVGRP=WSGRP SRVID=8888
CLOPT="-A -- -n //192.168.2.5:8888 -x 5 -m 5  -M 10"
*SERVICES
DEFAULT: LOAD=50 AUTOTRAN=Y TRANTIME=30
TOUPPER  PRIO=50     ROUTING=INSTR
*ROUTING
INSTR   FIELD=INSTR
BUFTYPE="FML32"
RANGES="*:GROUP1"(这项目组是把参数改成FML32缓冲区时改的,不然只要在上方SERVICES中写TOUPPER,其他就不须要了)


4.批改办事的参数

可以用JREPSVR增长办事,批改办事的参数等:

JREPSVR is Jolt Repository Server


定义如: 

 JREPSVR SRVGRP=JREPGRP SRVID=6 CLOPT="-A -- -W -P /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权限

5.连接oracle
我筹办采取XA体式格式接见oracle,不消XA编译接见oracle的体式格式,据说可以在buildserver 的参数中,增长“-l -lclntsh”,景象变量LIBPATH里面要要有oracle的lib目次的声明,我没有试过,不知道是否可以。

我介绍的是XA体式格式:

1).ORACLE方面批改

必必要装oracle客户端中的PROC *C/C++模块,因为tuxedo办事法度中连接oracle是用嵌入SQL实现的,也有其他体式格式的,不熟悉了。并且这个模块在oralce的办事端一般是没有的,不是默认安装的。

@¥ORACLE_HOME/rdbms/admin/xaview.sql
grant on v¥xatrans¥ to public with grant option;
grant on v¥pending_xatrans¥ to public with grant option;
grant any table to public;


2).TUXDO方面批改
批改¥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了。
   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 )


3).设备UBBCONFIG
在*MACHINES节中增长

TLOGDEVICE="/home/cuiying/temp/simpdb/TLOG"
TLOGNAME=TLOG
TLOGSIZE=200


在*GROUPS节中增长

OPENINFO="Oracle_XA:Oracle_XA+Acc=P/yn_paygo_1_1/yn_paygo_1_1+SqlNet=orcl_20+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA9i"   TMSCOUNT=2


4).TUXDO下的
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


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目次下去看看

6.应用FML缓冲区
tt.fml文件
mkfldhdr或mkfldhdr32号令进行编译生成tt.fml.h文件,在.c文件中include该.h文件。

7.编译过程

把办事法度.c文件改成.pc文件

proc simpserv.pc --产生预编译后的.c文件,这是因为.pc文件中有嵌入SQL语句,须要进行预编译

buildserver -f simpserv.c  -o simpserv -r Oracle_XA -s TOUPPER


若是有多个c文件:buildserver -f  "simpserv.c a.c b.c"  -o simpserv -r Oracle_XA -s TOUPPER

头文件不须要写在号令行中,因为.c文件中都包含了。

若是tmloadcf也履行过了,就可以履行tmboot了,客户端就可以调用了。

8.调用过程发明错误

LIBTUX_CAT:681: ERROR: Failure to create message queue
WSNAT_CAT:1088: ERROR: tpinit() failed, tperrno = 7
WSNAT_CAT:1088: ERROR: tpinit() failed, tperrno = 7
WSNAT_CAT:1088: ERROR: tpinit() failed, tperrno = 7


tmloadcf -c ubbcfg查看建议设备

Ipc sizing (minimum /T values only) ...
Fixed Minimums Per Processor
SHMMIN: 1
SHMALL: 1
SEMMAP: SEMMNI
Variable Minimums Per Processor
SEMUME, A SHMMAX
SEMMNU, * *
Node SEMMNS SEMMSL SEMMSL SEMMNI MSGMNI MSGMAP SHMSEG
------ ------ ------ ------ ------ ------ ------ ------
shx_xd_tuxedo1 495 62 490 A + 1 35 70 1759K
where 1 <= A <= 8.


sysctl -a 查看体系信息

kernel.msgmnb = 16384
kernel.msgmni = 16 #too small
kernel.msgmax = 8192
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 33554432


批改体系参数

/etc/sysctl.conf


增长下面解决

kernel.msgmni = 50
kernel.msgmap = 100


9.开辟过程中发明的新鲜题目

本身分派出来的空间:

char* str=(char *)malloc(1024);
sndBuf =  (FBFR32 *)tpalloc("FML32",NULL,1024);


居然不克不及开释:

free(str);
tpfree((char *)rcvBuf);


若是开释了就失足了,新鲜。有待解决。

--转自搜狗




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