Questa pagina costituisce un'introduzione all'utilizzo di un nodo MQGet in un flusso di richiesta-risposta e descrive la procedura di elaborazione dei messaggi di input tramite nodo (secondo i parametri di input e LocalEnvironment impostati) per creare messaggi di output.
Un flusso di richiesta-risposta tra due applicazioni consente la richiesta di messaggi da un'applicazione all'altra. Questo tipo di flusso è descritto nel diagramma seguente:
Nel diagramma, l'applicazione di richiesta posiziona un messaggio nella coda di input "Richiesta" dell'applicazione di risposta. L'applicazione di risposta elabora quindi il messaggio e invia una risposta alla coda di "risposta" specificata nel messaggio originale dall'applicazione di richiesta.
Se è necessario sostituire o migliorare una di queste applicazioni senza effettuare modifiche all'altra, trasformare i messaggi tra le due applicazioni. Per effettuare tale operazione, è possibile inserire il broker tra le due applicazioni, come riportato nel diagramma seguente:
Ora un alias di coda o un dispositivo simile è configurato in modo tale che il messaggio di richiesta venga posizionato dall'applicazione di richiesta nella coda di input del flusso di messaggi del broker "Richiesta di risposta coordinata". Nell'esempio riportato sopra il messaggio era posizionato in modo diretto nella coda di input dell'applicazione di risposta. Il flusso "Richiesta di risposta coordinata" trasforma il messaggio in un formato adatto all'applicazione di risposta e lo inoltra alla coda di input. Salva inoltre i dettagli della coda di risposta dell'applicazione di richiesta originale e li ripristina nel messaggio di risposta ricevuto dall'applicazione di risposta per restituirlo in modo corretto all'applicazione di richiesta.
E' possibile posizionare un nodo MQGet in qualsiasi punto in un flusso; il nodo riceve nel terminale di input una struttura di input trasmessa dal nodo precedente. Utilizza quindi il messaggio recuperato dalla coda di WebSphere MQ configurata per creare una struttura risultato. Infine utilizza la struttura di input e la struttura risultato per creare una struttura di output che viene trasmessa successivamente al terminale di output, di avvertenza o di errore a seconda della configurazione del nodo e del risultato dell'operazione Get.
Per ulteriori dettagli sulla creazione del flusso, fare riferimento a: esempio Richiesta/Replica coordinate.
LocalEnvironment trasmesso dal nodo precedente viene letto e aggiornato dal nodo MQGet.
${inputMQParmsLocation} è il valore impostato nella proprietà del nodo MQGet Ubicazione dei parametri MQ di input nella scheda delle proprietà della richiesta.
${outputMQParmsLocation} è il valore impostato nella proprietà del nodo MQGet Ubicazione dei parametri MQ di emissione nella scheda delle proprietà del risultato.
Per ulteriori dettagli su queste proprietà, fare riferimento a Nodo MQGet.
Nel diagramma riportato di seguito viene descritto nei dettagli la procedura di creazione mediante il nodo MQGet del MQMD da utilizzare nella chiamata a WebSphere MQ:
Nel seguente diagramma viene descritta la procedura di creazione dell'albero dei messaggi di output combinando la struttura di input dal nodo precedente con la struttura risultato dalla chiamata MQGet:
Di seguito vengono riportati alcuni esempi di procedura per la creazione di alberi dei messaggi secondo le regole descritte sopra.
Con il seguente assemblaggio del messaggio: | Il messaggio restituito da MQGet è: |
---|---|
|
![]()
![]() |
Con le seguenti impostazioni: | L'assemblaggio del messaggio di output risultato è: |
---|---|
|
|
|
Questa struttura è il risultato dell'elaborazione di un'assegnazione da ${resultDataLocation} a ${outputDataLocation}. Il valore dell'elemento di origine viene copiato con tutti gli elementi child, compresi gli attributi. |
|
Questa struttura dispone di MQMD utilizzato per il richiamo in OutputLocalEnvironment poiché all'interno dell'ubicazione dei parametri MQ di input era presente un elemento MQMD. Anche se la struttura di input non viene copiata, la presenza dell'elemento MQMD provoca il posizionamento nella struttura di output di MQMD utilizzato per il richiamo. |
|
L'impostazione di copyMessage in questo caso non modifica la struttura di output finale. |