第10章:TUXEDO的可靠消息队列

2019-09-02 17:12

第七章:TUXEDO的可靠消息队列/Q

10.1 /Q介绍

/Q是Tuxedo系统的一个重要组成部分,它提供了一种可靠队列机制,允许消息按某种排队规则存储到磁盘上或内存中,然后再转发给其它进程。这种存储转发机制可以保证在两个通信实体之间传递的消息不丢失、不重传,从而保证交易的完整性。TUXEDO /Q提供管理工具和编程接口用于对/Q进行管理和操作。

名词解释: /Q

指TUXEDO的可靠消息队列,是TUXEDO产品的一个组成部分,功能类似于IBM的 MQSeries,BEA MessageQ等其他消息中间件。

MESSAGE 消息,存储在QUEUE中的数据称为消息(MESSAGE),一个QUEUE中可以有多条消息.对QUEUE的操作是以消息为单位的,即以次只能发送或取出一条消息。 QUEUE

队列,用于保存发送来的消息,以便随后的处理,一个QUEUE中可以同时存在多条消息。 QUEUE SPACE

队列空间,是QUEUE的一个集合,以便进行统一管理,一个QUEUE SPACE中可包含多个QUEUE。 TMQUEUE

TUXEDO带的一个SERVER,接收用tpenqueue()发送来的消息.并把他们保存到相应的 QUEUE中,接受并处理tpdequeue()的请求。

TMQFORWARD

TUXEDO带的一个SERVER,从一个QUEUE中取数据,然后调用一个与该QUEUE同名的 SERVICE进行处理,并把该SERVICE返回的结果发送到另一个QUEUE中。 TMS_QM

是与/Q资源管理器对应的TMS(TRANSACTION MANAGER SERVER),它使对

消息的发送与取出操作可以以事务的方式进行.并使/Q资源管理器可参与全局事务。

/Q的组成 MESSAGE QUEUE

QUEUE SPACE /Q系统 MESSAGE QUEUE QUEUE SPACE

/Q的使用方式

图中左侧为TUXEDO客户端,右侧为TUXEDO事务管理器/T,中间为TUXEDO可靠消息队列系统/Q。右侧事务管理器/T提供了两个服务:SERVICE1和SERVICE2。在消息队列系统/Q中,一个QUEUE SPACE对应一个GROUP, TMS_QM是/Q的事务管理进程,在该GROUP中要进行定义,该QUEUE SPACE中定义了有四个消息队列,SERVICE1和SERVICE2分别是对应于同名的两个服务(SERVICE)的队列(这是一种习惯的命名规则,客户机若请求服务器中的SERVICE1服务,就把请求消息放入SERVICE1队列中)。SERVICE1的处理结果放到CLIENT_RPLY1中,如果SERVICE1,SERVICE2在处理过程中发生错误, 把错误信息保存到队列FAILUREQ中。

/Q有两种使用方式,我们称之为基本模式和转发模式 1. 基本模式:

只用到TMQUEUE,不使用TMQFORWARD,不调用SERVICE对QUEUE中的消息进行处理。流程说明如下(不需要进行4-7的操作,也不需要定义与QUEUE同名的SERVICE): 1. 客户端调用tpenqueue()把数据发送到SERVICE1

2. TMQUEUE接收tpenqueue()发送来的数据,并把他们保存到SERVICE1中 3. 如果以上操作成功,那么tpenqueue()返回成功.

8. 客户端调用tpdequeue(),请求从SERVICE1中取数据

10. TMQUEUE收到该请求,它把相应的消息从SERVICE1中取出,并发送给客户端

2. 转发模式:

用到TMQUEUE和TMQFORWARD,要定义与QUEUE同名的SERVICE并调用SERVICE对QUEUE中的消息进行处理。流程说明如下:

1. 客户端调用tpenqueue()把消息发送到SERVICE1

2. TMQUEUE接收tpenqueue()发送来的消息,并把他们保存到SERVICE1中 3. 如果以上操作成功,那么tpenqueue()返回成功.

4. TMQFORWARD在某个设定的时刻,从SERVICE1中取消息

5. TMQFORWARD用事务模式调用(采用TPCALL())一个名为 \的SERVICE,将 消息转发给SERVICE1

6. 名为 \的SERVICE 把处理的结果用tprerurn()返回给TPQFORWARD. 7. TPQFORWARD把收到的处理结果发送到REPLYQ

8. 客户端调用tpdequeue(),请求从REPLYQ中取回响应消息

9. TMQUEUE收到该请求,它把相应的消息从queue1中取出,并发送给客户端 10.如果以上操作成功,那么tpdequeue()返回成功

注意: 当一条消息QUEUE中被取出后,在该QUEUE中它将被删除,其他的进程就看不到该消息了.如果有多个进程同时要取该消息,只有最早的那个进程能取到该消息.

/Q的使用场合 1. /Q的常见用法是用于实现数据的可靠传送,把数据从一台机器可靠的传送到另一台机器.如:在电信计费业务中,可以用/Q把采集到的计费数据发送到计费中心进行处理;在银行中,不同的银行间可用/Q传送结算数据. 数据传送可以是在TUXEDO客户端与TUXEDO服务端之间,或TUXEDO服务端与服务端之间.

2. 可以用/Q实现工作流,如图,前面的处理流程把处理结果保存到QUEUE中,后面的处理流程从相应的QUEUE中取要处理的消息,也把处理结果保存到QUEUE中,如此下去.直到完成.

流程 开始 处理结果 QUEUE1 处理结果 流程2 处理结果 QUEUE2

3. 批处理:可以把很多消息发送到一个QUEUE中,并设置在某个时间这些消息才生效,把这些消息取出,进行成批处理.

10.2 /Q的管理

/Q的管理工作包括:QMCONFIG环境变量的设置,用QMADMIN或图形化管理工具进行QUEUE SPACE,QUEUE的创建及管理,因为/Q也是一种资源管理器,所以要象数据库那样在UBBCONFIG的GROUP种进行配置。在UBBCONFIG中还要配置TMQUEUE,TMQFORWARD这两个SERVER。下面分别进行说明:

QMCONFIG环境变量的设置

QMCONFIG环境变量指定存储QUEUE SPACE的设备(文件)名,以便QMADMIN对它进行管理.它可在命令行中设置,也可在执行QMADMIN时在命令行中指定。 在UNIX下

1. QMCONFIG=/usr/tuxedo/qsample/QUE; export QMCONFIG 2. qmadmin /usr/tuxedo/qsample/QUE

在NT下:

1. SET QMCONFIG=d:\\qsample\\QUE

2. qmadmin d:\\qsample\\QUE

QMCONFIG中指定的设备(文件)要先用crdl在TUXEDO文件系统中创建, 如:

D:\\>qmadmin

>crdl d:\\qsample\\QUE 0 5000 >q

该设备(文件)中可以有多个QUEUE SPACE, QUEUE中的消息等数据就保存在该设备(文件)中.

QMADMIN的使用方法

TUXEDO提供一个命令行管理工具QMADMIN,用于对/Q进行管理,QMADMIN类似TMADMIN,QMADMIN常用的命令介绍如下:

qspacecreate: 创建一个新的QUEUE SPACE

qcreate: 在某个QUEUE SPACE 上创建QUEUE

qinfo: 查看某个QUEUE中的信息

qlist: 显示一个QUEUE SPACE所包含的QUEUE,及每个QUEUE中的当前消息个数 qopen: 打开一个QUEUE SPACE qclose: 关闭一个QUEUE SPACE

说明:

在QMADMIN中输入help可以列出所有的命令,用help命令名可以得到该命令的帮助 如:

> help qinfo

qinfo [queue_name]

-------------------

List information about the specified queue or for all queues. This command lists the number of messages on the specified

queue or all queues if no argument is given, and the amount of free space in the queue space. In verbose mode, this

command also lists the queue creation parameters for each queue.

>

QUEUE SPACE的创建

在QMADMIN中执行qspacecreate,按提示进行操作,说明如下: > qspacecreate

Queue space name: myqueuespace IPC Key for queue space: 230458 Size of queue space in disk pages: 200

Number of queues in queue space: 3

Number of concurrent transactions in queue space: 3 Number of concurrent processes in queue space: 3 Number of messages in queue space: 12 Error queue name: errq

Initialize extents (y, n [default=n]): Blocking factor [default=16]: 16

参数说明:

IPC Key for queue space:

该QUEUE SPACE的IPC KEY,范围为32,768到 262,143.记住不要和系统的其他 IPC资源的ID号冲突.

Size of queue space in disk pages:

该QUEUE SPACE的大小,以页为单位(一页512字节) Number of queues in queue space:

该QUEUE SPACE中最多可以有多少个QUEUE在里面

Number of concurrent transactions in queue space.

在该QUEUE SPACE中最多可以有多少个事务同时存在,计算方法: 1. 该GROUP中的每个TMS_QM会用到一个事务

2. 该GROUP中的TMQEUE,TMQFORWARD也会各自用到一个事务

3. QMADMIN会用到一个事务

4. 客户端在调用TPENQUE(),tpdequeue()之前也开始的事务也要计算上 要估计最多可能有多少个这样的客户端同时使用该QUEUE SPACE

Number of concurrent processes in queue space

最多可以有多少个进程同时存取该QUEUE SPACE,要包括TMQUEUE,TMFORWARD这两个进程.

Number of Messages in queue space

该QUEUE SPACE中最多可以有多少个MESSAGE在里面


第10章:TUXEDO的可靠消息队列.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高一化学-2013-2014学年高一下学期期中考试化学试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: