Ottimizzazione dei tempi di riposta del flusso di messaggi

Prima di iniziare:

Leggere l'argomento relativo al concetto nodi del flusso di messaggi.

Quando si progetta un flusso di messaggi, la flessibilità e la ricchezza dei nodi integrati spesso implicano l'esistenza di diversi modi per realizzare l'elaborazione e quindi i risultati finali richiesti. Tuttavia, queste diverse soluzioni forniscono prestazioni diverse e, se questa considerazione è ritenuta rilevante, è necessario eseguire la progettazione sia dal punto di vista delle prestazioni che della funzione.

Esistono due modi in cui le applicazioni possono percepire le prestazioni:

  1. Tempo di risposta. Indica quanto rapidamente viene elaborato ciascun messaggio dal flusso di messaggi. Su questo aspetto influisce soprattutto la modalità di progettazione dei flussi di messaggi. Questo aspetto verrà ulteriormente affrontato in questo argomento.
  2. Velocità. Indica quanti messaggi di dimensioni particolari possono essere elaborati da un flusso di messaggi in un tempo prestabilito. Su questo aspetto influiscono soprattutto fattori di configurazione e di risorse di sistema e quindi se ne discuterà in Ottimizzazione della velocità di trsmissione del flusso di messaggi con altre informazioni relative alla configurazione del dominio.

Esistono diversi aspetti che influiscono sui tempi di risposta del flusso di messaggi. Tuttavia, mentre si crea e si modifica il progetto del flusso di messaggi per ottenere i migliori risultati che soddisfino le esigenze specifiche dell'azienda, è necessario anche considerare l'eventuale complessità del flusso di messaggi. I flussi di messaggi più efficienti non sono necessariamente i più semplici da comprendere e da gestire; è consigliabile sperimentare le soluzioni disponibili per arrivare all'equilibrio migliore per le proprie esigenze.

Sono diversi i fattori che che influiscono sui tempi di risposta del flusso di messaggi:

Il numero di nodi inclusi nel flusso di messaggi
Ogni nodo causa un certo sovraccarico dell'elaborazione, quindi il contenuto del flusso di messaggi va considerato attentamente, incluso l'utilizzo di flussi secondari.

Utilizzare il minor numero di nodi possibile in un flusso di messaggi; ogni nodo incluso nel flusso di messaggi aumenta il sovraccarico nel broker. Esiste un limite massimo per il numero di nodi all'interno di un singolo flusso. Questo limite è regolato dalle risorse di sistema, in particolare dalla dimensione dello stack.

Per ulteriori informazioni sulle dimensioni dello stack, consultare Considerazioni di sistema per lo sviluppo del flusso di messaggi.

Come il flusso di messaggi instrada ed elabora i messaggi
In alcune situazioni, può essere che i nodi integrati e forse altri nodi disponibili nel sistema, forniscano più di una modalità per ottenere la stessa funzione. Cercare di scegliere la configurazione più semplice. Ad esempio, se si desidera definire alcune elaborazioni specifiche in base al valore di un campo in ogni messaggio, si potrebbe progettare un flusso di messaggi con una sequenze di nodi Filter per gestire ciascun caso. Se appropriato, è possibile raggruppare i messaggi attraverso i nodi Filter per ridurre il numero attraverso cui ogni tipo di messaggi deve passare prima di essere elaborato.

Ad esempio, si potrebbe avere un flusso di messaggi che gestisce otto diversi messaggi (Fattura, Bollettino di spedizione e così via). E' possibile includere un nodo Filter per identificare ogni tipo di messaggio e instradarlo in base al tipo. E' possibile ottimizzare le prestazioni di questa tecnica eseguendo un test dei tipi di messaggi più frequenti nei primi nodi Filter. Tuttavia, gli otto tipi di messaggio devono sempre passare attraverso otto nodi Filter.

E' possibile raggruppare i tipi di messaggio (ad esempio, se il tipo di messaggio è numerico ed è possibile eseguire il test di tutti i tipi maggiori di quattro e inferiori a quattro), è possibile ridurre il numero di nodi Filter richiesto. Il primo nodo Filter esegue il test di quelli maggiori di quattro e trasmette il messaggio a due ulteriori nodi Filter (collegati ai terminali true e false) che eseguono rispettivamente il test di quelli inferiori a due e di quelli inferiori a sei. Altri quattro nodi Filter aggiuntivi possono poi eseguire il test di uno o due, tre o quattro e così via. Sebbene il numero reale di nodi Filter richiesto sia lo stesso, il numero di nodi attraverso cui passa ogni messaggio viene ridotto.

Potrebbe essere che utilizzando un nodo RouteToLabel con una serie di nodi Label fornisca un'alternativa migliore rispetto a una sequenza di nodi Filter. Ogni messaggio passa attraverso un numero di nodi minore, aumentando la velocità di trasmissione. Tuttavia, è necessario considerare anche che, utilizzare il nodo RouteToLabel, significa utilizzare un nodo Compute: il sovraccarico di questo nodo potrebbe essere superiore ai vantaggi. Se si ha a che fare con un numero di tipi di messaggio limitato, un numero ridotto di nodi Filter è più efficace.

L'Esempio Prenotazioni per compagnie aeree dimostra come utilizzare i nodi RouteToLabel e Label piuttosto che utilizzare i nodi Filter nel flusso di messaggi XML_PassengerQuery. L'Esempio Instradamento del messaggio dimostra come memorizzare le informazioni di instradamento in una tabella di database in una cache in-memory nel flusso di messaggi.

Se il flusso di messaggi include loop
Evitare i loop dei nodi che si ripetono; possono risultare molto inefficaci e provocare problemi di prestazioni e dello stack. Un nodo Compute insieme a più istruzioni PROPAGATE potrebbe evitare la necessità di eseguire il loop di una serie di nodi.
L'efficacia di ESQL
Controllare tutti i codici ESQL creati per i nodi del flusso di messaggi. Mentre si sviluppa e si esegue il test di un nodo, è possibile che si conservino delle istruzioni che non sono necessarie quando viene finalizzata l'elaborazione del messaggio. Potrebbe anche risultare che due istruzioni codificate separatamente possano essere codificate come una sola istruzione. Dedicare del tempo per esaminare approfonditamente il codice ESQL può portare ad una semplificazione e ad un miglioramento delle prestazioni.

Se si dispone di flussi di messaggi importati da un rilascio precedente, controllare le istruzioni ESQL rispetto all'ESQL disponibile nella versione 5.0 per vedere se è possibile utilizzare nuove funzioni o istruzioni per migliorarne l'efficacia.

L'utilizzo di messaggi permanenti e transazionali
I messaggi permanenti sono memorizzati su disco durante l'elaborazione del flusso di messaggi. Questo può essere evitato se si specifica che i messaggi in input, output o entrambi non sono permanenti. Se il flusso di messaggi gestisce solo messaggi non permanenti, controllare la configurazione dei nodi e il flusso di messaggi stesso; se i messaggi non sono permanenti, potrebbe essere necessario un supporto transazionale. La configurazione predefinita di alcuni nodi applica la transazionalità; se si aggiornano queste proprietà e si ridistribuisce il flusso di messaggi, i tempi di risposta potrebbero essere migliori.
Dimensioni del messaggio
Un messaggio più grande necessita di più tempo per essere elaborato. Se è possibile suddividere i messaggi di grandi dimensioni in parti di informazioni più piccole, si potrebbe migliorare la velocità con cui vengono gestite dal flusso di messaggi. L'Esempio Messaggio di grandi dimensioni dimostra come ridurre i requisiti di memoria virtuale per il flusso di messaggi per migliorare le prestazioni di un flusso di messaggi quando elabora messaggi potenzialmente di grandi dimensioni.
Formato del messaggio
Sebbene WebSphere Message Broker supporti più formati del messaggio e fornisca funzioni che si possono utilizzare per la trasformazione da un formato ad un altro, questo provoca un sovraccarico. Accertarsi di non eseguire alcuna conversione o trasformazione non necessaria.

E' possibile trovare ulteriori informazioni su come migliorare le prestazioni di un flusso di messaggi in questo articolo di developerWorks sulle prestazioni del flusso di messaggi.

Concetti correlati
Panoramica dei flussi di messaggi
Panoramica della distribuzione
Considerazioni di sistema per lo sviluppo del flusso di messaggi
Attività correlate
Configurazione del dominio broker
Ottimizzazione della velocità di trsmissione del flusso di messaggi
Progettazione di un flusso di messaggi
Utilizzo di più di un nodo di input
Creazione di un flusso di messaggi
Definizione del contenuto del flusso di messaggi
Modifica delle proprietà configurabili
Riferimenti correlati
Nodi integrati
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac00355_