由于心跳,Tibco FT问题

时间:2011-12-30 02:06:11

标签: tibco tibco-rv

我在同一台机器上运行了2个Java应用程序实例(A& B),其中B被阻止进行activate()回调。

这是我注册回调的方式:

new TibrvFtMember(this.tibrvQueue,
   this.orv,
   this.transport,
   MessagingProps.TIBCO_GROUP_FT, // Group name
   wt,            // Weight
   1,             // Active members
   2.0,             // Heartbeat (secs.)
   0.0,           // Prep. (secs.)
   2.5,             // Activation (secs.)
   null);

我每100毫秒发送一次心跳,以确保我的申请准时。

msg.add("Data", ++seq + ":" + MessagingProps.TIBCO_SUBJECT_FT);
                msg.setSendSubject(MessagingProps.TIBCO_SUBJECT_FT);
                transport.send(msg)

出于某种原因(例如,GC /垃圾收集)如果我的活动应用程序“A”在发送心跳时延迟,我的被动应用程序“B”会立即激活,而“A”仍处于活动状态,其中不会调用deactivate “一个”。在应用程序“A”发送心跳后不久,在应用程序“B”上调用deactivate。由于两个应用程序同时处于活动状态,因此会在几秒钟内出现错误行为。

提到的是随机时间发生的,不可预测。我们的应用程序无法同时发布重复的消息,因此会产生巨大的影响。

请帮助我如何克服这个问题。

0 个答案:

没有答案