一个独立的Tuxedo应用系统可以部署在多台机器上,这些服务器之间通过网络连接,这种部署方式称为MP方式。在这些服务器中要选择一台服务器做为逻辑上的MASTER服务器,在该服务器上有一个DBBL进程,负责整个Tuxedo应用系统的管理工作。在每台服务器上都有一个BBL进程,它与DBBL进程进行通信,管理各自服务器上的配置。每台服务器上还有一个名为BRIDGE的进程与一个名为tlisten的进程,它们负责服务器之间的通信。
在MP方式中,Tuxedo是如何控制、协调每台服务器之间协同工作呢?如果配置了MP方式,那么在这些服务器之间可以做负载均衡和容错,客户端可以和其中的任何一台服务器建立连接,例如,如果该服务器上没有该客户端所要调用的service,Tuxedo可以自动把请求发送到其它的有该service的机器上处理,并把结果返回到客户端,请求通过BRIDGE进程在这些服务器之间进行传递。当然,这些对客户端是透明的。不仅如此,如果设置了负载均衡(LDBAL=Y),那么Tuxedo将根据它们的负载情况报,将请求发送到负载较小的服务器上。而且还提供软件级别的Cluster功能,如果其中某-台或几台(当然不能是全部)服务器出现故障了,那么正常的机器仍然能够继续运行,如果它们之间的网络连接断了,BRIDGE进程会自动进行重试,并且在这些服务器之间可以配置多个网络连接通路,当其中的一个出现故障时,会自动采用别的连接通路。
配置:
1.这些服务器之间可以通过网络互相访问。
2.在每台服务器上都正确安装了Tuxedo Server。
3.应用已发布到这些服务器上,即将某服务器需要发布的server代码部署到该服务器上。
4.确定一台服务器做逻辑上的MASTER机。
5.修改UBBCONFIG中的相关内容,如下所示:
*RESOURCE
MODEL MP
OPTIONS LAN,MIGRATE(支持服务的迁移,可选)
MASTER 该服务器上的DBBL负责与其它服务器上的BBL进行通信
BBLQUERY 每台服务器上的BBL每隔SCANUNIT*BBLQUERY秒,向MASTER机上的DBBL发送一次状态信息,默认为300秒
DBBLWAIT 如果MASTER机没有收到某台服务器发送的状态信息,它将等待SCANUNIT*DBBLWAIT秒,如果还没有收到该服务器发送的状态信息,这台服务器将被分离出去(PARTTIONED),默认为20秒
*MACHINES 在该节中要配置该Tuxedo应用系统包括的每台服务器,如果该服务器是UNIX服务器,那么要配置UID、GID(在UNIX下可用ID命令查看)
*NETWORK 在该节中配置服务器之间通信的IP地址以及BRIDGE进程,在一个MP方式的Tuxedo应用系统中,不同的服务器之间通过BRIDGE进程进行通信,该BRIDGE的侦听IP地址及端口在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备,如果是在Windows NT下则不要
6.在Tuxedo系统启动之前,不同服务器之间的通信是通过tlisten进程来进行的,因为这时还没有BRIDGE进程。NLSADDR为tlisten进程侦听的IP地址及端口。所以,在所有服务器上先要启动tlisten进程。
说明:只需在MASTER机上配置、编译UBBCONFIG文件,当启动时,DBBL会自动把
MASTER机上的tuxconfig文件发送到其它服务器上。
在Windows服务器上启动tlisten进程
tlisten -l //10.10.10.10:6600
在UNIX服务器上启动tlisten进程
tlisten -d /dev/tcp -l //10.10.10.10:6600