Er is geen reden om een thread uit te voeren om een JMS-consument te maken en zijn berichtlistener in te stellen. Het hele punt van een JMS-berichtenluisteraar is om het bericht asynchroon te ontvangen (functionaliteit die u om de een of andere reden lijkt te dupliceren).
U hoeft alleen maar de JMS-consument te maken en de berichtenlistener in te stellen en ervoor te zorgen dat de consument niet wordt gesloten. Afhankelijk van hoe de applicatie is geschreven, is het soms nodig om een while
. te hebben loop om ervoor te zorgen dat het programma niet wordt beëindigd en sluit daarom de consument. Dat doet je draadje niet. Het zorgt ervoor dat de consument buiten bereik valt na 5 seconden wachten op berichten, wat betekent dat het zal worden verzameld en ik verwacht voor de meeste JMS-implementaties dat dit betekent dat het zal worden gesloten. Het kan echter erger zijn dan dat. Door de consument niet expliciet af te sluiten en deze gewoon buiten het bereik te laten vallen, zou u consumenten kunnen lekken, waardoor uw berichtenmakelaar uiteindelijk zou vastlopen. Dit is niet alleen slordig programmeren, maar kan ook problematisch zijn voor andere gebruikers die berichten proberen te consumeren.