Vorgehensweise: Überprüfen einer Nachricht mithilfe eines ESB-Eingangcontainers
Zielsetzung
In diesem Abschnitt wird veranschaulicht, wie Sie die Pipelinekomponente "ESB Dispatcher Disassemble" konfigurieren, um eine Nachrichtenüberprüfung für XML-Nachrichten durchzuführen, die an eine ESB-Instanz gesendet werden.
In diesem How-to-Thema führen Sie die folgenden Schritte aus:
Erstellen Sie eine ESB-Instanz, die die Pipeline ItinerarySelectReceiveXml verwendet.
Konfigurieren Sie die Esb Dispatcher Disassemble-Pipelinekomponente, um den Nachrichteninhalt zu überprüfen.
Konfigurieren Sie die Pipelinekomponente Programmablaufauswahl, um die entsprechende Reiseroute aufzulösen.
Testen Sie die Nachrichtenvalidierung mithilfe einer gültigen Nachricht und einer ungültigen Nachricht.
Voraussetzungen
Die Verfahren in diesem How-to-Thema erfordern den Abschluss der Voraussetzungen für die Entwicklungsaktivitäten.
Vorbereitungen
Führen Sie die folgenden Aufgaben aus, bevor Sie die Schritte weiter unten in diesem Thema ausführen:
Erstellen Sie eine ungültige Testmeldung.
Erstellen Sie ein DSL-Modell (Domain Specific Language, domänenspezifische Sprache) für die ESB-Reiseroute.
Konfigurieren Sie die Eigenschaften der Reiseroute.
Definieren Sie die Struktur der Reiseroute.
Exportieren Sie das Modell in die Datenbank "Itinerary".
In den folgenden Verfahren wird beschrieben, wie sie jeweils ausgeführt werden.
So erstellen Sie eine ungültige Testnachricht
Navigieren Sie in Windows Explorer zu C:\HowTos.
Erstellen Sie eine Kopie von NAOrderDoc.xml, und benennen Sie dann den Invalid.xml um.
Öffnen Sie in Editor Invalid.xml.
Ändern Sie <ns0:requestType>10</ns0:requestType> in <ns0:requestType>TEN</ns0:requestType>.
Speichern Sie Invalid.xml als UTF-8, und schließen Sie dann Editor.
Hinweis
Wenn Sie den numerischen Wert dieses Elements in Text ändern, ist die Nachricht gemäß dem Schema nicht mehr gültig.
So erstellen Sie ein DSL-Modell für die ESB-Reiseroute
Öffnen Sie in Visual Studio C:\HowTos\Patterns\Patterns.sln.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf ItineraryLibrary, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neue Reiseroute.
Geben Sie im Dialogfeld Neues Element hinzufügen den Namen Validierung in das Feld Name ein, und klicken Sie dann auf Hinzufügen.
So konfigurieren Sie die Eigenschaften der Reiseroute
Klicken Sie in Visual Studio auf die Entwurfsoberfläche von Validation.itinerary. Konfigurieren Sie im Eigenschaftenfenster Validierung die folgenden Eigenschaften:
Klicken Sie in der Dropdownliste Modellexporter auf Datenbankroutenexporter.
Klicken Sie neben der Eigenschaft Itinerary Database auf die Schaltfläche mit den Auslassungspunkten (...).
Wählen Sie im Dialogfeld Verbindungseigenschaften die SQL Server aus, die die Repositorydatenbank der Reiseroute hostet, und geben Sie dann den Namen der Datenbank an (der Standardname lautet EsbItineraryDb).
Klicken Sie in der Dropdownliste Reiseverlaufsstatus auf Bereitgestellt.
Hinweis
In diesem Schritt können Sie die Reiseroute in ein zentrales Repository exportieren. Routen können ausgewählt und aus diesem Repository angefügt werden, wenn die Nachricht empfangen wird. Später konfigurieren Sie die Pipelinekomponente Itinerary Selector so, dass ein statischer Resolver verwendet wird, um die entsprechende Reiseroute aus diesem Repository auszuwählen.
So definieren Sie die Struktur der Reiseroute
Ziehen Sie aus der Toolbox ein On-Ramp-Modellelement auf die Entwurfsoberfläche. Konfigurieren Sie im OnRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann ReceiveNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf On-Ramp ESB Extender ( On-Ramp ESB Extender).
Klicken Sie in der Dropdownliste BizTalk-Anwendung auf Microsoft.Practices.ESB.
Klicken Sie in der Dropdownliste Empfangsport auf OnRamp.Itinerary.
Ziehen Sie aus der Toolbox ein Off-Ramp-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem vorhandenen Modellelement. Konfigurieren Sie im offRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie sendNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf OFF-Ramp ESB Extender.
Klicken Sie in der Dropdownliste BizTalk-Anwendung auf GlobalBank.ESB.
Klicken Sie in der Dropdownliste Port senden auf DynamicResolutionOneWay.
Ziehen Sie aus der Toolbox ein Modellelement des Programmplanungsdiensts auf die Entwurfsoberfläche, und platzieren Sie es dann zwischen dem ReceiveNAOrder-Modellelement und dem SendNAOrder-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie sendPortFilter ein.
Klicken Sie in der Dropdownliste Itinerary Service Extender auf Off-Ramp Extender.
Erweitern Sie in der Dropdownliste Off-Ramp den Eintrag SendNAOrder, und klicken Sie dann auf Handler senden.
Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des SendPortFilter-Elements , und klicken Sie dann auf Neuen Resolver hinzufügen. Konfigurieren Sie im Eigenschaftenfenster Resolver1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann ConfigureOffRamp ein.
Klicken Sie in der Dropdownliste Resolverimplementierung auf Statische Resolvererweiterung.
Klicken Sie in der Dropdownliste Transportname auf DATEI.
Klicken Sie auf die Eigenschaft Transportspeicherort , und geben Sie dann C:\HowTos\Out\Validated%MessageID%.xmlein.
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem ReceiveNAOrder-Modellelement auf das SendPortFilter-Modellelement .
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem SendPortFilter-Modellelement auf das SendNAOrder-Modellelement .
So exportieren Sie das Modell in die Programmverlaufsdatenbank
Klicken Sie in Visual Studio mit der rechten Maustaste auf die Entwurfsoberfläche der Überprüfungsroute , und klicken Sie dann auf Modell exportieren.
Hinweis
Die Reiseroute wurde in die Reiseroutendatenbank exportiert und kann jetzt von der Pipelinekomponente Programmablaufauswahl verwendet werden.
Speichern Sie alle Projektartefakte.
Schritte
So erstellen und konfigurieren Sie eine ESB-Einrichtung
Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf BizTalk Server, und klicken Sie dann auf BizTalk Server Verwaltung.
Erweitern Sie in der BizTalk Server Verwaltungskonsole die Optionen BizTalk-Gruppe, Anwendungen und Microsoft.Practices.ESB.
Klicken Sie mit der rechten Maustaste auf Empfangsspeicherorte, zeigen Sie auf Neu, und klicken Sie dann auf Unidirektionale Empfangsadresse.
Klicken Sie im Dialogfeld Empfangsport auswählen auf OnRamp.Itinerary, und klicken Sie dann auf OK.
Geben Sie im Dialogfeld Eigenschaften des Empfangsspeicherortsden Namen OnRamp.Itinerary.HowTo in das Feld Name ein.
Klicken Sie in der Dropdownliste Typ auf DATEI, und klicken Sie dann auf Konfigurieren.
Geben Sie im Dialogfeld Dateitransporteigenschaften den Wert C:\HowTos\DropFolder in das Feld Empfangsordner ein, und klicken Sie dann auf OK.
So konfigurieren Sie die On-Ramp zum Durchführen der Nachrichtenüberprüfung
Klicken Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts in der Dropdownliste Empfangspipeline auf ReiserouteSelectReceiveXml, und klicken Sie dann auf die Schaltfläche mit den Auslassungspunkten (...).
Verwenden Sie das Dialogfeld Pipeline konfigurieren , um die folgenden Eigenschaften der XML-Disassemblerkomponente zu konfigurieren:
Erweitern Sie die Anwendung GlobalBank.Esb, und klicken Sie dann auf Schemas. Klicken Sie mit der rechten Maustaste auf GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc, und klicken Sie dann auf Eigenschaften. Kopieren Sie die Eigenschaften Name und Assembly , und fügen Sie sie in eine Textdatei ein.
Klicken Sie in der Komponente Disassemblieren in der Dropdownliste ValidateDocument auf True.
Klicken Sie auf die DocumentSpecNames-Eigenschaft , und geben Sie dann den vollqualifizierten Namen des Schemas ein. Der vollqualifizierte Name beginnt mit dem Namen, gefolgt von einem Komma und den in Schritt a extrahierten Assemblyinformationen. Es folgt ein Beispiel:
GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc, GlobalBank.ESB.DynamicResolution.Schemas, Version=2.0.0.0,0, Culture=neutral, PublicKeyToken=c2c8b2b87f54180a
Hinweis
Dies ist der vollqualifizierte Name des zu überprüfenden Schemas. Sie besteht aus dem Schemanamen und vier Assemblyeigenschaften: Assemblyname, Version, Kultur und Token mit öffentlichem Schlüssel. Mehrere Werte sind zulässig. Trennen Sie mehrere Schemas durch ein Pipesymbol (|).
So konfigurieren Sie die Pipelinekomponente "Programmablaufauswahl"
Konfigurieren Sie im Dialogfeld Pipeline konfigurieren die folgenden Komponenteneigenschaften der Programmablaufauswahl :
Klicken Sie auf die Eigenschaft ItineraryFactKey , und geben Sie Resolver.Itinerary ein.
Klicken Sie auf die ResolverConnectionString-Eigenschaft , und geben Sie ITINERARY:\\name=Validation; ein.
Klicken Sie auf OK , um das Dialogfeld Pipeline konfigurieren zu schließen.
Klicken Sie auf OK , um das Dialogfeld Eigenschaften des Empfangsspeicherorts zu schließen.
Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf den Empfangsspeicherort OnRamp.Itinerary.HowTo, und klicken Sie dann auf Aktivieren.
So testen Sie die Nachrichtenvalidierung und die Auswahl der Reiseroute
Navigieren Sie in Windows Explorer zu C:\HowTos.
Kopieren (nicht verschieben) NAOrderDoc.xml in den Ordner DropFolder.
Navigieren Sie zu C:\HowTos\Out. Überprüfen Sie, ob Validated%MessageID%.xml in das Verzeichnis geschrieben wurde.
Hinweis
Die gültige Nachricht hat das routing basierend auf der Reiseroute wie erwartet abgeschlossen.
Löschen Sie Validated%MessageID%.xml aus dem Ordner Out.
Navigieren Sie in Windows Explorer zu C:\HowTos.
Kopieren (nicht verschieben) Invalid.xml in den Ordner DropFolder.
Navigieren Sie zu C:\HowTos\Out. Vergewissern Sie sich, dass keine neue Nachricht zugestellt wurde.
Hinweis
Die Nachricht konnte nicht überprüft werden. daher konnte die routenbasierte Routenführung nicht abgeschlossen werden.
Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Ereignisanzeige.
Erweitern Sie Ereignisanzeige Windows-Protokolle, und klicken Sie dann auf Anwendung.
Suchen Sie ein aktuelles Ereignis, bei dem die QuelleBizTalk Server ist und die Ereignis-ID5719 lautet.
Hinweis
Die Übermittlung und der Fehler der ungültigen Nachricht führten zu einem Ausnahmeeintrag im Anwendungsereignisprotokoll.
Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf den Empfangsspeicherort OnRamp.Itinerary.HowTo, und klicken Sie dann auf Deaktivieren.
Nachdem der Empfangsspeicherort OnRamp.Itinerary.HowTo deaktiviert wurde, klicken Sie mit der rechten Maustaste darauf, und klicken Sie dann auf Löschen. Klicken Sie im Dialogfeld Löschspeicherort bestätigen auf Ja.
Weitere Ressourcen
Weitere Informationen finden Sie in folgenden verwandten Themen: