Condividi tramite


Esempio DynamicReceive (esempio di BizTalk Server)

L'esempio DynamicReceive illustra come ricevere BizTalk Server messaggi da una coda MQSeries quando l'URI per la coda MQSeries viene specificato in modo dinamico.

Scopo dell'esempio

Questo esempio crea dinamicamente una coda MQSeries come specificato dalle variabili queueManager, queue e server . Consente uno scenario di ricezione dinamico e ottiene BizTalk Server messaggi dalla coda MQSeries specificata dinamicamente in base ai criteri di filtro specificati nella MQMD_MsgId e MQMD_CorrelId proprietà del messaggio.

Progettazione e finalità dell'esempio

L'adapter MQSeries è in grado di ricevere messaggi in modo dinamico da una coda MQSeries tramite la specifica dell'indirizzo URI della coda nell'orchestrazione. Questa funzionalità viene ottenuta utilizzando una porta di trasmissione sollecitazione-risposta nell'orchestrazione.

Per ricevere messaggi in modo dinamico, specificare quanto segue in una forma Espressione nell'orchestrazione:

  1. Abilitare la ricezione dinamica impostando la proprietà seguente nel messaggio BizTalk Server: MQSeries.DynamicReceive = 'Yes'

  2. Specificare l'indirizzo dal quale ottenere i messaggi impostando l'URI della porta. A scelta, è possibile specificare le seguenti informazioni:

    • Specificare l'intervallo di attesa prima di ottenere i messaggi usando la proprietà MQSeries.WaitInterval nel messaggio.

    • Specificare i criteri di corrispondenza per ricevere i messaggi. Le opzioni dei criteri di corrispondenza sono ID messaggio, CorrelationID, GroupID e MessageSequenceNumber. Per altri dettagli, vedere "Proprietà correlate a BizTalk Server".https://go.microsoft.com/fwlink/?LinkId=89396

    Una volta creato il messaggio con queste proprietà, questo viene inviato alla coda MQSeries mediante la porta di trasmissione sollecitazione-risposta. La porta indica all'adapter di ricevere i messaggi dall'URI specificato con le opzioni di corrispondenza specificate. Di seguito sono indicati i risultati di queste azioni:

  • Se i criteri di filtro per ottenere un messaggio vengono soddisfatti, il messaggio viene recuperato dalla coda e inviato nuovamente all'orchestrazione.

  • Se i criteri di filtro per ottenere un messaggio non vengono soddisfatti, viene restituita una risposta fittizia. Ciò indica che le opzioni specificate non hanno restituito alcun messaggio dalla coda.

    L'utilizzo della funzionalità di ricezione dinamica fornisce ulteriore flessibilità, in quanto non è richiesto un indirizzo di ricezione fisso. In alcuni casi, è possibile che non si conosca l'URI fino al runtime. La funzionalità di ricezione dinamica consente di determinare in modo dinamico l'indirizzo dal quale ottenere i messaggi. In tal modo, non è necessario implementare un accordo in coda all'interno di un'orchestrazione. È possibile attendere per ottenere i messaggi utilizzando un URI specificato in modo dinamico dalla coda MQSeries basata sui criteri di corrispondenza specificati.

Percorso dell'esempio

<Percorso esempi>\Samples\AdaptersUsage\MQSeriesAdapter\DynamicReceive

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

File Descrizione
DynamicReceive.btproj,

DynamicReceive.sln
File di progetto e soluzione per l'applicazione.
DynamicReceive e.odx File di orchestrazione BizTalk per l'applicazione.
Setup.bat File batch per creare il file chiave, compilare il progetto e distribuirlo.

Modalità di utilizzo dell'esempio

Specificare Microsoft.XLANGs.BaseTypes.Address appropriato per la soluzione. Modificare MQSeries.WaitInterval per specificare quando si prevede di ricevere i messaggi di risposta. Aggiornare o aggiungere le opzioni di corrispondenza oppure rimuoverle se si pianifica di ottenere tutti i messaggi.

Compilazione ed esecuzione dell'esempio

Per creare l'esempio

  1. Creare un nuovo progetto di orchestrazione in Microsoft Visual Studio.

  2. Abilitare l'operazione di ricezione dinamica impostando la proprietà MQSeries.DynamicReceive nel messaggio BizTalk Server su 'Yes'.

  3. Specificare l'indirizzo da cui ottenere i messaggi impostando l'URI della porta.

  4. A scelta, è possibile specificare le due proprietà seguenti:

    1. Specificare un intervallo di attesa prima di ottenere i messaggi usando la proprietà MQSeries.WaitInterval nel messaggio.

    2. Specificare i criteri di corrispondenza per ricevere i messaggi. Per ulteriori informazioni, vedere la guida sulle opzioni di corrispondenza.

  5. Modificare le seguenti variabili dell'orchestrazione per specificare l'indirizzo dal quale ottenere i messaggi:

    • Coda, queueManager e server. Vengono usati per compilare l'URI nella forma Espressione .
  6. Modificare la forma Espressione per impostare come commento la creazione dinamica della coda e le opzioni di corrispondenza in base alle esigenze.

  7. È possibile creare e distribuire il progetto in uno dei modi indicati di seguito:

    • Aprire la soluzione, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Proprietà per visualizzare le proprietà del progetto. Nella scheda Firma fare clic su <Nuovo nella> casella di riepilogo a discesa Scegliere un file di chiave con nome sicuro . Quindi fornire un nome file chiave e distribuire.

    • In alternativa, eseguire il file setup.bat che crea il file chiave, genera il progetto e lo distribuisce.

Per eseguire l'esempio

  1. Associare l'orchestrazione all'host BizTalk.

  2. Attivare la porta di ricezione file creata dall'orchestrazione. Modificare il percorso di ricezione del file da c:\temp\in alla cartella file appropriata.

  3. Integrare e avviare le due porte di trasmissione create. Una porta è di tipo dinamico sollecitazione-risposta, mentre l'altra è una porta di trasmissione file ed è la coda nella quale verrà inviato il messaggio. Accertarsi che sia impostata sull'indirizzo corretto.

  4. Per avviare l'orchestrazione, rilasciare un file nella cartella di immissione. In questo modo viene richiamato l'adapter MQSeries e viene chiamato il componente COM+ MQSAgent2 nel server specificato per ottenere il messaggio. Il messaggio ricevuto viene visualizzato nel percorso cartella specificato nella porta di trasmissione file.

  5. Se non viene trovato alcun messaggio corrispondente ai criteri specificati nella forma Espressione , nella cartella di output viene eliminato un messaggio fittizio. Per disabilitare le opzioni di corrispondenza, impostare come commento le ultime due righe nella forma Espressione .

Commenti

  • Se la coda è creata in modo dinamico, ma non viene eliminata, causerà degli errori al momento dell'attivazione della successiva istanza di orchestrazione.

  • Esistono altri modi per impostare l'URI in modo dinamico. In questo esempio ne viene specificato uno. Ad esempio, è possibile impostare l'URI leggendo una determinata proprietà nel contesto del messaggio.

  • Se nella coda non sono presenti altri messaggi che soddisfano le opzioni di corrispondenza, viene restituito un messaggio fittizio.

  • Dal momento che in questo esempio si utilizzano porte di trasmissione dinamiche, potrebbe essere necessario specificare altre opzioni, ad esempio i tentativi e le transazioni. Utilizzare le proprietà di contesto esposte dall'adapter per impostare le opzioni prima di inviare il messaggio alla porta dinamica sollecitazione-risposta.

  • Le code MQSeries possono essere create ed eliminate in modo dinamico usando l'interfaccia MQSAdapterAdmin2 . Per un esempio di come creare dinamicamente code MQSeries, vedere "Supporto per la gestione delle code" all'indirizzo https://go.microsoft.com/fwlink/?LinkId=89400.