2017-09-27 9 views
1

Ich versuche, eine Warteschlange in activemq zu verwenden, um Nachrichten aus einem virtuellen Thema zu entfernen. Ich habe versucht, einige Nachrichten zu senden, und es wird im Thema unter "Nachricht eingereiht" angezeigt, aber es kann nicht konsumiert werden.Nachrichten in virtuellem Thema nicht von Consumer-Warteschlange konsumiert

Der virtuelle Themenname, den ich erstellt habe, war VirtualTopic.AA und der Consumer heißt Consumer.client1.VirtualTopic.AA.

In der consumer.client1.VirtualTopic.AA kann ich sehen, dass es einen Verbraucher gibt, aber es ist einfach nicht in der Lage, Nachrichten aus dem virtuellen Thema aus der Warteschlange zu entfernen.

Wer weiß, warum das passiert? Muss ich einige Einstellungen in der Konfiguration in der XML-Datei ändern?

Antwort

0

Wenn Sie mit Spring's JmsTemplate in einem virtuellen Thema veröffentlichen, müssen Sie es für ein Thema konfigurieren, indem Sie die Eigenschaft pubSubDomain auf "true" setzen.

Vom JmsTemplate documentation:

Wenn Sie die dynamische Zielerstellung verwenden möchten, können Sie den Typ der JMS-Ziel angeben müssen, erstellen, die „pubSubDomain“ Eigenschaft. Für andere Operationen ist dies nicht notwendig. Point-to-Point (Warteschlangen) ist die Standarddomäne.

Und in JmsDestinationAccessor#setPubSubDomain:

pubSubDomain - "true" für die Publish/Subscribe-Domain (Themen), "false" für die Point-to-Point-Domain (Queues)

Verwandte Themen