Solace MQ - 如何检查目的地是否已启动

Solace MQ - how to check destination is up or not

我在下面编写了实用程序代码来检查 Solace MQ 目标是否已启动,而无需向目标发送任何消息。

...

try {

env = new Hashtable<String, Object>();
env.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.solacesystems.jndi.SolJNDIInitialContextFactory");
env.put(InitialContext.PROVIDER_URL, urlStr);
env.put(Context.SECURITY_PRINCIPAL, principalStr);
env.put(Context.SECURITY_CREDENTIALS, pwdStr);

initialContext = new InitialContext(env);
cf = (SolConnectionFactory) initialContext.lookup(jndiname);

connection = cf.createConnection();

SolDestination dest = (SolDestination) initialContext.lookup(destString);

System.out.println("Successfully connected.")

} catch (Exception e) {
    System.out.println("Failed to connect.")
}

我需要添加一些东西吗?它会验证目的地吗?

您提供的代码片段建立客户端连接,然后对队列执行 JNDI 查找。

这将成功检查队列是否存在以及是否在路由器上的 JNDI 存储中设置为 JNDI 对象。

这并不一定表示 Solace 队列是 'up'。队列可以存在于 JNDI 存储中,但由于多种原因仍处于关闭状态,例如被管理性关闭,或者如果路由器未激活以保证消息传递。您将需要创建一个消费者以检查队列是否已启动且可访问。