使用Azure Service Bus在Java(Qpid JMS)中持久订阅

时间:2017-08-08 14:04:15

标签: azureservicebus azure-servicebus-topics

我正在使用Java和Qpid JMS 0.23测试pub / sub。

我在SB中创建了一个名为“test.topic”的主题。

我可以从测试应用程序向主题发布消息,但在尝试订阅(动态创建订阅)时,它会失败并出现异常:

  

javax.jms.InvalidDestinationException:找不到消息传递实体'mynamespace:topic:test.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 / 8/2017 2017 12:13:31 PM [condition = amqp:not-found]

一些代码:

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>>
  • 动态订阅时是否需要一些类似的命名?

1 个答案:

答案 0 :(得分:0)

请参阅文档TLC.LoginPageView = Ember.View.extend({ templateName: 'LoginPage', }); TLC.DashboardView = Ember.View.extend({ templateName: 'Dashboard', }); 的{​​{3}}部分,并重点关注How to use the Java Message Service (JMS) API with Service Bus and AMQP 1.0选项,如下所示。

  

目前不支持临时目的地,即 TemporaryQueue TemporaryTopic ,以及 QueueRequestor TopicRequestor 使用它们的API。

所以我认为Azure Service Bus不支持动态创建订阅。