.pc.c:
proc iname=$<$(PROCPLSFLAGS) oname=$*.c parse=full hold_cursor=no release_cursor=yes include=$(TUXINCLUDE) include=$(ORAINCLUDE)
$(CC) -I$(ORAINCLUDE) -I$(TUXINCLUDE) -c $(ORACFLAGS) $*.c
将例子文件发布成tuxedo server和service.
通过makefile将wtc_jolt.pc编译成可执行文件wtc_jolt之后.
(一)修改tuxedo ubb配置文件.
1)在 *server节点中添加:
wtc_jolt SRVGRP=GROUP SRVID=1100
其中GROUP是tuxedo应用所在的组, SRVID是该server的标识id,注意不要与其他SRVID重复,wtc_jolt是刚刚编译生成的可执行文件名字,这样该文件就被发布为tuxedo server.
2)在*service节点中添加:
fml32_test
其中fml32_test是wtc_jolt.pc文件中的函数名字,这样该函数就被发布为属于server:wtc_jolt中的一个tuxedo service.
3)编译修改之后的ubb文件:
tmloadcf ubb_filename
(二)修改tuxedo dm配置文件.
1)在*DM_LOCAL_SERVICES节点中添加:
fml32_test RNAME=\
发布fml32_test service,使该service可以被其他域中的服务调用.
2)编译修改之后的dm文件:
dmloadcf dm_filename
以上配置和开发工作完成之后tuxedo方面的工作完成,tmboot ?y启动tuxedo,如有以下提示信息,tuxedo方面的工作宣告成功.
1) exec DMADM -A :
process id=28863 ... Started.
exec GWADM -A :
process id=28864 ... Started.
exec GWTDOMAIN -A :
process id=28865 ... Started.
以上信息说明域间通信进程启动成功!
2) exec wtc_jolt -A :
process id=28950 ... Started.
以上信息说明发布的server进程启动成功!
此时键入命令tmadmin, 键入子命令psc, 如有以下提示信,说明发布service成功.
Service Name Routine Name Prog Name Grp Name ID Machine # Done Status
---------------------------------------------------------------------
fml32_test fml32_test wtc_jolt GROUP 1100 simple 0 AVAIL
进行到这里tuxedo方面所有的工作已经完成,下面进入weblogic方面的工作.
3)Weblogic方面需要进行的工作.
创建tuxedo fml(32) 数据缓冲区定义文件对应的java类文件
本文例子用到tuxedo fml32数据缓冲区,所以首先要创建该fml32数据缓冲区定义文件对应的java描述文件的类文件,将前面定义的文件student_fld.
1) 执行weblogic环境变量setWLSEnv.sh,使weblogic环境变量生效.
2) 运行: java weblogic.wtc.jatmi.mkfldclass32 student_fld生成student_fld.java描述文件.
3) 运行: javac ?d student_fld.java生成student_fld.class文件.
4) 该类文件的存放路径一定可以被weblogic识别,即保存在weblogic启动后CLASSPATH的路径中,否则在后面配置wtc resource时会失败.
配置weblogic wtc service
进入weblgoic console,mydomain->services->wtc->Configure a new WTC service…
Name属性键入: WTC_Service,create保存设置,此时WTC_Service将生成local tuxedo access等若干子项,在下面将一步一步配置这些项目.
配置local tuxedo access
mydomain->services->wtc-> WTC_Service-> Configure a new local tuxedo access point…
依次填写Access Point: Local_Wls_Domain
Access Point ID: weblogic
Network Address: //weblogicserver_ip:port
注意:
1) Access Point ID的值应该与在tuxedo dm文件中*DM_REMOTE_DOMAINS节中指定的domainid相同.
2) Network Address中指定的通信端口一定是weblogic server上未被占用的端口.
以上信息填写完成后点击create保存.
配置remote tuxedo domain
mydomain->services->wtc-> WTC_Service-> Configure a new remote tuxedo access point…
依次填写Access Point: Remote_Tuxedo_Domain
Access Point ID: billing
Local Access Point: Local_Wls_Domain
Network Address: //tuxedoserver_ip:port
注意:
1) Access Point ID的值是远程tuxedo domain 的domain_id.
2) Local Access Point的值是上面配置的local tuxedo access point的名字.
以上信息填写完成后点击create保存.
导入tuxedo services
mydomain->services->wtc-> WTC_Service->Imported services->
Configure a new imported service…
Resource Name: fml32_test
Local Access Point: Local_Wls_Domain
Remote Access Point List: Remote_Tuxedo_Domain
Remote Name: fml32_test
注意:
1) Local Access Point是上面配置的local tuxedo access point的名字.
2) Remote Access Point List是上面配置的remote tuxedo access point的名字.
3) Remote Name是可供weblogic调用的远程tuxedo发布的service名字,即在
Tuxedo dm文件的*DM_LOCAL_SERVICES节点中发布的service名字.
配置wtc resource
mydomain->services->wtc-> WTC_Service->resources->
Configure a new Resource….
FldTbl32 classes: student_fld
注意:
1)resource定义fml(32),view(32)等数据缓冲区的类文件定义,其中student_fld就是上面编译得到的类,如果源文件包含在包中那么要标明包名称在内的全路径,如:
com.bea.wtc.test.classname
2)其中fml和fml32类型的java类在这里要分别指定,不能通用,view(32)也是一样.
以上信息填写完成后点击create保存,至此wtc service全部配置完成,单击wtc_service的Target and deploy标签,选择server,apply以上应用.
编写通过wls访问tuxedo service的程序