MQSCorrelationSetOrchestrationWithSolicitResponse (BizTalk Server-Beispiel)
Im Beispiel MQSCorrelationSetOrchestrationWithSolicitResponse wird veranschaulicht, wie ein vom MQSeries-Server erzeugter Korrelationsbezeichner anstelle von BizTalk Server verwendet wird.
Ziel des Beispiels
Die Orchestrierung sendet eine Nachricht mit einem leeren Wert für die eigenschaft MQMD_MsgID im Nachrichtenheader. MQSeries generiert die MessageID und CorrelationID und gibt eine Nachricht mit einem Wert zurück, der MQMD_MsgID und MQMD_CorrelId als Teil der Antwort im Solicit-Response-Sendeport des Adapters zugewiesen ist. Die Orchestrierung verwendet den generierten Korrelationsbezeichner, um den Korrelationssatz zu initialisieren und folgt dem Korrelationssatz an einem nachfolgenden Empfangsspeicherort, indem die MQMD_CorrelId-Eigenschaft der Nachricht überprüft wird. Der Adapter weist den Korrelationsbezeichner auch BizTalk_CorrelationID zu, die Sie auch in einer Orchestrierung verwenden können. Weitere Informationen zur Verwendung von Korrelationsbezeichnern mit dem Adapter finden Sie unter Correlating Messages Using Request-Reply.
Wichtig
In Orchestrierungen, die diese Technik verwenden, können Probleme auftreten, wenn die Nachricht von MQSeries Server vor dem Korrelationsbezeichner eingeht. Stellen Sie sicher, dass Sie die Orchestrierung so entwerfen, dass ein ausreichender Zeitraum für den Eingang des Korrelationsbezeichners von MQSeries Server vorgesehen wird. Dieses Beispiel berücksichtigt diese mögliche Racebedingung nicht.
Speicherort dieses Beispiels
<Samples Path>\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestrationWithSolicitResponse
In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.
File | Beschreibung |
---|---|
MQSCorrelationSolicitResponse.btproj, MQSCorrelationSolicitResponse.sln |
Projekt- und Projektmappendateien für die Anwendung. |
MQSCorrelationSolicitResponse.odx | Die BizTalk-Orchestrierungsdatei für die Anwendung. |
MQSCorrelationSolicitResponse.snk | Die Schlüsseldatei für starke Benennung. |
Setup.bat | Erstellt und initialisiert dieses Beispiel. |
Verwenden dieses Beispiels
Gehen Sie folgendermaßen vor, um die Anwendung zu erstellen:
Erstellen Sie zwei MQSeries-Warteschlangen.
Richten Sie einen BizTalk Server Empfangsspeicherort und Sendeport ein.
Aktivieren Sie den Empfangsspeicherort.
Starten Sie den Sendeport.
Erstellen Sie die entsprechenden Ordner.
Ändern Sie die Orchestrierung.
Stellen Sie die Orchestrierung bereit, binden und starten Sie sie.
Wenn Sie über die erforderlichen Berechtigungen für die Installation von MQSeries-Server für Windows verfügen, können Sie die MQSeries-Warteschlange über die Adapterdialogfelder erstellen und das nächste Verfahren überspringen. Verfügen Sie nicht über den erforderlichen Zugriff, können Sie die Warteschlange mithilfe von IBM WebSphere MQ Explorer erstellen. Um die Warteschlange mit WebSphere MQ Explorer zu erstellen, führen Sie die folgenden Schritte aus.
Erstellen der MQSeries-Warteschlangen mit WebSphere MQ Explorer
So erstellen Sie die MQSeries-Warteschlangen mit WebSphere MQ Explorer
Klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf IBM WebSphere MQ, und klicken Sie dann auf WebSphere MQ Explorer.
Doppelklicken Sie auf Warteschlangen-Manager, und doppelklicken Sie dann auf den Standardwarteschlangen-Manager. Der Standardwarteschlangen-Manager heißt in der Regel QM_<machine_name> wobei machine_name der Name Ihres Computers ist.
Klicken Sie mit der rechten Maustaste auf Warteschlangen, zeigen Sie auf Neu, und klicken Sie dann auf Lokale Warteschlange.
Geben Sie im Dialogfeld Lokale Warteschlange erstellen unter Warteschlangenname den Namen "REPLYTOQ" ein, und klicken Sie dann auf OK.
Klicken Sie mit der rechten Maustaste auf Warteschlangen, klicken Sie auf Neu, und klicken Sie dann auf Lokale Warteschlange.
Geben Sie im Dialogfeld Lokale Warteschlange erstellen unter Warteschlangenname den Namen "SOLICITRESPONSEQ" ein, und klicken Sie dann auf OK.
Erstellen des Empfangsspeicherorts und der MQSeries-Warteschlange
Mit diesem Verfahren werden der Sendeport und der Empfangsspeicherort für das Senden der Nachricht und den Empfang der Korrelationsnachricht von MQSeries erstellt. Die MQSeries-Warteschlange wird beim Erstellen des Empfangsspeicherorts erstellt, sofern sie nicht bereits erstellt wurde.
So erstellen Sie den Empfangsspeicherort und die MQSeries-Warteschlange
Öffnen Sie die BizTalk Server-Verwaltungskonsole.
Erweitern Sie BizTalk Server Verwaltung, BizTalk-Gruppe, Anwendungen und dann die erforderliche Anwendung.
Klicken Sie mit der rechten Maustaste auf Empfangsports, zeigen Sie auf Neu, und klicken Sie dann auf Unidirektionale Empfangsport.
Geben Sie im Dialogfeld Eigenschaften für unidirektionale Empfangsports im Feld Name "MQReply" ein, und klicken Sie auf OK.
Klicken Sie im linken Bereich auf die Registerkarte Empfangsspeicherorte , und klicken Sie dann auf Neu.
Geben Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Feld Name den Namen "MQReply" ein.
Wählen Sie im Feld Transporttyp die Option MQSeries aus.
Wählen Sie im Feld Empfangshandler die Option BizTalkServerAnwendung aus.
Wählen Sie im Feld Empfangspipelinedie Option Microsoft.BizTalk.DefaultPipelines.PassThruReceive aus.
Klicken Sie auf Konfigurieren.
Geben Sie im Dialogfeld MQSeries-Transporteigenschaften im Feld Abrufintervall den Wert "10" ein.
Klicken Sie im Feld Warteschlangendefinition auf die Schaltfläche mit den Auslassungspunkten (...).
Geben Sie im Dialogfeld Warteschlangendefinition im Feld Servername den Computernamen ein.
Wählen Sie im Feld Warteschlangen-Manager den Standardwarteschlangen-Manager aus.
Geben Sie im Feld Warteschlange den Wert "REPLYTOQ" ein, und klicken Sie dann auf Exportieren.
Klicken Sie im Dialogfeld Exportieren auf Warteschlange erstellen, und klicken Sie dann aufOKoder Fertig , bis Sie alle Dialogfelder beendet haben.
Erstellen des Sendeports und der MQSeries-Warteschlange
So erstellen Sie den Sendeport und die MQSeries-Warteschlange
Klicken Sie mit der rechten Maustaste auf Sendeports, zeigen Sie auf Neu, und klicken Sie dann auf Statischer unidirektionale Sendeport.
Geben Sie im Dialogfeld Porteigenschaften senden im Feld Name den Namen "MQSolicitResponse" ein.
Wählen Sie im Feld Transporttyp die Option MQSeries aus.
Wählen Sie im Feld Pipeline senden die Option Microsoft.BizTalk.DefaultPipelines.PassThruTransmit aus.
Wählen Sie im Feld Empfangspipelinedie Option Microsoft.BizTalk.DefaultPipelines.PassThruReceive aus.
Klicken Sie auf Konfigurieren.
Klicken Sie im Dialogfeld MQSeries-Transporteigenschaften im Feld Warteschlangendefinition auf die Schaltfläche mit den Auslassungspunkten (...).
Geben Sie im Dialogfeld Warteschlangendefinition im Feld Servername den Computernamen ein.
Wählen Sie im Feld Warteschlangen-Manager den Standardwarteschlangen-Manager aus.
Geben Sie im Feld Warteschlange " SOLICITRESPONSEQ" ein, und klicken Sie dann auf Exportieren.
Klicken Sie im Dialogfeld Exportieren auf Warteschlange erstellen, und klicken Sie dann auf OK oder Fertig , bis Sie alle Dialogfelder beendet haben.
Aktivieren des Empfangsspeicherorts und Starten des Sendeports
In diesem Verfahren werden die Ordner erstellt, die zum Empfangen der Datei in der Orchestrierung und zum Senden der korrelierten Nachricht sowie der Antwortnachricht an die Ausgabeordner erforderlich sind.
So aktivieren Sie den Empfangsspeicherort und starten den Sendeport
Klicken Sie in der BizTalk Server-Verwaltungskonsole auf Empfangsports.
Klicken Sie im Detailbereich mit der rechten Maustaste auf den MQIn-Empfangsspeicherort , und klicken Sie auf Aktivieren.
Klicken Sie im Detailbereich mit der rechten Maustaste auf den MQOut-Sendeport , und klicken Sie auf Start.
Erstellen der von der Anwendung verwendeten Ordner
So erstellen Sie die von der Anwendung verwendeten Ordner
Erstellen Sie einen Ordner namens "temp" auf dem Laufwerk "C:\", wenn dieser nicht bereits vorhanden ist.
Erstellen Sie Ordner im Verzeichnis C:\temp mit den Namen "Pickup2", "Dropit2" und "MoveIt".
Ändern der von der Anwendung verwendeten Orchestrierung
Dieses Verfahren ändert die Orchestrierung, die von der Anwendung verwendet wird.
So ändern Sie die von der Anwendung verwendete Orchestrierung:
Doppelklicken Sie in Microsoft Visual Studio auf die Projektmappendatei MQSCorrelationSolicitResponse.sln, um die Projektmappe zu öffnen.
Doppelklicken Sie im bereich Projektmappen-Explorer auf die Orchestrierung MQSCorrelationSolicitResponse.odx, um die Orchestrierung anzuzeigen.
Doppelklicken Sie auf das Nachrichtenzuweisungs-Shape MessageAssignment_1 , um den BizTalk-Ausdrucks-Editor zu starten.
Geben Sie den Namen des entsprechenden MQSeries-Warteschlangen-Managers für den folgenden Ausdruck ein:
MQSeriesRequestSendMessage(MQSeries.MQMD_ReplyToQMgr) = "QM_<machine_name>";
Wenn Sie wünschen, dass die von BizTalk gesendete Antwortnachricht den gesamten Inhalt der ursprünglichen Nachricht anstatt nur die ersten 100 Bytes enthält, ändern Sie die folgende Zeile im BizTalk-Ausdrucks-Editor.
Ursprüngliche Zeile:
MQSeriesRequestSendMessage(MQSeries.MQMD_Report) = 768;
Änderung:
MQSeriesRequestSendMessage(MQSeries.MQMD_Report) = 1792;
Klicken Sie im BizTalk-Ausdrucks-Editor auf OK , um den geänderten Ausdruck zu speichern.
Wählen Sie in Visual Studio Datei und dann Alle speichern aus.
Erstellen und Bereitstellen des Beispiels
In diesem Verfahren wird das Projekt erstellt und bereitgestellt, das die in dieser Anwendung verwendete Orchestrierung enthält.
So erstellen Sie das Beispiel und stellen es bereit
Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:
<Samples Path>\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestrationWithSolicitResponse
Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:
Sie erstellt einen Schlüssel mit starkem Namen für das Projekt.
Sie kompiliert das Orchestrierungsprojekt und stellt es bereit.
Sie erstellt einen Sendeport und einen Empfangsport mit dem Dateiadapter.
Hinweis
Da diese Orchestrierung die Bindungen für das Senden und Empfangen mit dem Dateiadapter angibt, werden beim Bereitstellen der Orchestrierung die erforderlichen Sendeports, der Empfangsport und der Empfangsspeicherort für den Empfang einer Datei in der Orchestrierung und die Ausgabe der Korrelationsnachricht und der Antwortnachricht erstellt.
Binden und Starten der Orchestrierung
Dieses Verfahren bindet die Orchestrierungsports an den Host sowie an die entsprechenden Sendeports und Empfangsspeicherorte.
So binden und starten Sie die Orchestrierung
Erweitern Sie in der BizTalk Server Verwaltungskonsole den Ordner Orchestrierungen.
Klicken Sie im Detailbereich mit der rechten Maustaste auf die Orchestrierung MQSCorrelationSolicitResponse , und klicken Sie auf Binden.
Binden Sie die Orchestrierungsports an folgende Sendeports und Empfangsspeicherorte:
Orchestrierungsport Messagingport/Empfangsspeicherort FileReceivePort MQSCorrelationSolicitResponse.Orchestration.FileReceivePort MQSeriesResponseReceivePort MQReply SolicitResponsePort MQSolicitResponse TempPort MQSCorrelationSolicitResponse.Orchestration.TempPort FileSendPort MQSCorrelationSolicitResponse.Orchestration.FileSendPort Klicken Sie auf Host.
Wählen Sie im Feld Host die Option BizTalkServerAnwendung aus , und klicken Sie auf OK.
Klicken Sie unter Sendeports mit der rechten Maustaste auf MQSCorrelationSolicitResponse.Orchestration.TempPort, und wählen Sie dann Start aus.
Klicken Sie unter Sendeports mit der rechten Maustaste auf MQSCorrelationSolicitResponse.Orchestration.FileSendPort, und wählen Sie dann Start aus.
Klicken Sie unter Empfangsorte mit der rechten Maustaste auf MQSCorrelationSolicitResponse.Orchestration.FileReceivePort, und wählen Sie dann Aktivieren aus.
Klicken Sie mit der rechten Maustaste auf die Orchestrierung, und klicken Sie auf Start.
Hinweis
Durch das Starten der Orchestrierung wird sie auch automatisch eingetragen.
Testen der Anwendung
Dieses Verfahren testet die Anwendung.
So testen Sie die Anwendung
Speichern Sie eine Datei im Ordner C:\Temp\Pickup2 .
Untersuchen Sie die Dateien im Ordner C:\Temp\Dropit2 und im Ordner C:\Temp\Moveit.
Der Ordner C:\Temp\Dropit2 sollte eine Kopie der Nachricht enthalten, die ursprünglich von BizTalk Server aufgenommen wurde.
Der Ordner C:\Temp\Moveitsollte ein Antwortdokument mit dem Nachrichtenbezeichner (MQMD_MsgId) und dem Korrelationsbezeichner (MQMD_CorrelId) enthalten.
Hinweis
Wenn Sie den MqReply-Empfangsspeicherort deaktivieren, können Sie die Nachricht in WebSphere MQ Explorer untersuchen und feststellen, dass die Nachrichten- und Korrelationsbezeichner festgelegt sind. Starten Sie hierzu die WebSphere MQ-Explorer, und untersuchen Sie die Nachricht, die in der REPLYTOQ-Warteschlange platziert wurde. Die Nachrichten- und Korrelationsbezeichner werden auf der Registerkarte Bezeichner des DialogfeldsNachrichteneigenschaften angezeigt.
Weitere Informationen
Korrelieren von Nachrichten über Anforderung-Antwort
Beispiele für MQSeries-Adapter