java - 分布式设置的 Tibco EMS 服务器容错不适用于 java 应用程序
问题描述
我在单独的 vm(host1 和 host2)上使用 2 个实例进行了容错设置。如果我停止主实例,辅助实例将成功激活,但当前连接因错误而关闭
重新连接失败:id=5 的连接未知
2018-08-09 14:18:32.907 Connection to active server 'tcp://***:7222' has been lost.
2018-08-09 14:18:32.907 Server activating on failure of 'tcp://****:7222'.
2018-08-09 14:18:32.907 Server rereading configuration.
2018-08-09 14:18:32.938 Recovering state, please wait.
2018-08-09 14:18:32.938 Recovered 1 pending connection.
2018-08-09 14:18:32.938 Server is now active.
2018-08-09 14:18:40.032 [**@***]: reconnect failed: connection unknown for id=156
2018-08-09 14:20:35.485 Purged 1 connection.
当我在同一台机器上进行相同的设置时,使用端口 9222/9224 运行的 2 个 Tibco 实例它正在工作,并且当主服务器出现故障时,应用程序能够使用来自辅助服务器的消息而没有任何问题。
此外,Java 应用程序能够在启动时连接两台服务器,连接两台服务器没有问题。
我尝试增加 ft_reconnect_timeout 然后我在 Tibco 服务器上没有收到任何错误,但应用程序没有选择消息。
我已根据TIBCO EMS 在容错模式下更新了 tibemsd.conf、factories.conf
设置时我错过了什么吗?我们是否必须像对数据库一样在后台对 Tibco 文件进行同步?
解决方案
根据Tibco EMS 8.4 用户指南,这是非共享状态容错:
在此 FT 中,主节点和辅助节点不会共享数据,服务器不会将 FT 视为未共享的数据,因此会出现未知连接错误。
客户必须处理它。对于需要使用 com.tibco.tibems.ufo 包(tibjmsufo.jar)的 java 客户端来支持 Unshared State FT。另外,需要提及 serverUrl=tcp://server0:7222+tcp://server1:7344 (用+号分隔)
推荐阅读
- driver - 多板Windows设备管理器提示资源冲突,错误码为12
- python - 如何在 python 中删除 pytube 中的“资产”错误?
- java - LibGDX - setProjectionMatrix() “隐藏”一个 Sprite
- c# - Google.GoogleApiException: 'Google.Apis.Requests.RequestError ... 没有 storage.objects.list 访问 Google
- javascript - 如何在相应的滚动上获得虚线 svg 动画?
- excel - 获取图片到用户表单 Excel VBA 在 64 位窗口 10 中显示没有区别
- android - 我的 JQuery .click() 函数不适用于 android chrome 浏览器
- html - 由于 flex wrap 的额外空间
- sql - SQL 查询以选择两个字符之间的字符串
- python - Python - 使用 While 循环,如何更新要在函数中使用的变量字符串