TIBCO EMS:在多个接收器队列的情况下设置优先级

时间:2017-02-03 13:04:52

标签: jms tibco ems

我们在两台不同的机器(N1和S1)上托管相同的BW应用程序。这些应用程序将消息发送到队列。现在,此队列的接收器是BE服务,它托管在两台不同的机器(N2和S2)上。

我们有一个要求,当N2和S2都处于活动状态时,应该由N2选择来自N1的消息,并且只有当N2关闭时才应该由S2选择。同样,当N2和S2都处于活动状态时,来自S1的消息应该被S2选中,并且只有当S2关闭时才应该由N2选择。

有人可以告诉我们我们怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

在N1和S1上的BW应用程序的消息中设置一个自定义JMS头,指出消息来自哪个BW应用程序。

现在,在BE服务中,您可以读取此标头消息,并检查群集中是否正在运行其他BE服务(我假设它们是群集的)。

例如在N2 BE服务中 伪代码:

if (custom_jms_header_value = "N1") {
// process
}
else if (custom_jms_header_value = "S1" and cluster_check_S2) {
// S2 is down so process the message
}

在S2 BE服务中反向

if (custom_jms_header_value = "S1") {
// process
}
else if (custom_jms_header_value = "N1" and cluster_check_N2) {
// N2 is down so process the message
}