2010-02-15 15 views

risposta

12

No, a MessageProducer/QueueSender non è sicuro.

O più precisamente: Session non è thread-safe. JavaDoc per Session lo menziona esplicitamente nella prima frase:

Un oggetto Session è un contesto a thread singolo per la produzione e il consumo di messaggi.

E poiché un MessageProducer/QueueSender è legato ad una Session non si deve utilizzare da più di un thread allo stesso tempo. In effetti, non devi usarlo da due thread diversi in momenti diversi!

+0

Mille grazie per la risposta veloce – mebada

9

seguito screenshot è da JMS2 specifiche

enter image description here

Come si può vedere oggetto di sessione non supporta l'utilizzo da parte thread concorrenti. La sessione non è un oggetto thread-safe. Lo stesso gos per tutti gli oggetti creati da quell'istanza Session come Messages,Producers,Consumers. Quindi questi oggetti non devono essere condivisi da due thread e questo è qualcosa di cui il client dovrebbe prendersi cura al posto dei provider JMS.

Problemi correlati