Distribuzione di mappe di messaggi

Per impostazione predefinita, i file di mappa del messaggio vengono distribuiti nei file BAR come parte di un'applicazione, un servizio di integrazione o una libreria che fornisce una soluzione di integrazione. È anche possibile distribuire una mappa come risorsa indipendente se si stanno gestendo i flussi di messaggi in questo modo. Se si modifica una mappa del messaggio, è necessario ridistribuire la soluzione di integrazione o i flussi di messaggiindipendenti.

Informazioni su questa attività

Quando viene distribuita una soluzione di integrazione o un flusso di messaggi contenente un nodo Mapping , le mappe di messaggi a cui si fa riferimento nella proprietà Mapping routine del nodo Mapping vengono risolte e convalidate. Questa preparazione si verifica al momento della distribuzione, piuttosto che quando il primo messaggio viene trasmesso attraverso il nodo.

Questo comportamento presenta i seguenti vantaggi:
  • L'inizializzazione di una mappa del messaggio non ha alcun calo delle prestazioni quando il primo messaggio viene trasmesso attraverso il nodo.
  • La mappa del messaggio e le relative dipendenze, come qualsiasi modello di messaggio di riferimento, vengono risolte e convalidate durante la distribuzione per garantire che la mappa del messaggio venga eseguita correttamente sul primo messaggio.
  • La sintassi mappa messaggi viene convalidata durante la distribuzione per garantire che la mappa messaggi venga eseguita correttamente sul primo messaggio.
  • Al riavvio di IBM® App Connect Enterprise, la sintassi della mappa dei messaggi e le relative dipendenze vengono verificate prima che il flusso dei messaggi possa essere ripristinato.

Per evitare un errore di distribuzione, è necessario includere tutte le dipendenze della mappa del messaggio , schemi di riferimento, moduli ESQL, classi Java™ e altre risorse nel file BAR. È necessario risolvere eventuali errori statici della mappa del messaggio , ad esempio un'espressione XPath non valida. Se questi requisiti non vengono soddisfatti, si riceve un messaggio BIP che riporta l'errore di generazione della mappa.

Per impostazione predefinita, qualsiasi mappa che si trova nel file BAR ma a cui non si fa riferimento nella proprietà Mapping routine del nodo Mapping non viene convalidata durante la distribuzione. Se l'associazione viene utilizzata dinamicamente da un nodo Mapping , selezionandola in una sovrascrittura LocalEnvironment (LocalEnvironment.Mapping.MappingRoutine = '{brokerSchemaName}:mapName'), viene convalidata e preparata quando viene utilizzata per la prima volta.

È possibile configurare un nodo di integrazione o un server per convalidare e preparare tutte le mappe di messaggi in fase di distribuzione, impostando la proprietà generateAllMapsOnDeploy su true nel file di configurazione server.conf.yaml o nel comando mqsichangeproperties . Ad esempio, per impostare la proprietà per un nodo di integrazione, è possibile utilizzare il seguente comando:
mqsichangeproperties --integration-node integrationNodeName --property generateAllMapsOnDeploy --value true
Per impostare la proprietà per un server di integrazione (un server di integrazione indipendente o un server gestito da un nodo di integrazione), è possibile impostarlo nel file di configurazione server.conf.yaml :
generateAllMapsOnDeploy: true
Il server di integrazione deve essere riavviato per rendere effettiva questa modifica.

Se si imposta la proprietà generateAllMapsOnDeploy su true, assicurarsi che tutti i file .map nell'applicazione, nella libreria e nel progetto di integrazione siano destinati all'utilizzo da parte di un nodo Mapping che si trova nel file BAR. Se nell'applicazione, nella libreria o nel progetto di integrazione vengono trovati altri file .map , la distribuzione potrebbe non riuscire.

Procedura

Quando si implementano le mappe dei messaggi, il comportamento di IBM App Connect Enterprise è il seguente:

  • Comportamento quando si distribuisce o si ridistribuisce un file BAR:
    1. Tutte le associazioni di messaggi vengono convalidate per garantire che tutte le dipendenze dell'associazione possano essere risolte al runtime. Questo passo di convalida verifica che i modelli di messaggi a cui si fa riferimento come i file di schema XML, i file di schema DFDL e i file di serie di messaggi e le mappe secondarie a cui si fa riferimento possano essere risolti.
    2. Le associazioni di messaggi e le relative dipendenze vengono generate in formato eseguibile. Questa fase verifica anche che i contenuti della mappa e delle mappe secondarie siano validi e che non abbiano errori come un'espressione XPath non valida.
    3. Se le mappe di messaggi e le rispettive dipendenze sono valide e possono essere generate correttamente, vengono rese persistenti sia nei moduli distribuiti che in quelli generati nell'archivio di configurazione. In caso contrario, la distribuzione viene arrestata e si riceve un messaggio BIP che riporta l'errore di generazione della mappa.
  • Comportamento dopo la distribuzione
    1. L'elaborazione in background viene avviata per compilare le mappe di messaggi generate sul codice byte Java in modo che possano trarre vantaggio dall'ottimizzazione JIT. Il codice byte Java per ogni mappa viene conservato al termine della compilazione.
  • Funzionamento quando i primi flussi di messaggi vengono eseguiti dopo la distribuzione o la ridistribuzione:
    1. Se l'elaborazione della compilazione in background è completa, il nodo Mapping esegue il codice byte java e viene avviata l'ottimizzazione JIT.
    2. Se l'elaborazione della compilazione in background non è completa, il nodo Mapping esegue l'associazione inizialmente nel formato generato fino a quando la compilazione non è completa. Quindi, inizia l'ottimizzazione JIT.
  • Comportamento per tutti i messaggi successivi che vengono trasmessi dopo la distribuzione o la ridistribuzione:
    1. Viene eseguita la mappa del messaggio preparata. Se l'elaborazione in background è stata completata, viene avviata l'ottimizzazione JIT.
  • Comportamento al riavvio di IBM App Connect Enterprise, ovvero al riavvio di un nodo di integrazione, di un server di integrazione, di una soluzione di integrazione o di un flusso di messaggi:
    1. Se il codice byte Java compilato per la mappa è disponibile, viene caricato e il nodo Mapping esegue questo codice non appena viene elaborato il primo messaggio. Quindi, inizia l'ottimizzazione JIT.
    2. Se il modulo generato per la mappa è disponibile e caricato, l'elaborazione in background viene avviata per compilare la mappa generata nel codice byte Java in modo che possano beneficiare dell'ottimizzazione JIT. Il codice byte Java per ogni mappa viene conservato al termine della compilazione.
    3. Se il codice della mappa generato o compilato non è disponibile, la mappa viene elaborata nello stesso modo in cui si distribuisce o ridistribuisce un file BAR.