(一)介绍和安装、配置文件
最近新需求需要将之前的通信方式改为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
(二)编译
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库要放在最前面。