学习了数据依赖路由的一些资料,还不是特别明白,先进行一个总结吧,日后通过实际经验达到完全掌握的目的。当遇到非常巨大的数据需要传递时,可以将单一的数据分割成几个部分进行传递。分割的标准根据其商业应用而定。例如,可以根据省份、邮政编码或金额来分割数据。在TUXEDO中,数据依赖型路由解决了此类大型商业应用的难点,而且不需要进行任何程序工作,仅仅改变一下ubbconfig文件就可以了。数据依赖型路由是根据数据缓冲区中一个指定域的值,把一个交易请求映射到一个指定的服务组的机制。也就是说数据依赖路由是根据请求缓冲区中指定字段的取值范围,来把请求映射到某服务器组上的负载均衡算法。在数据依赖路由处理中,客户机Tuxedo系统根据路由标准决定把请求消息发送到哪一个后台进程IPC消息队列。数据依赖路由(DDR-Data Dependent Routing)需要在UBBCONFIG文件中*GROUPS节创建多个入口,并分割组中应用的资源或任务。每个组可以访问各自的数据库并且可以属于独立的机器。注意:一个组不能同时跨越一台以上的机器。一个有多组独立服务的大型数据库可以被分成几个独立数据集。此类数据分割的实现是通过对交易请求的缓冲数据值的路由。DDR是基FML,FML32,VIEW和VIEW32数据缓冲。TUXEDO使用的路由信息位于共享内存中的公告牌。在ubbconfig文件中��特别的部分对路由进行定义。路由的定义包含了数据使用的域和数据区间及其对应的服务组。TUXEDO通过对比调用交易内码和共享内存中公告牌中数据路由的值的区间选择目标服务。在以下的例子中,路由决定于数据域ID。交易请求映射于组G1,G2和G3。每个远程或本地机器上的组都提供相同的交易。使用DDR的ubbconfig的示例
*GROUP
BANKB1 LMID=SITE1 GRPNO=200
BANKB2
LMID=SITE2
GRPNO=220
*SERVICES
WITHDRAWAL ROUTING=ACCOUNT_ID
*ROUTING
ACCOUNT_ID FIELD=ACCOUNT_ID
BUFTYPE=‖FML‖
RANGES=‖1-10:BANKB1,
11-20:BANKB2‖
BRANCH_ID FIELD=BRANCH_ID
BUFTYPE=‖FML‖
RANGES=‖0-555:BANKB1,
556-888:BANKB2‖
*GROUPS节说明
LMID与每个组相联系。本例中是同一台机器上的设置。当然也可以设成远程机器。
*SERVICES节说明
分割标准是为此交易设置。ROUTING是分割标准的名字。
*ROUTING节说明
FILED表示请求交易的那些值用于映射组。
BUFTYPE表示其缓冲数据类型。RANGE定义路由到不同组的数据边界。可以使用通配符‘*‘。