sql >> Database >  >> RDS >> Oracle

Correcte aanpak om een ​​asynchrone JMS-listener te initialiseren en oneindig te laten draaien

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.




  1. Hoe controleert Zend\Db in ZF2 transacties?

  2. 11gR2 Compressie Adviseur =Kwaad

  3. Django- en PgSQL-verbindingsproblemen op Linux Mint

  4. Speel Framework Anorm &DB niet opgelost