Condividi tramite


MQSCorrelationSetOrchestrationWithSolicitResponse (esempio di BizTalk Server)

L'esempio MQSCorrelationSetOrchestrationWithSolicitResponse illustra come usare un identificatore di correlazione prodotto dal server MQSeries anziché da BizTalk Server.

Scopo dell'esempio

L'orchestrazione invia un messaggio con un valore vuoto per la proprietà MQMD_MsgID nell'intestazione del messaggio. MQSeries genera MessageID e CorrelationID e restituisce un messaggio con un valore assegnato a MQMD_MsgID e MQMD_CorrelId come parte della risposta nella porta di trasmissione solicit-response dell'adapter. L'orchestrazione usa l'identificatore di correlazione generato per inizializzare il set di correlazioni e segue il set di correlazione in una posizione di ricezione successiva controllando la proprietà MQMD_CorrelId del messaggio. L'adattatore assegna anche l'identificatore di correlazione a BizTalk_CorrelationID, che è possibile usare anche in un'orchestrazione. Per altre informazioni sull'uso di identificatori di correlazione con l'adapter, vedere Correlazione dei messaggi tramite Request-Reply.

Importante

È possibile che si verifichino problemi per le orchestrazioni che utilizzano questa tecnica, se il messaggio dal server MQSeries arriva prima dell'identificatore di correlazione. Progettare le orchestrazioni in modo da concedere al server MQSeries il tempo sufficiente per restituire l'identificatore di correlazione. Nell'esempio questa possibile race condition non viene tenuta in considerazione.

Percorso dell'esempio

<Samples Path>\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestrationWithSolicitResponse

Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.

File Descrizione
MQSCorrelationSolicitResponse.btproj,

MQSCorrelationSolicitResponse.sln
File di progetto e soluzione per l'applicazione.
MQSCorrelationSolicitResponse.odx File di orchestrazione BizTalk per l'applicazione.
MQSCorrelationSolicitResponse.snk File di chiave con nome sicuro.
Setup.bat Compila e inizializza l'esempio.

Modalità di utilizzo dell'esempio

Per creare l'applicazione, è necessario completare la procedura seguente:

  • Creare due code MQSeries.

  • Configurare un percorso di ricezione BizTalk Server e la porta di trasmissione.

  • Abilitare l'indirizzo di ricezione.

  • Avviare la porta di trasmissione.

  • Creare le cartelle appropriate.

  • Modificare l'orchestrazione.

  • Distribuire, eseguire il binding e avviare l'orchestrazione.

    Se si dispone delle autorizzazioni necessarie per eseguire l'installazione di Windows nel server MQSeries, è possibile creare la coda MQSeries tramite le finestre di dialogo dell'adapter e saltare la procedura seguente. Se non si dispone delle autorizzazioni di accesso necessarie, è possibile creare la coda mediante IBM WebSphere MQ Explorer. A tale scopo, completare la procedura seguente.

Creazione delle code MQSeries tramite WebSphere MQ Explorer

Per creare le code MQSeries tramite WebSphere MQ Explorer

  1. Fare clic su Start, scegliere Tutti i programmi, IBM WebSphere MQ, quindi Fare clic su WebSphere MQ Explorer.

  2. Fare doppio clic su Gestione code, quindi fare doppio clic sul gestore code predefinito. Il gestore code predefinito è in genere denominato QM_<machine_name> dove machine_name è il nome del computer.

  3. Fare clic con il pulsante destro del mouse su Code, scegliere Nuovoe quindi fare clic su Coda locale.

  4. Nella finestra di dialogo Crea coda locale digitare "REPLYTOQ" in Nome coda e quindi fare clic su OK.

  5. Fare clic con il pulsante destro del mouse su Code, scegliere Nuovo, quindi fare clic su Coda locale.

  6. Nella finestra di dialogo Crea coda locale digitare "SOLICITRESPONSEQ" in Nome coda e quindi fare clic su OK.

Creazione dell'indirizzo di ricezione e della coda MQSeries

Questa procedura consente di creare la porta di trasmissione a cui inviare il messaggio e l'indirizzo di ricezione per la ricezione del messaggio correlato da MQSeries. Se non è stata ancora creata, anche la coda MQSeries verrà creata al momento della creazione dell'indirizzo di ricezione.

Per creare l'indirizzo di ricezione e la coda MQSeries

  1. Aprire la Console di amministrazione BizTalk Server.

  2. Espandere BizTalk Server Amministrazione, gruppo BizTalk, applicazioni e quindi espandere l'applicazione richiesta.

  3. Fare clic con il pulsante destro del mouse su Porte di ricezione, scegliere Nuovo e quindi fare clic su Porta di ricezione unidirezionale.

  4. Nella finestra di dialogo Proprietà porta di ricezione unidirezionale digitare "MQReply" nella casella Nome e fare clic su OK.

  5. Nel riquadro sinistro fare clic sulla scheda Località di ricezione e quindi su Nuovo.

  6. Nella casella Nome della finestra di dialogo Proprietà posizione di ricezione digitare "MQReply".

  7. Nella casella Tipo di trasporto selezionare MQSeries.

  8. Nella casella Gestore di ricezione selezionare BizTalkServerApplication.

  9. Nella casella Pipeline di ricezione selezionare Microsoft.BizTalk.DefaultPipelines.PassThruReceive.

  10. Fare clic su Configure.

  11. Nella casella Intervallo di polling della finestra di dialogo Proprietà trasporto MQSeries digitare "10".

  12. Nella casella Definizione coda fare clic sul pulsante con i puntini di sospensione (...) .

  13. Nella casella Nome server della finestra di dialogo Definizione coda digitare il nome del computer.

  14. Nella casella Gestione code selezionare il gestore code predefinito.

  15. Nella casella Coda digitare " REPLYTOQ" e quindi fare clic su Esporta.

  16. Nella finestra di dialogo Esporta fare clic su Crea coda e quindi suOKo Fine fino a quando non sono state completate tutte le finestre di dialogo.

Creazione della porta di trasmissione e della coda MQSeries

Per creare la porta di trasmissione e la coda MQSeries

  1. Fare clic con il pulsante destro del mouse su Porte di trasmissione, scegliere Nuovo e quindi fare clic su Porta di trasmissione unidirezionale statica.

  2. Nella casella Nome della finestra di dialogo Proprietà porta di trasmissione digitare "MQSolicitResponse".

  3. Nella casella Tipo di trasporto selezionare MQSeries.

  4. Nella casella Invia pipeline selezionare Microsoft.BizTalk.DefaultPipelines.PassThruTransmit.

  5. Nella casella Pipeline di ricezione selezionare Microsoft.BizTalk.DefaultPipelines.PassThruReceive.

  6. Fare clic su Configure.

  7. Nella finestra di dialogo Proprietà trasporto MQSeries fare clic sul pulsante con i puntini di sospensione (...) nella casella Definizione coda .

  8. Nella casella Nome server della finestra di dialogo Definizione coda digitare il nome del computer.

  9. Nella casella Gestione code selezionare il gestore code predefinito.

  10. Nella casella Coda digitare " SOLICITRESPONSEQ" e quindi fare clic su Esporta.

  11. Nella finestra di dialogo Esporta fare clic su Crea coda e quindi su OK o Fine fino a quando non sono state completate tutte le finestre di dialogo.

Abilitazione dell'indirizzo di ricezione e avvio della porta di trasmissione

Questa procedura consente di creare le cartelle necessarie per ricevere il file nell'orchestrazione e di inviare il messaggio correlato e il messaggio di risposta alle cartelle di output.

Per abilitare l'indirizzo di ricezione e avviare la porta di trasmissione

  1. Nella console di amministrazione di BizTalk Server fare clic su Porte di ricezione.

  2. Nel riquadro dei dettagli fare clic con il pulsante destro del mouse sul percorso di ricezione MQIn e scegliere Abilita.

  3. Nel riquadro dei dettagli fare clic con il pulsante destro del mouse sulla porta di trasmissione MQOut e scegliere Avvia.

Creazione delle cartelle utilizzate dall'applicazione

Per creare le cartelle utilizzate dall'applicazione

  1. Se non esiste già, creare una cartella denominata "temp" sull'unità C:\.

  2. Creare cartelle nella directory C:\temp denominata "Pickup2", "Dropit2" e "MoveIt".

Modifica dell'orchestrazione utilizzata dall'applicazione

Questa procedura consente di modificare l'orchestrazione utilizzata dall'applicazione.

Per modificare l'orchestrazione usata dall'applicazione:

  1. In Microsoft Visual Studio fare doppio clic sul file della soluzione MQSCorrelationSolicitResponse.sln per aprire la soluzione.

  2. Nel riquadro Esplora soluzioni fare doppio clic sull'orchestrazione MQSCorrelationSolicitResponse.odx per visualizzare l'orchestrazione.

  3. Fare doppio clic sulla forma di assegnazione del messaggio MessageAssignment_1 per avviare l'Editor espressioni BizTalk.

  4. Immettere il nome del gestore code MQSeries appropriato per l'espressione seguente:

    MQSeriesRequestSendMessage(MQSeries.MQMD_ReplyToQMgr) = "QM_<machine_name>";

  5. Se si desidera che il messaggio di risposta inviato da BizTalk includa l'intero contenuto del messaggio originale invece dei primi 100 byte soltanto, modificare la riga seguente nell'Editor espressioni BizTalk.

    • Riga originale:

      MQSeriesRequestSendMessage(MQSeries.MQMD_Report) = 768;

    • Modificare in:

      MQSeriesRequestSendMessage(MQSeries.MQMD_Report) = 1792;

  6. Nell'editor di espressioni BizTalk fare clic su OK per salvare l'espressione modificata.

  7. In Visual Studio selezionare File e quindi Salva tutto.

Compilazione e distribuzione dell'esempio

Questa procedura consente di compilare e distribuire la soluzione contenente l'orchestrazione utilizzata nell'applicazione.

Per compilare e distribuire l'esempio

  1. In una finestra di comando passare alla seguente cartella:

    <Samples Path>\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestrationWithSolicitResponse

  2. Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:

    1. Crea una chiave con nome sicuro per il progetto.

    2. Compila e distribuisce il progetto di orchestrazione.

    3. Creazione di una porta di trasmissione e di una porta di ricezione con l'adapter FILE.

    Nota

    Poiché questa orchestrazione specifica i binding per la trasmissione e la ricezione di file con l'adapter file, quando si distribuisce l'orchestrazione, verranno creati le porte di trasmissione, la porta di ricezione e l'indirizzo di ricezione necessari per la ricezione di un file nell'orchestrazione e per l'output del messaggio di correlazione e del messaggio di risposta.

Binding e avvio dell'orchestrazione

Questa procedura consente di eseguire il binding dell'orchestrazione all'host e alle porte di trasmissione e agli indirizzi di ricezione appropriati.

Per eseguire il binding dell'orchestrazione e avviarla

  1. Nella console di amministrazione di BizTalk Server espandere la cartella Orchestrations.

  2. Nel riquadro dei dettagli fare clic con il pulsante destro del mouse sull'orchestrazione MQSCorrelationSolicitResponse e scegliere Associa.

  3. Associare le porte dell'orchestrazione ai seguenti indirizzi di ricezione e porte di trasmissione:

    Porta dell'orchestrazione Porta di messaggistica / indirizzo di ricezione
    FileReceivePort MQSCorrelationSolicitResponse.Orchestration.FileReceivePort
    MQSeriesResponseReceivePort MQReply
    SolicitResponsePort MQSolicitResponse
    TempPort MQSCorrelationSolicitResponse.Orchestration.TempPort
    FileSendPort MQSCorrelationSolicitResponse.Orchestration.FileSendPort
  4. Fare clic su Host.

  5. Nella casella Host selezionare BizTalkServerApplication e fare clic su OK.

  6. In Invia porte fare clic con il pulsante destro del mouse su MQSCorrelationSolicitResponse.Orchestration.TempPort e quindi selezionare Avvia.

  7. In Invia porte fare clic con il pulsante destro del mouse su MQSCorrelationSolicitResponse.Orchestration.FileSendPort e quindi selezionare Start.

  8. In Posizioni di ricezione fare clic con il pulsante destro del mouse su MQSCorrelationSolicitResponse.Orchestration.FileReceivePort e quindi selezionare Abilita.

  9. Fare clic con il pulsante destro del mouse sull'orchestrazione e scegliere Start.

    Nota

    L'avvio dell'orchestrazione ne determina anche l'integrazione automatica.

Test dell'applicazione

Questa procedura consente di testare l'applicazione.

Per testare l'applicazione

  1. Inserire un file nella cartella C:\Temp\Pickup2 .

  2. Esaminare i file nella cartella C:\Temp\Dropit2 e nella cartella C:\Temp\Moveit.

    • La cartella C:\Temp\Dropit2 deve contenere una copia del messaggio originariamente selezionato da BizTalk Server.

    • La cartella C:\Temp\Moveitdeve contenere un documento di risposta con l'identificatore di messaggio (MQMD_MsgId) e l'identificatore di correlazione (MQMD_CorrelId).

    Nota

    Se si disabilita la posizione di ricezione MQReply , è possibile esaminare il messaggio in WebSphere MQ Explorer e vedere che vengono impostati i messaggi e gli identificatori di correlazione. A tale scopo, avviare WebSphere MQ Explorer ed esaminare il messaggio inserito nella coda REPLYTOQ . I messaggi e gli identificatori di correlazione vengono visualizzati nella scheda Identificatori della finestra di dialogo Proprietà messaggio .

Vedere anche

Correlazione di messaggi mediante richiesta-risposta
Esempi di adapter MQSeries