在尝试创建连接之前,您能否检查 IBM MQ 主题是否已启动并可通过 Java 应用程序使用?

Can you check to see if an IBM MQ topic is up and available through a Java application before attempting to create a connection?

我想在我们的 Java 应用程序代码中添加一些条件逻辑,以尝试创建 JMS 主题连接。过去,我曾看到过在 MQ 服务器已重新启动或当前已关闭时尝试创建连接而导致的问题。我添加的一项改进是检查静止状态,另一项改进是在尝试重新连接到我们的持久主题队列之前增加计时器。

有没有办法通过 MQ server/topic/channel 确认它已启动并且 运行 并且可以安全地发出连接请求?

确认队列管理器(以及您用来连接队列管理器的通道)已启动并且运行的最佳方法是尝试连接到它。

如果您的连接尝试失败,您将收到一个 MQ 原因代码,告诉您具体原因。这是比任何管理命令都好得多的确认方式,因为它还确认您的应用程序及其安全上下文是正确的并且能够连接到队列管理器。完全有可能有一个 up-and-运行 队列管理器,但应用程序尚未正确配置为使用它。所以从应用程序连接,如果它工作,队列管理器是 up-and-运行.

您关于在失败后尝试重新连接之前增加计时器的评论做得很好。如果您在队列管理器准备好接受您的连接之前,通过大量重复和关闭的连接尝试来敲打队列管理器,这对任何人都没有帮助,但是仍然需要测试队列管理器可用性的任何东西最终都需要连接到它,非常简单,只需连接即可。