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:
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:
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.
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 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.
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.