2017-11-10 6 views
0

Ich verwende Java API, um eine Verbindung zu Solace herzustellen, Warteschlangen bereitzustellen und sie zu Themen zu abonnieren. Falls diese Warteschlangen bereits existieren, möchte ich es vermeiden, es erneut zu tun. Mit der Java-API kann überprüft werden, ob eine bestimmte Warteschlange existiert und welche Themen dieser Warteschlange zugeordnet sind.Überprüfen, ob die Warteschlange in Solace existiert

Antwort

0

Der beste Weg, dies zu tun ist zu versuchen, die JCSMPSession.FLAG_IGNORE_ALREADY_EXISTS und JCSMPProperties.IGNORE_DUPLICATE_SUBSCRIPTION_ERROR Eigenschaften zur Verfügung zu stellen und zu verwenden.

Hier ist ein kurzes Beispiel:

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); 

Hinweis, dass es keine tatsächliche Methode, um zu überprüfen, ob die Warteschlange und Thema Abonnements der API existieren verwenden. Wenn es absolut notwendig ist, können Sie SEMP over message bus verwenden, um show Befehle auszuführen, aber das ist ziemlich unhandlich.