没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
标题:通过 wtc、jolt 进行 tuxedo 与 weblogic 通信开发
[评论]
作者:李振嘉(dev2dev ID:lizhenjia)
(一)摘要
bea tuxedo 与 weblogic 作为业界优秀的交易与应用服务器中间件产品,在电信,银行,金融等领域广泛应用,
通常由 tuxedo 处理系统的核心业务,weblogic 将业务应用扩展到 internet 平台,实现电子商务,由
weblogic 调用 tuxedo 的服务或者由 tuxedo 的服务调用通过 weblogic 部署的 ejb,所以 tuxedo 与 weblogic
之间的互连通信会经常遇到,本文通过 2 个例子介绍 tuxedo 与 weblogic 通信的配置与开发,两个例子分别
通过 wtc(weblogic tuxedo connector)、jolt 实现 weblogic 与 tuxedo 通信的配置与开发.本文所有例子
程序与配置均在 Sun Solaris,weblogic8.1,tuxedo8.0 平台上进行,如在 windows 等其他平台开发配置方法
大同小异;另外为了减少篇幅文中涉及的例子代码没有全部罗列,只选择粘贴了关键部分的代码.
(二)通过 wtc 进行 tuxedo 与 weblogic 通信的配置与开发
1)域间通信以及 wtc 介绍
Tuxedo 的域间通信进程介绍
Wtc 是 tuxedo 通过域间通信实现的,所以需要 tuxedo 启动用于域间通信的进程,介绍 wtc 之前先介绍以下
几个域间通信的进程.
*DMADM(DOMAIN ADMINISTRATOR SERVER)
管理域的 server,在运行时管理 BDMCONFIG,对已登记的 gateway group 提供支持,在 tuxedo 系统中,只能有
一个 DMADM 进程,且不能对它采用 MSSQ,不能有 REPLYQ.
*GWADM(GATEWAY ADMINISTRATOR SERVER)
管理域的域网关进程,在运行时可以对某一组域网关进行管理,主要从 DMADM 那里取得域的配置信息,并对
域网管进程及跨越域的全局事务的 LOG 文件进行管理.
*GWTDOMIN(GATEWAY PROCESS)
处理域之前的互操作,使本地域和调用远程域可以互相调用彼此的 service,其中 GMADM 和 GWTDOMAIN
必须在一个组中,一个 tuxedo 应用可以有多个 GWADM,GWTDOMAIN 对,一个组只能有一个
GMADM,GWTDOMAIN 对,但一个 tuxedo 应用只能有一个 DMADM,DMADM 可以在如何一个组中,一个本
地域可以和多个远程域实现互操作.
Wtc 介绍
Wtc(weblogic tuxedo connector)是 weblogic server 的一个组成部分,可以实现 tuxedo 和 weblogic 之间的应
用集成,为 weblogic 和 tuxedo 提供了双向的互操作性,即 tuxedo service 可以调用在 weblogic 上部署的 ejb,在
weblogic 上部署的 ejb 可以调用 tuxedo 的 service.
2)Tuxedo 方面需要进行的工作
修改并编译 ubb 文件
1) 在 ubb 文件*GROUPS 节点中增加如下 3 个 tuxedo Group:
DMGroup
LMID=simple GRPNO=2 OPENINFO=NONE
DMGroup
LMID=simple GRPNO=3 OPENINFO=NONE
WSGroup
LMID=simple GRPNO=4 OPENINFO=NONE
2)在 ubb 文件*SERVERS 节点中增加如下 3 个 tuxedo server:
DMADM
SRVGRP=DMGroup SRVID=22230
GWADM
SRVGRP=GWGroup SRVID=22340
GWTDOMAIN
SRVGRP=GWGroup SRVID=22350
其中 GWADM 和 GWTDOMAIN 应该在同一个组中,保存 ubb 文件并按如下完成编译:
tmloadcf ubb_filename
之后 tmboot-y 启动 tuxedo server,如果启动以上 3 个 server 时报类似 Application initialization failure 的启
动失败的提示信息,那么注意查看 tuxedo 的 ULOG 日志文件,通过日志的提示排除错误,这里常见的一个错误
是没有在系统环境变量中定义
BDMCONFIG 或者指定该文件路径错误.(关于环境变量的修改见下文).
增加并编译 dm 文件
dm 文件是 tuxedo 进行域间通信时的配置文件,tuxedo 与 weblogic 通过 wtc 通信是通过域间通信实现的,
所以 dm 文件需要创建,dm 文件通常可以存放在 ubb 文件所在的路径下.
Dm 需要做的配置如下:
*DM_LOCAL_DOMAINS
tuxedo_domain GWGRP=GWGroup
TYPE=TDOMAIN
DOMAINID=billing
DMTLOGDEV="/../../log/DLOG"
*DM_REMOTE_DOMAINS
weblogic_domain TYPE=TDOMAIN
DOMAINID=weblogic
*DM_TDOMAIN
tuxedo_domain NWADDR="//tuxedoserver_domain_ip:port
NWDEVICE="../../bin"
weblogic_domain NWADDR="//weblogicserver_domain_ip:port
*DM_REMOTE_SERVICES
*DM_LOCAL_SERVICES
fml32_test RNAME="fml32_test"
*DM_LOCAL_DOMAINS 定义本地 tuxedo 域的信息,分别定义该域所在的组,域类型,域的唯一标识,域间通信时
日志的全路径,其中 GWGRP, DOMAINID 的值要与 ubb 文件中的定义匹配.
*DM_REMOTE_DOMAINS 定义远程 weblogic 域的信息,分别定义域类型,域的唯一性标识,该 id 标识需要与在
weblogic server 中的配置名称吻合,否则通信将会失败,关于在 weblogic 中的相应配置下文将作详细描述.
*DM_TDOMAIN 定义在 DM_LOCAL_DOMAIN 中已经说明的本地域和在 DM_REMOTE_DOMAINS 中已经说明的远程域
的具体的通信 ip 地址以及通信端口,其中 NWDEVICE 指定 tuxedo 发布的 server 通信进程文件所在的路径.
*DM_REMOTE_SERVICES 定义当前域需要调用远程域的服务名称,本例中的服务作为被调用服务,所以此处可
以为空.
*DM_LOCAL_SERVICES 定义当前域对外发布的 tuxedo service 名称,可以通过 RNAME 重新命名 service.
在以上 NWADDR 中指定的端口一定不能是已经被占用的端口,否则通信将失败,之前应该用 netstat 命令查询
得到空闲的端口.
保存 dm 文件并按如下完成编译:
dmloadcf dm_filename
修改系统环境变量
在系统环境变量中增加:
export BDMCONFIG=$HOME/your_path/bdmconfig
其中 bdmconfig 文件为 dmloadcf dm_filename 编译之后生成的 2 进制配置文件.
编写基于 tuxedo 的程序以及 makefile.
说明
Tuxedo 支持 string,carry,view,view32,fml,fml32 等数据缓冲区,其中 fml32 类型相对复杂且比较常用,本例
子采用 fml32 数据缓冲区开发,首先需要编写 fml32 数据缓冲区的定义文件,包括 fml32 数据缓冲区各个字段
的名称已经长度等等,并将该文件生成相应的 c 语言.h 头文件,在应用程序中需要包含该头文件,这样应用程
序中即可以使用 fml32 数据缓冲区, fml32 类型通常在开发数据库应用程序的时候比较常用,以下的例子完
成的功能是:根据输入的学生学号从数据库中查询得到该学生的姓名和年龄,其实输入和输出参数采用 fml32
类型.
编写并编译 fml32 数据缓冲区定义文件
定义 fml32 数据缓冲区文件 student_fld 文件如下:
*base 10000
# name number type flags comments
剩余42页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功