sql >> Databasteknik >  >> RDS >> Oracle

Korrekt tillvägagångssätt för att initiera en asynkron JMS Listener och låta den köras oändligt

Det finns ingen anledning att köra en tråd för att skapa en JMS-konsument och ställa in dess meddelandeavlyssnare. Hela poängen med en JMS-meddelandeavlyssnare är att ta emot meddelanden asynkront (funktionalitet som du verkar försöka duplicera av någon anledning).

Du behöver helt enkelt skapa JMS-konsumenten och ställa in meddelandeavlyssnaren och se till att konsumenten inte är stängd. Beroende på hur applikationen är skriven är det ibland nödvändigt att ha en while loop för att se till att programmet inte avslutas och därför stänger konsumenten. Din tråd gör inte det. Det är att låta konsumenten falla utanför räckvidden efter att ha väntat på meddelanden i 5 sekunder, vilket betyder att det kommer att samlas in och jag förväntar mig att det för de flesta JMS-implementationer innebär att det kommer att stängas. Det kan dock vara värre än så. Genom att inte uttryckligen stänga konsumenten och bara låta den falla utanför räckvidden kan du läcka konsumenter som så småningom skulle försämra din meddelandemäklare. Detta är inte bara slarvig programmering, utan potentiellt problematiskt för andra användare som försöker konsumera meddelanden.




  1. Hur man delar sträng och infogar värden i tabell i SQL Server

  2. I JavaFX hur man lägger till combobox med data i tabellvy

  3. Glömt administratörslösenordet på Postgres (Windows-installation), kan inte återställa

  4. Konvertera MS SQL-skript till Mysql och Oracle