Qt对于tuxedo客户端的封装(linux环境)

(一)介绍和安装、配置文件

最近新需求需要将之前的通信方式改为tuxedo通信,所以对tuxedo中间件进行了了解和封装。

最开始也是完全不了解tuxedo中间件作用,看了一些资料和说明之后,目前对tuxedo大概理解就是。

它已经对通信方式进行了封装,你只需要设置相关的配置项,然后通过接口组成所需报文的缓冲区,然后调用对应的发送接口,等待返回。

其中关于安装和配置、示例代码。推荐下面两个网址进行学习:

 tuxedo介绍与安装

tuxedo通讯方式解析

里面的介绍很详细,编码格式清晰。

另外想要对其补充的是关于ubb文件的修改。

如果服务器要配置远程客户端。

则需要增加WSL选项,在*MACHINE节点,增加设置MAXWSCLIENTS=n,设置最大的WSL client数。

例如:

#       (c) 2003 BEA Systems, Inc. All Rights Reserved.
#ident  "@(#) samples/atmi/simpapp/ubbsimple    $Revision: 1.7 $"

#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.

*RESOURCES
IPCKEY  100001

#Example:
#IPCKEY         123456

DOMAINID        simpapp
MASTER          simple
MAXACCESSERS    10
MAXSERVERS      5
MAXSERVICES     10
MODEL           SHM
LDBAL           N

*MACHINES
DEFAULT:
                APPDIR="/home/zhangenhao/OraHome_1/tuxedo12.1.3.0.0/simpapp"
                TUXCONFIG="/home/zhangenhao/OraHome_1/tuxedo12.1.3.0.0/simpapp/tuxconfig"
                TUXDIR="/home/zhangenhao/OraHome_1/tuxedo12.1.3.0.0"
                MAXWSCLIENTS=5
#Example:
#               APPDIR="/home/me/simpapp"
#               TUXCONFIG="/home/me/simpapp/tuxconfig"
#               TUXDIR="/usr/tuxedo"

ubuntu  LMID=simple

#Example:
#beatux         LMID=simple

*GROUPS
GROUP1
        LMID=simple     GRPNO=1 OPENINFO=NONE

*SERVERS
DEFAULT:
                CLOPT="-A"

simpserv        SRVGRP=GROUP1 SRVID=1
WSL SRVGRP=GROUP1 SRVID=2 MAXGEN=2 CLOPT="-A -- -n //127.0.0.1:8888 -m 2 -M 6 -x 10"

*SERVICES
TOUPPER
View Code

(二)编译

tuxedo的安装路径下面自带了bin文件夹,里面有给出一些工具,其中有buildservice和buildclient。用于编译服务器程序和客户端程序。这个是直接用c的方式在tuxedo目录开发应用程序的编译方法。

插一条关于域的说明

域(Domain):Tuxedo应用车呢供需的组织形式和管理单元 单域模式: SHM模式(Single Host Mode,Shared Memory),所有服务进程都运行在同一台主机的内存空间中 MP模式(Multi-Processors):tuxedo应用程序运行分布在多个物理主机上,他们之间通过网络交换数据 多域模式(Multi-Domains) 应用程序由若干个单域模块组成 域之间可以通过WAN连接 每个域独立管理 在封装到自己的库中,使用gcc等编译器时。

SHM模式      buildclient -o simpcl -f simpcl.c

MP模式       buildclient -o simpcl -w -f simpcl.c 在网络编程中要加载的库的路径(编码时请将wsc放到最前面)

MP模式  -L${TUXDIR}/lib  -lwsc -lbuft -lwsc  -lgpnet  -lfml -lfml32 -lengine  -ldl -lpthread

SHM模式:   -I$TUXDIR/include -o a.out   -L${TUXDIR}/lib  -ltux -lbuft  -lfml -lfml32 -

lengine  -ldl -lpthread

所以工作站客户端通过WSNADDR环境变量连接到WSL,再有WLS分配WSH作为请求代理来调度服务,决定客户机是哪一种类型是在链接时不是在设计时决定的,链接了TUXEDO本地库(libtux.lib)生成的就是本地客户端,链接了W/S库(libwsc.lib以及wtuxws32.lib)生成的客户端就是工作站客户端,编译时加上-w选项就可以指示编译器链接/WS库。

其中红色字体,就是Qt中增加的相关库的编译。wsc库要放在最前面。

猜你喜欢

转载自www.cnblogs.com/warmSnowFY/p/10857635.html