0

我们有一个带有 2 个 jms 服务器的集群 weblogic 10.3.4 域——每个服务器都在一个模块中部署了一个 UDQ。在任何给定时间,这些队列中只有一个拥有大约 5000 条 jms 消息(假设数)。

在消费者方面,我们有客户端代码连接到这些队列以使用所有 5000 条消息。此代码的工作方式是使用逗号分隔的 t3 提供程序 url 列表。这里的问题是,如果客户端连接到没有消息的 jms 服务器,它认为没有要处理的消息。

是否有配置设置或代码逻辑可用于连接到所有提供者并以 100 条为一组使用消息,直到没有队列留下消息?

4

1 回答 1

0

这比你想要的更暴力,但你可以:

  1. 获取 t3 连接 url 字符串的副本。
  2. 针对 t3 url 执行正常连接。如果它跳过前n 个url,则意味着它们离线。
  3. 使用来自连接的所有消息。
  4. 断开。
  5. 删除您刚刚连接的 url,以及它之前的所有 url。
  6. 如果还有任何 url,请转到 #2。否则,转到#1。

一些额外的考虑:

  • 您可能想在 #6 之后添加一个暂停。
  • 只需为列表中的每个 URL 获取一个连接,并为每个 URL 启动一个消息侦听器。
于 2012-05-08T14:46:19.670 回答