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 存储中,但由于多种原因仍处于关闭状态,例如被管理性关闭,或者如果路由器未激活以保证消息传递。您将需要创建一个消费者以检查队列是否已启动且可访问。
我在下面编写了实用程序代码来检查 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 存储中,但由于多种原因仍处于关闭状态,例如被管理性关闭,或者如果路由器未激活以保证消息传递。您将需要创建一个消费者以检查队列是否已启动且可访问。