Tidak ada alasan untuk menjalankan utas untuk membuat konsumen JMS dan mengatur pendengar pesannya. Inti dari pendengar pesan JMS adalah untuk menerima pesan secara tidak sinkron (fungsi yang tampaknya Anda coba duplikat karena beberapa alasan).
Anda hanya perlu membuat konsumen JMS dan mengatur pendengar pesan dan kemudian memastikan konsumen tidak ditutup. Bergantung pada cara penulisan aplikasi, terkadang diperlukan while
loop untuk memastikan program tidak berhenti dan karena itu menutup konsumen. Utas Anda tidak melakukan itu. Ini membuat konsumen keluar dari ruang lingkup setelah menunggu pesan selama 5 detik yang berarti itu akan menjadi sampah yang dikumpulkan dan saya berharap untuk sebagian besar implementasi JMS itu berarti akan ditutup. Padahal bisa jadi lebih buruk dari itu. Dengan tidak secara eksplisit menutup konsumen dan membiarkannya keluar dari ruang lingkup, Anda bisa membocorkan konsumen yang pada akhirnya akan menghambat broker pesan Anda. Ini bukan hanya pemrograman yang ceroboh, tetapi berpotensi menimbulkan masalah bagi pengguna lain yang mencoba mengonsumsi pesan.