2017-11-10 46 views
0

Java APIを使用してSolaceに接続し、キューをプロビジョニングしてトピックに登録しています。それらのキューが既に存在する場合、私はそれをやり直すことを避けたいと思います。 Java APIを使用すると、特定のキューが存在し、どのトピックがそのキューにマップされているかを確認できます。キューがSolaceに存在するかどうか確認してください

答えて

0

これを行う最善の方法は、JCSMPSession.FLAG_IGNORE_ALREADY_EXISTSJCSMPProperties.IGNORE_DUPLICATE_SUBSCRIPTION_ERRORのプロパティをプロビジョニングして使用することです。キューおよびトピックサブスクリプションは、APIを使用して存在するかどうかを確認するために実際の方法がないことを

JCSMPProperties properties = new JCSMPProperties(); 
properties.setProperty(JCSMPProperties.HOST, "your_router_dns_name"); 
properties.setProperty(JCSMPProperties.USERNAME, "default"); 
properties.setBooleanProperty(JCSMPProperties.IGNORE_DUPLICATE_SUBSCRIPTION_ERROR, true); 

JCSMPSession session = JCSMPFactory.onlyInstance().createSession(properties); 

Queue queue = JCSMPFactory.onlyInstance().createQueue("myqueue"); 
EndpointProperties props = new EndpointProperties(); // default properties, modify as needed 
session.provision(queue, props, JCSMPSession.FLAG_IGNORE_ALREADY_EXISTS); 

Topic topic = JCSMPFactory.onlyInstance().createTopic("my/topic"); 
session.addSubscription(queue, topic, JCSMPSession.WAIT_FOR_CONFIRM); 

注:

は、ここでは簡単な例です。絶対に必要な場合は、SEMP over message busを使用してshowコマンドを実行できますが、これはかなり扱いにくいものです。

関連する問題