我已经建立了带有weblogic服务器12c的统一分布式队列。我正在尝试使用jms分布式队列来实现交付和高可用性。在我的prototpe测试部署中,我在集群中有两台托管服务器,让我们说managed_server1和managed_server2。这个托管服务器中的每个托管jms服务器,即jms server1和jms server2。我已经使用jdbc持久性存储配置了jms服务器。我已启用服务器关联。jms高可用性消息传递顺序
- 我有一个生产者运行如java queuproducer t3 ::/managed_server1。我发出4条消息。从weblogic监控控制台,我看到queu中有4条消息,因为没有使用者到队列中。
- 现在我关闭managed_server1。
- 调出一个消费者来监听java queuconsumer t3:// managed_server2。此消费者不能消费消息,因为生产者将所有消息发送到jms server1,并且它已关闭。
- 启动托管服务器1,启动消费者以听取t3:// managed_server1我可以获取所有消息。
这是我的问题,如果managed_server1发生故障,那么它从来没有恢复过来,我是否会丢失我的所有消息。此外,如果有另一位制片人将消息发送到Java queuproducer T3:// managed_server2然后根据这些生产者之间的时间信息的顺序不guanranteed。
我有点迷路,我是否错过了一些东西。单位能否帮助我克服这一点。或者我应该使用分布式主题,而不是分布式队列,所有的JMS服务器将接收所有来自生产商的消息,但如果在我的consumre监听一个JMS服务器故障有我的应用程序只有一个消费者,当我切换到其他jms服务器,我可能会开始从一开始就从我离开的地方得到消息。
任何关于相同的建议将有所帮助。
您能否确认您使用的是单个JMS连接工厂? –
是的,它使用一个jms连接工厂。 – balaji