Ich verwende Spring JMS in meiner Webanwendung in einem TomEE-Container, und ich wollte JMSXGroupIDs verwenden, um meine Nachrichten zu gruppieren. Ich verwende die folgende Spring JMS Listener Container-Konfiguration.Spring JMS Concurrency und JMSXGroupID
Für einen schnellen Test, schickte ich 1000 Nachrichten von der gleichen JMSXGroupID gruppiert. Ich habe die Threads mit VisualVM untersucht und erwartet, dass während des gesamten Tests nur ein Listener-Container aktiv ist. Was passiert ist, ist, dass die Arbeit zwischen den 5 Message-Listener-Containern aufgeteilt ist. Ich habe die ActiveMQ Web Console überprüft, und soweit der Broker betroffen ist, wurden alle Nachrichten an denselben Benutzer gesendet. Gibt es einen Grund, warum die Nachrichten auf verschiedenen Message-Listener-Container-Threads verarbeitet werden?
Siehe auch meine editierung. –
Ich habe versucht, es auf nur 5 zu ändern und das Problem ist immer noch das gleiche. – Animal2
Sind Sie sicher, dass Sie die Kopfzeile richtig einstellen? Es funktioniert jedes Mal gut für mich. Sehen Sie sich die eingehenden Nachrichten in einem Debugger an, um sicherzustellen, dass der Header festgelegt ist. 'ActiveMQTextMessage {commandId = 15, ... groupID = foo, ... text = foo}' –