当遇到非常巨大的数据需要传递时,可以将单一的数据分割成几个部分进行传递。分割的标准根据其商业应用而定。例如,可以根据省份、邮政编码或金额来分割数据。而在TUXEDO系统中,数据依赖路由(DDR——Data Dependent Routing)就是为了解决此类大型商业应用,而且不需要进行任何程序工作。仅仅改变一下ubbconfig文件就可以了。数据依赖路由是根据数据缓冲区中一个指定域的值,把一个交易请求映射到一个指定的服务组的机制。
可以在不同的资源组中配置相同的服务器,这样就可以为这些服务器提供的服务配置数据数据依赖路由。TUXEDO系统受到针对这些服务的调用请求后,就会根据请求缓冲区中某个特征字段的取值,来决定把请求转发给哪一个组中的服务器处理。
如图所示,3个资源组BANKB1、BANKB2和BANKB3中都部署了服务器TLR。TLR提供的WITHDRAWAL服务分别用于出来账号空间10000~49999、50000~79999和80000~109999中的取款业务,这时路由规则就可以按照下面的方式来定义:
*ROUNTING
ACCOUNT_ID FIELD=ACCOUNT_ID BUFTYPE="FML"
RANGES="10000-49999:BANK1,
50000-79999:BANK2,
80000-109999:BANK3"
上面这个例子定义了一个路由规则ACCOUNT_ID,它以请求缓冲区中账号字段ACCOUNT_ID的取值为判断标准,把账号在10000~49999之间的交易请求转发到BANKB1组中处理,把账号50000~79999之间的交易请求转发到BANKB2组中处理,把账号在80000~109999之间的交易请求转发到BANKB3组中处理。在*SERVICES段中可以通过下面的配置来引用路由规则ACCOUNT_ID:
*SERVICES
WIDTHRAWAL PRIO=50 LOAD=50 AUTOTRAN=Y TRANTIME=30
ROUNTING=ACCOUNT_ID
在这里还有一个疑问,不同的资源组中配置相同的服务器???
我们都知道,资源组中的服务器,是在*SERVERS节中通过SRVGRP=BANKB1来配置的,那么不同的资源组配相同的服务器,
TLR SRVGRP=BANGKB1 SRVID =1
TLR SRVGRP=BANGKB2 SRVID =1
TLR SRVGRP=BANGKB3 SRVID =1
这里不知道该如何配,希望大神们能指导指导
该贴由koei转至本版2014-5-6 6:30:43
该贴由koei123转至本版2015-2-6 5:23:48