Jms Parte 3

18 aprile 2011

Parliamo di affidabilità del servizio JMS.

Esistono sostanzialmente 3 tipologie di strumenti che garantiscono affidabilità del servizio di messaggistica, vediamole nel dettaglio.

Persistenza

A livello concettuale non aggiungiamo nulla di nuovo rispetto a quanto detto in merito nel primo post. Nel codice dobbiamo impostare un parametro sfruttando il metodo setDeliveryMode dell’interfaccia MessageProducer:

producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

Il default è DeliveryMode.PERSISTENT

Transazionalità

Lo scope delle transazioni in JMS è SOLO fra clienti e sistema di messaging, non fra produttori e consumatori, questo significa che le proprietà ACID di ogni singola transazione valgono rispettivamente tra produttore e server JMS, o tra server JMS  e consumatore del messaggio. Se ad esempio il produttore manda 5 messaggi, nel caso in cui la semantica transazionale sia abilitata, questi messaggi verranno accodati in modo atomico e coerente sulla coda del server JMS.

Le transazioni possono essere locali o distribuite, nel primo caso vengono terminate dal programmatore dell’applicazione tramite l’invocazione di Session.commit() o Session.abort(), nel secondo caso invece si sfrutta un manager esterno dedicato alle transazioni come JTA.
Leggi il seguito di questo post »


Iscriviti

Get every new post delivered to your Inbox.