2017-08-08 119 views
0

我正在使用Java和Qpid JMS 0.23與pub/sub進行測試。使用Azure服務總線的Java(Qpid JMS)中的持久訂閱

我在SB中創建了一個名爲「test.topic」的主題。

我可以發佈消息,從測試應用程序的主題,但試圖以認購(動態創建訂閱),當它失敗例外:

javax.jms.InvalidDestinationException:消息傳遞實體「myNameSpace對象:主題:測試.topic〜15 | DurableSubscriber2'找不到。 TrackingId:12ecc2a3-f8f3-42a3-8bd5-ad5d9823c367_B20,SystemTracker:mynamespace:topic:test.topic〜15 | DurableSubscriber2,Timestamp:8/8/2017 12:13:31 PM TrackingId:7e0d46404c8c45f39bffff2b77c7a140_G21,SystemTracker:gateway6,Timestamp:8 /二千○十七分之八下午十二時十三分31秒[條件= AMQP:未找到]

一些代碼:

env.put("topic.TOPIC", "test.topic"); 

Context context = new InitialContext(env); 

ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("SBCF"); 
Topic topic = (Topic) context.lookup("TOPIC"); 

connection = connectionFactory.createConnection("user", "secret"); 

subscriberSession = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE); 

subscriber = subscriberSession.createDurableConsumer(topic, "DurableSubscriber2"); 
  • 是否有可能從應用SB上創建主題訂閱?

如果我在主題上創建一個名爲「sub1」的靜態訂閱,它將接收發布的消息。當檢索我需要有主題定義爲:

test.topic/Subscriptions/sub1 

<<topic-name>>/Subscriptions/<<subscription-name>> 
  • 我需要有一些相似的命名時,動態訂閱?

回答

0

請查看文檔How to use the Java Message Service (JMS) API with Service Bus and AMQP 1.0的部分Unsupported features and restrictions和重點選項Temporary destinations如下。

臨時目標,即TemporaryQueueTemporaryTopic目前不支持,與QueueRequestorTopicRequestor的API使用它們一起。

所以我認爲Azure服務總線不支持動態創建訂閱。

+0

是的,我發現你是正確的,它不支持QPid/AMQP 1.0。如果需要,需要使用此API:https://github.com/Azure/azure-service-bus-java – 4integration