Vorgehensweise: Routing einer einzelnen Nachricht an mehrere Empfänger mithilfe eines programmablaufbasierten Verteilers

Zielsetzung

In diesem Abschnitt wird veranschaulicht, wie Sie die Designer domänenspezifische Sprache (DSL) verwenden, um eine Reiseroute zu erstellen, die eine Nachricht mithilfe eines statischen Resolvers und des BizTalk Server FILE-Adapters an drei verschiedene Empfänger weitergibt.

In diesem Thema führen Sie die folgenden Schritte aus:

  • Erstellen Sie eine Reiseroute mit drei statischen Resolvern, um Nachrichten an mehrere Empfänger weiterzuleiten.

  • Testen Sie die Reiseroute mithilfe der Beispielanwendung routey Test Client.

Voraussetzungen

Die Prozeduren in diesem Thema erfordern den Abschluss der Voraussetzungen für die Entwicklungsaktivitäten.

Schritte

So erstellen Sie ein DSL-Modell für eine ESB-Reiseroute

  1. Öffnen Sie in Visual Studio C:\HowTos\Patterns\Patterns.sln.

  2. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf ReiserouteLibrary, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neue Reiseroute.

  3. Klicken Sie im Dialogfeld Neues Element hinzufügen im Bereich Vorlagen auf ReiserouteDsl .

  4. Geben Sie im Feld Nameden Namen RecipientList ein, und klicken Sie dann auf Hinzufügen.

So konfigurieren Sie die Eigenschaften der Reiseroute

  1. Klicken Sie in Visual Studio auf die Entwurfsoberfläche von RecipientList.itinerary. Konfigurieren Sie im Eigenschaftenfenster RecipientList die folgenden Eigenschaften:

    1. Klicken Sie in der Dropdownliste Modellexporter auf XML-Reiseverlaufsexporter.

    2. Klicken Sie im Abschnitt Extendereinstellungen neben der Xml-Dateieigenschaft Routey auf die Schaltfläche mit den Auslassungspunkten (...).

    3. Geben Sie im Dialogfeld XML-Datei auswählen im Feld Dateinameden Namen C:\HowTos\Itineraries\RecipientList ein, und klicken Sie dann auf Speichern.

      Hinweis

      Mit diesem Schritt können Sie die Reiseroute als XML an einen lokalen Dateispeicherort exportieren. Durch exportieren einer Reiseroute in einen lokalen Dateispeicherort und nicht in die Reiseplandatenbank, ermöglicht das Testen der Reiseroute mithilfe der ESB-Testclientanwendung. Sie schließen diesen Prozess weiter unten in diesem Thema ab.

So definieren Sie die Struktur der Reiseroute

  1. Ziehen Sie aus der Toolbox ein On-Ramp-Modellelement auf die Entwurfsoberfläche. Konfigurieren Sie im OnRamp1-Eigenschaftenfenster die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie dann ReceiveNAOrder ein.

    2. Klicken Sie in der Dropdownliste Extender auf On-Ramp Extender .

    3. Klicken Sie in der Dropdownliste BizTalk-Anwendung auf Microsoft.Practices.ESB.

    4. Klicken Sie in der Dropdownliste Empfangsport auf OnRamp.Itinerary.

  2. Ziehen Sie aus der Toolbox ein Itinerary Service-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem On-Ramp-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie dann RouteToThrerecipients ein.

    2. Klicken Sie in der Dropdownliste Routey Service Extender auf Messaging Extender.

      Hinweis

      Diese Eigenschaft definiert, dass der Prozess in einer Pipeline (Messaging) stattfindet. Wenn der Prozess in einer Orchestrierung stattfindet, legen Sie alternativ die Eigenschaft Itinerary Service Extender auf Orchestration Extender fest.

    3. Erweitern Sie in der Dropdownliste Container den Eintrag ReceiveNaOrderDoc, und klicken Sie dann auf Empfangshandler.

    4. Klicken Sie in der Dropdownliste Dienstname auf Microsoft.Practices.ESB.Services.Routing.

  3. Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des RouteToThrerecipients-Modellelements , und klicken Sie dann auf Neuen Resolver hinzufügen. Konfigurieren Sie im Eigenschaftenfenster Resolver1 die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie firstResolver ein.

    2. Klicken Sie in der Dropdownliste Resolverimplementierung auf Statische Resolvererweiterung.

    3. Klicken Sie in der Dropdownliste Transportname auf DATEI.

    4. Klicken Sie auf die Eigenschaft Transportspeicherort , und geben Sie C:\HowTos\Out\First%MessageID%.xmlein.

      Hinweis

      Sie haben den ersten von drei Resolvern für diesen Reiseplandienst hinzugefügt. Sie fügen nun zwei weitere Resolver hinzu, um die Nachricht an weitere Empfänger weiterzuleiten.

  4. Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des RouteToThrerecipients-Modellelements , und klicken Sie dann auf Neuen Resolver hinzufügen. Konfigurieren Sie im Eigenschaftenfenster Resolver1 die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie SecondResolver ein.

    2. Klicken Sie in der Dropdownliste Resolverimplementierung auf Statische Resolvererweiterung.

    3. Klicken Sie in der Dropdownliste Transportname auf DATEI.

    4. Klicken Sie auf die Eigenschaft Transportspeicherort , und geben Sie dann C:\HowTos\Out\Second%MessageID%.xmlein.

  5. Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des RouteToThrerecipients-Modellelements , und klicken Sie dann auf Neuen Resolver hinzufügen. Konfigurieren Sie im Eigenschaftenfenster Resolver1 die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie ThirdResolver ein.

    2. Klicken Sie in der Dropdownliste Resolverimplementierung auf Statische Resolvererweiterung.

    3. Klicken Sie in der Dropdownliste Transportname auf DATEI.

    4. Klicken Sie auf die Eigenschaft Transportspeicherort , und geben Sie dann C:\HowTos\Out\Third%MessageID%.xmlein.

  6. Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem ReceiveNAOrder-Modellelement in das Modellelement RouteToThreeRecipients .

  7. Ziehen Sie aus der Toolbox ein Off-Ramp-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem Modellelement RouteToThreeRecipients . Konfigurieren Sie im offRamp1-Eigenschaftenfenster die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie dann SendThreeMessages ein.

    2. Klicken Sie in der Dropdownliste Extender auf Off-Ramp ESB Extender.

    3. Klicken Sie in der Dropdownliste BizTalk-Anwendung auf GlobalBank.ESB.

    4. Klicken Sie in der Dropdownliste Port senden auf DynamicResolutionOneWay.

  8. Ziehen Sie aus der Toolbox ein Itinerary Service-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann zwischen dem Modellelement RouteToThrerecipients und dem SendThreeMessages-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:

    1. Klicken Sie auf die Name-Eigenschaft , und geben Sie sendPortFilter ein.

    2. Klicken Sie in der Dropdownliste Reiseplanungsdienst-Extender auf Off-Ramp Extender.

    3. Erweitern Sie in der Dropdownliste Off-Ramp den Eintrag SendThreeMessages, und klicken Sie dann auf Sendehandler.

  9. Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem RouteToThreeRecipients-Modellelement auf das SendPortFilter-Modellelement .

  10. Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung vom SendPortFilter-Modellelement auf das SendThreeMessages-Modellelement .

So exportieren Sie das Modell für die Verwendung mit dem Reiseplantestclient

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf die Entwurfsoberfläche der RecipientList-Reiseroute , und klicken Sie dann auf Modell exportieren.

    Hinweis

    Die XML-Version der Reiseroute wird in Visual Studio geöffnet.

  2. Speichern Sie alle Projektartefakte.

  3. Navigieren Sie in Windows Explorer zu C:\HowTos\Itineraries, und beachten Sie dann die Erstellung Ihrer Reiserouten-XML (RecipientList.xml).

So testen Sie die Reiseroute

  1. Öffnen Sie die Programmtestclient-Beispielanwendung mithilfe der Verknüpfung, die während der Voraussetzungen für die Entwicklungsaktivitäten (C:\HowTos\ESB.Itinerary.Test.exe – Verknüpfung) erstellt wurde.

  2. Deaktivieren Sie im Programmplantestclient das Kontrollkästchen WCF-Dienst verwenden , und klicken Sie dann auf Route laden.

  3. Navigieren Sie im Dialogfeld Reiseroutendatei öffnen zu C:\HowTos\Itineraries. Wählen Sie RecipientList.xmlaus, und klicken Sie dann auf Öffnen , um die Reiseroute zu laden.

  4. Klicken Sie auf OK , um die Meldung "Route erfolgreich geladen: zu deaktivieren.

  5. Klicken Sie im Reiseplantestclient auf die Schaltfläche mit den Auslassungspunkten (...) neben dem Feld Nachricht laden .

  6. Navigieren Sie im Dialogfeld Zu ladende XML-Dokument auswählen zu C:\Patterns. Wählen Sie NAOrderDoc.xml aus, und klicken Sie dann auf Öffnen , um die Testnachricht zu laden.

  7. Klicken Sie auf die Schaltfläche Anforderung übermitteln . Klicken Sie nach Abschluss des Tests auf OK , um die angezeigte Bestätigung zu schließen.

  8. Navigieren Sie in Windows Explorer zu C:\HowTos\Out\. Vergewissern Sie sich, dass die folgenden Nachrichten in das Verzeichnis geschrieben wurden:

    • First%MessageID%.xml

    • Second%MessageID%.xml

    • Third%MessageID%.xml

Weitere Ressourcen

Weitere Informationen finden Sie in folgenden verwandten Themen: