[原创]Tuxedo /Q应用的构建和部署_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3787 | 回复: 0   主题: [原创]Tuxedo /Q应用的构建和部署        下一篇 
xiuwen.zhao
高级会员
等级:上尉
经验:668
发帖:38
精华:0
注册:1970-1-1
状态:离线
发送短消息息给xiuwen.zhao 加好友    发送短消息息给xiuwen.zhao 发消息
发表于: IP:您无权察看 2014-9-17 18:18:21 | [全部帖] [楼主帖] 楼主

1.Tuxedo /Q组件概述

Tuxedo /Q组件可以允许消息以队列的形式储存到硬盘或内存中以便之后的处理和调用。同时ATMI提供了一些从队列读取、添加消息的函数。回复消息和错误消息可以暂时保存在队列中,稍后再返回给客户端程序。服务器可以接受出队列和入队列消息的请求,对出队列的消息进行处理,并且可以管理相关队列的事务。

队列空间是一种资源。Tuxedo为访问队列空间提供了符合XA规范的资源管理接口。这些接口可以保证消息入队列和取队列操作在一个两阶段提交的事务中完成。下图表示了队列服务的调用过程。

北京联动北方科技有限公司

2.Tuxedo /Q实例部署

下面通过一个实例来演示一下/Q的配置和部署方法。这个实例位于tuxedo根目录/samples/atmi/qsample文件夹内。

第一步:由于要修改qsample的配置文件, 我们输入下面命令将qsample复制到tuxedo根目录下(可以是任意目录)。

cd samples/atmi
cp -r qsample ../../


第二步:进入qsample文件夹内,输入ls查看所有文件,文件列表如下。

北京联动北方科技有限公司

README:描述该应用如何配置和运行的文件。

setenv:设置环境变量的脚本。

crlog:创建TLOG文件脚本。

crque:定义应用的队列空间和队列的脚本。

makefile:创建可执行文件的makefile。

client.c:客户端程序的源代码。

server.c:服务端程序的源代码。

ubb.sample:应用的配置文件。

runsample:一个用来构建和运行应用的脚本。

rmipc:移除队列空间的IPC资源的脚本。

第三步:在了解了各个文件的作用后,下面来编辑配置文件。由于整个配置文件的结构已经给你,我们只需要修改setenv脚本,该脚本会自动修改配置文件。打开setenv文件,将TUXDIR后的内容替换为当前机器tuxedo的安装目录。

TUXDIR=/usr/local/oracle/tuxedo11gR1; export TUXDIR


第四步:输入如下命令,运行runsample。

./runsample


运行该脚本过程中,屏幕上会出现一系列的信息,其中的如下内容就是应用的运行结果。该应用主要是将一串小写字符串转换为大写形式。

北京联动北方科技有限公司

3.setenv和runsample的具体实现

从上面的内容可以看到,我们只是简单修改setenv然后调用runsample脚本就完成了整个程序的部署和运行。为了更深入理解/Q应用的实现,我们来分析一下这些脚本为我们干了哪些事情。下面是setenv的主要内容。

北京联动北方科技有限公司

从setenv的源码可以看出,setenv主要为我们配置好了TUXDIR、APPDIR、PATHLD_LIBRARY_PATH、SHLIB_PATH和LIBPATH等一些环境变量。

下面是runsample脚本的主要内容:

# (c) 2003 BEA Systems, Inc. All Rights Reserved.
#Copyright (c) 1992 Unix System Laboratories, Inc.
#All rights reserved
#ident "@(#) samples/atmi/qsample/runsample $Revision: 1.5 $"
#
#set the environment
. ./setenv
chmod +w ubb.sample
uname="`uname -n`"
ed ubb.sample<<!
g;<uname -n>;s;;${uname};
g;<full path of TUXEDO software>;s;;${TUXDIR};
g;<full path of APPDIR>;s;;${APPDIR};
w
q
!
#build the client and server
make client server
#create the tuxconfig file
tmloadcf -y ubb.sample
#create the TLOG
./crlog
#create the QUE
./crque
#boot the application
tmboot -y
#run the client
client
#shutdown the application
tmshutdown -y
#remove the client and server
make clean
#remove the QUE ipc resources
./rmipc
#remove all files created
rm tuxconfig QUE stdout stderr TLOG ULOG*
"runsample" 37L, 782C


通过分析上面的源代码,我们可以很清楚地看到整个应用的构建和部署过程。

1.调用setenv脚本设置环境变量,并将相应的环境变量写入ubb.sample配置文件中。

2.编译客户端和服务端的程序。

3.调用tmloadcf -y ubb.sample命令生成tuxconfig文件。

4.创建相关的日志文件。

5.创建队列空间并分配相应的资源。

6.启动服务器并调用客户端程序,完成应用的运行。

7.关闭服务器,完成一些清理和资源回收工作。

针对具体的每一步,大家可以去查看相关的脚本。这些脚本的实现,其实都是通过向qmadmin发送指令完成的。例如下面的crlog脚本,就是向qmadmin发送创建日志的请求而已。

北京联动北方科技有限公司




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