2012-04-03 10 views
2

Frühling Nachricht Listener Container doc sagt:Kann ein dauerhafter Abonnementkonsument nicht mehr als eine Nachricht gleichzeitig konsumieren?

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jms/listener/AbstractMessageListenerContainer.html#setDurableSubscriptionName%28java.lang.String%29

Der dauerhafte subskriptionsname JMS-Client-ID innerhalb dieses Kunden eindeutig sein muss. Standard ist der Klassenname der angegebenen Nachricht Listener. Hinweis: Für jedes dauerhafte -Abonnement ist nur ein gleichzeitiger Benutzer (der standardmäßig dieses Nachrichten-Listener-Containers ist) zulässig.

Ich dachte, wir können gleichzeitige Nachrichten zur gleichen Zeit behandeln. Fehle ich etwas?

Antwort

1

Ja, die Dokumentation ist korrekt. Zu jedem Zeitpunkt kann nur ein Verbraucher Nachrichten für ein dauerhaftes Abonnement erhalten. Alle dauerhaften Abonnements sind durch eine eindeutige ID gekennzeichnet. Wenn ein Verbraucher bereits Nachrichten mit einer ID empfängt, wird durch einen weiteren Versuch ein Verbraucher mit der gleichen ID für diese dauerhafte Subskription erstellt.

+0

Was ist die empfohlene Lösung, wenn Sie in der Lage sein möchten, mehrere gleichzeitige Benutzer für eine dauerhafte Warteschlange hochzufahren? Was sind die geeigneten Alternativen? – BennyMcBenBen

+1

Erstellen Sie eine separate Verbindung für jeden Verbraucher und legen Sie eine eindeutige Client-ID fest. Auf diese Weise können Sie gleichzeitige Consumer für dasselbe Thema erstellen. – Shashi

+0

@BennyMcBenBen: "dauerhafte Warteschlange"? Ich denke, Sie meinen "dauerhaftes Thema", da Warteschlangen immer dauerhaft sind. Ein Vorschlag für Ihr Problem besteht darin, dass ein Verbraucher zum Thema die Nachrichten herauszieht und sie mit gleichzeitigen Konsumenten in eine Warteschlange stellt. Auf diese Weise erreichen Sie sowohl die Dauerhaftigkeit des Abonnements (zum Thema) als auch die gleichzeitige Verarbeitung. – brainOverflow