通过配置一对EMS服务器,即一个首选服务器和一个备选服务器,管理员可在TIBCO EMS上实现Fault Tolerance机制。当客户端向首选服务器发送消息失败时,会尝试连接备选服务器并且发送消息。当前,TIBCO EMS不支持超过2个服务器的Fault Tolerance机制。
配置了Fault Tolerance的EMS服务器能访问共享状态。共享状态包括客户端连接以及持久消息的信息。这些信息保证了备选服务器可以履行连接和存储消息的职责。当首选服务器工作正常时,它会在共享状态上加锁。锁的存在保证了备选服务器无法取代前者的作用。当首选服务期非正常工作时,锁会被释放。备选服务器获得锁,并且履行首选服务器的职责。TIBCO EMS推荐采用Storage Devices来实现共享状态。
备选服务器有2种方式去侦测首选服务器的非工作状态:Heartbeat Failure和Connection Failure。前者的定义是当首选服务器非正常工作前,它会发消息通知备选服务器。后者的定义是备选服务器主动通过TCP连接首选服务器确定它的状态。
当首选服务器发生Failure时,客户端能够得收到通知消息。如果备选服务器工作正常,那么备选服务器的角色变为首选服务器,原首选服务器的角色变为备选服务器。
Fault Tolerance是通过在服务器的配置文件中设置相应的参数实现的。对于客户端连接而言,它需要在连接信息中指明首选和备选服务器的信息。具体格式参考:serverUrl = tcp://server0:7222, tcp://server1:7344