我有一个设置,其中一些应用程序通过 Tibco 集合点相互通信。应用程序使用经过认证的消息传递进行通信。我的问题是,我的两个接收者最近开始表现出这样的行为:当他们想要确认消息时,他们会收到错误 27,不允许(经过认证的消息交换中的第一条消息未经认证,我们已经考虑了那)。
我一直在互联网上寻找有同样错误的人,我发现了很多人,但他们在尝试创建 tibco 传输时都遇到了错误。我可以很好地创建传输,但我无法确认通过它收到的任何消息。
我们的环境同时使用 tibco 7.X 和 8.X,有时混合使用。当对等方使用相同的 tibco 版本和使用不同的版本时,都会出现此问题。它不会出现在所有应用程序中,但是当它确实出现在某个应用程序中时,它仍然是“损坏的”。丢弃发送方和接收方的分类帐文件没有任何作用。我们仍然得到错误。发送方和接收方都具有写入(和创建)分类帐文件的适当权限。我们正在连接到永久运行的 rvds。发送方和接收方在不同的机器上。过去,沟通工作完美无缺,但在某些时候,它停止了。该应用程序在 Java 中,我们使用 tibrvj.jar 自动原生库。
错误是
...
引起:TibrvException[error=27,message=Not allowed]
在 com.tibco.tibrv.TibrvImplCmTPortC.natConfirmMsg( native 方法)
在 com.tibco.tibrv.TibrvImplCmTPortC.confirmMsg(TibrvImplCmTPortC.java:304)
在 com.tibco.tibrv.TibrvCmListener.confirmMsg(TibrvCmListener.java:88)
....
我知道你会问我“你做了什么让它开始发生”,我的回答是“我不知道”。
任何输入将不胜感激。
谢谢。
最佳答案
两个 RVD 服务器之间可能无法建立 TCP 连接。你能检查一下你是否可以从一个连接到另一个(从订阅者主机连接回发布者)?根据我的经验,CM 确认是通过 TCP 处理的(请持保留态度,因为我更像是最终用户而不是中间件支持人员)。
关于java - 为什么不允许我使用 Tibco Rendezvous 确认消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4335799/