Tecniche di progettazione per applicazioni avanzate

Per una applicazione IBM® MQ semplice, è necessario decidere quali oggetti IBM MQ utilizzare nell'applicazione e quali tipi di messaggi si desidera utilizzare. Per un'applicazione più avanzata, è possibile utilizzare alcune delle tecniche introdotte nelle seguenti sezioni.

In attesa di messaggi

Un programma che serve una coda può attendere i messaggi per:
  • Attesa fino all'arrivo di un messaggio o fino alla scadenza di un intervallo di tempo specificato (consultare Attesa dei messaggi ).
  • [z/OS]Impostazione di un segnale in modo che il programma venga informato quando arriva un messaggio (solo IBM MQ for z/OS® ). Per informazioni su questo argomento, consultare Segnale.
  • Stabilire un'uscita di callback da indirizzare quando arriva un messaggio; consultare Utilizzo asincrono dei messaggi IBM MQ.
  • Esecuzione di chiamate periodiche sulla coda per verificare se un messaggio è arrivato ( polling ). Ciò non è in genere consigliabile perché può avere implicazioni sulle prestazioni.

Correlazione delle risposte

Nelle applicazioni IBM MQ , quando un programma riceve un messaggio che lo richiede per eseguire alcune operazioni, il programma in genere invia uno o più messaggi di risposta al richiedente.

Per aiutare il richiedente ad associare queste risposte alla sua richiesta originale, un'applicazione può impostare un identificativo di correlazione nel descrittore di ogni messaggio. I programmi quindi copiano l'identificativo del messaggio di richiesta nel campo identificativo di correlazione dei relativi messaggi di risposta.

Impostazione e utilizzo delle informazioni di contesto

Le informazioni di contesto sono utilizzate per associare i messaggi all'utente che li ha generati e per identificare l'applicazione che ha generato il messaggio. Tali informazioni sono utili per la sicurezza, la contabilità, il controllo e la determinazione dei problemi.

Quando si crea un messaggio, è possibile specificare un'opzione che richiede che il gestore code associ le informazioni di contesto predefinite al proprio messaggio.

Per ulteriori informazioni sull'utilizzo e l'impostazione delle informazioni di contesto, consultare Contesto del messaggio.

Avvio automatico dei programmi IBM MQ

Utilizzare IBM MQ trigger per avviare un programma automaticamente quando i messaggi arrivano su una coda.

È possibile impostare condizioni di trigger su una coda in modo che un programma inizi ad elaborare tale coda:
  • Ogni volta che un messaggio arriva sulla coda
  • Quando arriva il primo messaggio sulla coda
  • Quando il numero di messaggi sulla coda raggiunge un numero predefinito

Per ulteriori informazioni sull'attivazione, consultare Avvio delle applicazioni IBM MQ utilizzando i trigger. L'attivazione è solo un modo per avviare un programma automaticamente. Ad esempio, è possibile avviare un programma automaticamente su un timer utilizzando funzioni nonIBM MQ .

Su piattaforme diverse da z/OS, IBM MQ può definire oggetti servizio per avviare programmi IBM MQ all'avvio del gestore code; consultare Oggetti servizio.

Generazione di report IBM MQ

È possibile richiedere i seguenti report all'interno di un'applicazione:
  • Report di eccezioni
  • Report di scadenza
  • Report COA (Confirm - on - arrival)
  • Report COD (Confirm - on - delivery)
  • Report PAN (positive action notification)
  • Report NAN (negative action notification)

Questi sono descritti in Messaggi di report.

Cluster e affinità di messaggi

Prima di iniziare ad utilizzare i cluster con più definizioni per la stessa coda, esaminare le applicazioni per verificare se vi sono dei cluster che richiedono uno scambio di messaggi correlati.

All'interno di un cluster, un messaggio può essere instradato a qualsiasi gestore code che ospita un'istanza della coda appropriata. Pertanto, la logica delle applicazioni con affinità di messaggi può essere alterata.

Ad esempio, si potrebbero avere due applicazioni che si basano su una serie di messaggi che scorrono tra di loro sotto forma di domande e risposte. Potrebbe essere importante che tutte le domande vengano inviate allo stesso gestore code e che tutte le risposte vengano inviate nuovamente all'altro gestore code. In questa situazione, è importante che la routine di gestione del carico di lavoro non invii i messaggi ad alcun gestore code che ospita un'istanza della coda appropriata.

Laddove possibile, rimuovere le affinità. La rimozione delle affinità dei messaggi migliora la disponibilità e scalabilità delle applicazioni.

Per ulteriori informazioni, consultare Gestione delle affinità dei messaggi.