2015-05-08 24 views
5

La mia domanda riguarda l'uso delle seguenti 2 fabbriche:JMS QueueConnectionFactory vs ConnectionFactory

  • ConnectionFactory
  • QueueConnectionFactory

Al momento mi basta usare un ConnectionFactory per inizializzare tutto:

Connection conn = factory.createConnection(user, pw); 
Session session = conn.createSession() 
Destination dest = session.createQueue('xyz') 
... 

Se capisco correctl y, il QueueConnectionFactory funziona più o meno allo stesso modo. È la stessa identica cosa?

Mi chiedo in particolare perché sto usando un contesto JNDI che contiene entrambi gli oggetti. Quindi, non sono sicuro di quale preferirei usare.

risposta

7

javax.jms pacchetto API dice:

per ragioni storiche JMS offre quattro set alternativi di interfacce per l'invio e la ricezione di messaggi:

• JMS 1.0 definito due API dominio-specifici, uno per point-to -point messaging (code) e uno per pub/sub (argomenti). Sebbene questi rimangano parte di JMS per ragioni di retrocompatibilità, dovrebbero essere considerati completamente sostituiti dalle successive API.

• JMS 1.1 ha introdotto una nuova API unificata che offriva un singolo set di interfacce che potevano essere utilizzate sia per la messaggistica point-to-point che per quella pub/sub. Questo è indicato qui come la classica API.

• JMS 2.0 introduce un'API semplificata che offre tutte le funzionalità dell'API classica ma che richiede meno interfacce ed è più semplice da utilizzare.

Ogni API offre un diverso set di interfacce per la connessione a un provider JMS e per l'invio e la ricezione di messaggi. Tuttavia, tutti condividono un insieme comune di interfacce per la rappresentazione di messaggi e destinazioni di messaggi e per fornire varie funzionalità di utilità.

In altre parole, QueueConnectionFactory è semplicemente un'interfaccia legacy