Postcard - Funzionamento

Passa al contenuto principale

Avvio

All'avvio Postcard verifica quale gestore code è presente e inizializza la corrispondente finestra di dialogo di registrazione (se non è presente alcun gestore code, richiede di installare la configurazione predefinita).

Postcard usa la chiamata JMS queueConnectionFactory.createQueueConnection() per connettersi al gestore code predefinito.

Ricezione dei messaggi

Durante l'esecuzione Postcard richiede a una coda chiamata postcard se sono presenti messaggi in arrivo da altre applicazioni Postcard. (Se la coda chiamata postcard non esiste, Postcard cerca di crearla).

Quando inizia l'esecuzione di Postcard, viene creato un oggetto QueueReceiver JMS per la coda della cartolina locale, fornendo come parametro una stringa di selezione che filtra i messaggi da ricevere dalla coda tramite il campo Identificativo di correlazione (CorrelId). La stringa di selezione definisce il fatto che i client postcard debbano ricevere solo messaggi nei quali il campo CorrelID corrisponda allo pseudonimo dell'utente. Quindi, le parole dei dati dei messaggi vengono presentate nella finestra JMS Postcard.

Invio di messaggi

Se non è stato immesso un nome elaboratore nel campo Su:, l'applicazione presume che il destinatario della cartolina risieda nello stesso gestore code.

Se è stato immesso un nome, postcard controlla se esiste un gestore code con questo nome - inizialmente usando il nome esattamente come fornito, ed in seguito usando un prefisso nello stesso formato di quello creato dalla configurazione predefinita.

In entrambi i casi, lancerà un comando session.createQueue("postcard"), ed imposterà il nome del gestore code base con la stringa fornita.

Successivamente, crea un messaggio JMS BytesMessage dallo pseudonimo e dalle parole immesse ed esegue queueSender.send(theMessage) per inserire il messaggio sulla coda.

Arrivo delle cartoline

Quando altre istanze di Postcard sullo stesso elaboratore utilizzano lo stesso gestore code e la medesima coda, i messaggi vengono semplicemente inviati e ricevuti da quella singola coda. Ciò, tuttavia, presuppone che il codice di WebSphere MQ installato sull'elaboratore sia configurato e funzioni correttamente.

Affinché una cartolina venga inviata ad un altro gestore code, è necessaria una connessione. Tale connessione esiste se entrambi i gestori code sono membri dello stesso cluster o quando viene creata esplicitamente. Pertanto, se l'applicazione Postcard presume che è possibile collegarsi al gestore code, si connette ad esso, apre la coda e vi inserisce un messaggio, come già descritto, lasciando le operazioni di ricevimento del messaggio al codice cluster di WebSphere MQ. In altre parole, Postcard utilizza solo la parte di codice che serve ad inserire il messaggio e non è necessario che sappia se il messaggio viene inviato ad un altro elaboratore.

In Postcard, quando viene chiamato session.createSender("postcard"), il codice cluster cerca nell'archivio dati l'altro gestore code e verifica se la coda esiste, generando un errore se ciò non è stato possibile per qualsiasi ragione.

Quando viene richiamato queueSender.send(theMessage), il codice cluster apre un canale nell'altro gestore code (creandolo se necessario) e invia il messaggio.

Il canale può essere successivamente ignorato, se il codice di ottimizzazione del cluster non lo richiede. Se i gestori code si trovano su elaboratori diversi, tutto viene gestito dal codice del cluster

Pulizia dei messaggi non inviabili

Se è stata inviata una cartolina a "John", ma non è stata eseguita l'applicazione Postcard con lo pseudonimo "John", il messaggio rimane in sospeso nella coda. Per evitare questo inconveniente, Postcard imposta il campo relativo alla durata del messaggio (Scadenza) in Descrittore del messaggio (MQMD) su 48 ore. Una volta trascorso l'intervallo di tempo impostato, il messaggio viene eliminato (anche se è in trasmissione).


Marchi

Inviare i propri commenti sulla guida e sui manuali all'indirizzo idrcf@hursley.ibm.com

(C) IBM Corporation 1996, 2002. Tutti i diritti riservati