Estensione per messaggio di grandi dimensioni di Accodamento messaggio di BizTalk
L'accodamento messaggi nativo non è in grado di elaborare un messaggio con un corpo superiore a 4megabyte (MB). Tuttavia, Microsoft BizTalk Server include un componente aggiuntivo per l'accodamento dei messaggi nativo che consente l'elaborazione di messaggi di dimensioni superiori a 4 MB. Questo componente aggiuntivo viene recapitato come file Mqrtlarge.dll ed espone le API MQSendLargeMessage e MQReceiveLargeMessage e il modello COM analogo. Queste funzioni vengono implementate come API di accodamento messaggi standard, MQSendMessage e MQReceiveMessage rispettivamente.
Per partecipare a scambi di messaggi di grandi dimensioni, è necessario che nel computer di accodamento messaggi sia installato il file Mqrtlarge.dll e che l'applicazione di accodamento messaggi utilizzi le API aggiuntive. In caso contrario, i messaggi completi verranno frammentati.
Percorso in SDK
<Percorso> di installazione\SDK\ Mqrtlarge.dll
Inventario file
Nella tabella seguente viene illustrato il file utilizzato da questa utilità e ne viene descritto lo scopo.
File | Descrizione |
---|---|
Mqrtlarge.dll | Libreria di collegamento dinamico Win32 che espone MQSendLargeMessage e MQReceiveLargeMessage. I file di intestazione si trovano nella <directory Percorso> di installazione\SDK\Include. Nota: È necessario installare BizTalk Server in una versione a 64 bit di Windows per accedere alla versione a 64 bit di Mqrtlarge.dll. |
Utilizzo dell'utilità
Per eseguire il file Mqrtlarge.dll, attenersi alla procedura seguente.
Per utilizzare il file Mqrtlarge.dll
-
Nota
Per una soluzione MSMQ senza BizTalk Server, il MQRTLarge.dll potrebbe comunque funzionare correttamente. Tuttavia, questa non è una configurazione consigliata supportata da Microsoft e i risultati imprevisti possono verificarsi se usati al di fuori dell'ambiente BizTalk Server.
Aggiungere il file Mqrtlarge.dll al computer che non contiene un'installazione di BizTalk Server. Questo file viene utilizzato da Accodamento messaggi per l'invio e la ricezione di messaggi da e verso BizTalk Server.
Per accedere alle API nel file Mqrtlarge.dll, aggiungere un riferimento a tale file nelle applicazioni che inviano o ricevono messaggi da e verso altri computer all'endpoint Accodamento messaggi di BizTalk.
Osservazioni:
I messaggi di grandi dimensioni vengono inviati alle code di Accodamento messaggi (detto anche MSMQ). Sebbene non sia obbligatorio, è consigliabile utilizzare solo le API per messaggi di grandi dimensioni.
È comunque possibile usare MQSendMessage per inviare messaggi a una coda a cui sono stati inviati messaggi di grandi dimensioni. Analogamente, è possibile usare MQReceiveMessage per ricevere messaggi da tali code, anche se non è consigliabile perché può influire sulle prestazioni dell'API MQReceiveLargeMessage .
A scopo di ripristino, è consigliabile usare DEAD_LETTER journaling.
Frammentazione
In genere, un messaggio di grandi dimensioni viene frammentato in vari messaggi, ognuno inferiore a 4 MB. È importante comprendere che solo il corpo viene frammentato. Le altre proprietà vengono inviate con ogni singolo frammento.
Il numero di frammento viene definito dalle dimensioni del messaggio e dei frammenti stessi. Queste ultime possono essere determinate automaticamente dal file Mqrtlarge.dll o dalla parte appropriata di Accodamento messaggi di BizTalk. Anche le applicazioni possono specificare le dimensioni dei frammenti in modo esplicito.
L'estensione per i messaggi di grandi dimensioni richiede l'aggiunta al messaggio di ulteriori dati interi di dimensioni costanti.
PROPID_M_EXTENSION
È possibile usare le proprietà PROPID_M_EXTENSION/PROPID_M_EXTENSION_LEN per firmare il messaggio. La firma contiene 40 byte. Nella tabella seguente vengono elencati i frammenti della firma.
Descrizione | Dimensione |
---|---|
Identificatore univoco globale (GUID) che indica che il messaggio è stato inviato tramite MQSendLargeMessage | 16 B |
GUID per il messaggio: ID univoco per messaggio di grandi dimensioni comune a tutte le parti del messaggio | 16 B |
Dimensioni totali del messaggio di grandi dimensioni | 4 B |
Numero articolo | 2 B |
Numero di parti del messaggio | 2 B |
La decisione di usare PROPID_M_EXTENSION comporta un'implicazione aggiuntiva. Microsoft Host Integration Server MSMQ-MQSeries Bridge utilizza questa proprietà per passare una struttura contenente proprietà non mappate direttamente tra MQSeries e i messaggi di Accodamento messaggi. Le applicazioni che inviano messaggi da e verso MQSeries utilizzano questa struttura in modo esplicito o implicito. Accodamento messaggi può generare messaggi di conferma quando l'applicazione ricevente riceve un messaggio da una coda. I messaggi di riconoscimento vengono inviati a una coda specificata dall'applicazione mittente. In caso di messaggi di grandi dimensioni, il messaggio di riconoscimento viene inviato solo per l'ultima parte del messaggio.