Verarbeiten von Benachrichtigungen zum Ausführen bestimmter Aufgaben in SQL mithilfe von BizTalk Server
Sie können den SQL-Adapter verwenden, um Benachrichtigungen über Änderungen an SQL Server Datenbanktabellen zu erhalten. Der Adapter sendet Ihnen jedoch nur eine Benachrichtigung, dass einige Datensätze in eine bestimmte Datenbanktabelle eingefügt, aktualisiert oder gelöscht wurden. Jede Nachbearbeitung dieser Datensätze muss von den Clientanwendungen selbst verarbeitet werden. Dieses Thema enthält eine szenariobasierte Beschreibung der Verarbeitung der Datensätze in der Tabelle basierend auf der Art der Benachrichtigung, die von der SQL Server-Datenbank empfangen wird.
Szenarien zum Ausführen nachfolgender Aktionen nach dem Empfang der Benachrichtigung
Im Folgenden sind einige Szenarien aufgeführt, in denen die Adapterclients bestimmte Aufgaben nach der Benachrichtigung ausführen müssen.
Szenario 1. Stellen Sie sich ein Szenario vor, in dem der Adapterclient bestimmte Aufgaben basierend auf der Art der Benachrichtigung ausführen muss, die Sie von SQL Server erhalten. Beispielsweise muss die Clientanwendung die Datensätze in Tabelle "A" aktualisieren, wenn Datensätze in tabelle "B" eingefügt werden. Ebenso muss die Clientanwendung Datensätze aus tabelle "A" löschen, wenn Datensätze aus tabelle "B" gelöscht werden.
In diesem Szenario müssen die Adapterclients aus der empfangenen Benachrichtigung den Typ der Benachrichtigung extrahieren, um zu entscheiden, ob die Benachrichtigung für einen Einfügevorgang oder einen Löschvorgang gilt. Nachdem der Benachrichtigungstyp ermittelt wurde, müssen die Adapterclients nachfolgende Aktionen ausführen, um die relevanten Tabellen einzufügen oder zu aktualisieren.
Szenario 2. Stellen Sie sich ein Szenario vor, in dem der Empfangsspeicherort, der Benachrichtigungen über Änderungen an einer Tabelle empfängt, ausfällt. Während der Empfangsspeicherort ausgefallen ist, werden der Tabelle einige Datensätze hinzugefügt. Für diese Datensätze erhält der Adapterclient jedoch keine Benachrichtigung. Wenn der Empfangsspeicherort gesichert ist, benachrichtigt der Adapter den Client, indem er eine bestimmte Nachricht sendet. Anschließend muss die Clientanwendung nach allen Datensätzen suchen, die in die Datenbanktabelle eingefügt wurden, während der Empfangsspeicherort ausgefallen war.
In diesem Szenario müssen die Adapterclients aus der empfangenen Benachrichtigung die Informationen darüber extrahieren, ob die Benachrichtigung für eine Änderung an einer Datenbanktabelle oder für den Empfangsspeicherort abgibt. Wenn die Benachrichtigung für den empfangsfähigen Speicherort gilt, müssen die Adapterclients die Logik implementieren, um die Datensätze zu verarbeiten, die eingefügt, aktualisiert oder gelöscht wurden, während der Empfangsspeicherort ausgefallen ist.
Hinweis
Dies sind nur einige Beispielszenarien, die für ein besseres Verständnis der Verwendung des Benachrichtigungsfeatures im SQL-Adapter aufgeführt sind. Der grundlegende Satz von Aufgaben, die erforderlich sind, um den Typ der empfangenen Benachrichtigung zu extrahieren, ist jedoch für alle Szenarien ähnlich. Dieses Thema enthält Anweisungen zum Extrahieren des Benachrichtigungstyps aus einer Benachrichtigung.
In diesem Thema wird der Empfang von Benachrichtigungen und das Extrahieren des Benachrichtigungstyps veranschaulicht.
Um zu veranschaulichen, wie Benachrichtigungen verarbeitet werden, um nachfolgende Aufgaben auszuführen, betrachten wir ein grundlegendes Szenario, in dem ein Adapterclient die BizTalk-Anwendung verwendet, um Benachrichtigungen für Änderungen an der Tabelle Employee zu empfangen. Nachdem die Benachrichtigung empfangen wurde, filtert der Client den Typ der empfangenen Benachrichtigung und führt eine nachfolgende Aktion aus. Um ein sehr einfaches Szenario zu veranschaulichen, sollten wir berücksichtigen, dass der Adapterclient die Benachrichtigungen basierend auf der Art der empfangenen Benachrichtigung in verschiedene Ordner kopiert. Das heißt konkret:
Wenn die Benachrichtigung für einen Insert- oder Update-Vorgang gilt, kopiert der Adapterclient die Nachricht in den Ordner C:\TestLocation\UpsertNotification.
Wenn die Benachrichtigung für einen anderen Vorgang gilt, z. B. Löschen, kopiert der Adapterclient die Nachricht in den Ordner C:\TestLocation\OtherNotificaiton.
Um dies als Teil einer BizTalk-Anwendung zu erreichen, muss die Orchestrierung Folgendes enthalten:
Ein unidirektionales Empfangsport zum Empfangen von Benachrichtigungen.
Ein Ausdrucks-Shape, das eine xpath-Abfrage zum Extrahieren der Informationen über die Art der empfangenen Benachrichtigung enthält.
Eine Entscheidungsform, die einen Entscheidungsblock in die Orchestrierung einschließt. In diesem Entscheidungsblock entscheidet die Anwendung basierend auf der empfangenen Benachrichtigung, welche nachfolgenden Vorgänge ausgeführt werden sollen.
Zwei unidirektionale Sendeports, die schließlich die Benachrichtigungen empfangen.
Konfigurieren von Benachrichtigungen mit den SQL-Adapterbindungseigenschaften
In der folgenden Tabelle sind die Bindungseigenschaften des SQL-Adapters zusammengefasst, die Sie zum Konfigurieren des Empfangens von Benachrichtigungen von SQL Server verwenden. Sie müssen diese Bindungseigenschaften beim Konfigurieren des Empfangsports in der BizTalk Server-Verwaltungskonsole angeben.
Hinweis
Sie können diese Bindungseigenschaften angeben, wenn Sie das Schema für den Benachrichtigungsvorgang generieren, auch wenn dies nicht obligatorisch ist. Wenn Sie dies tun, enthält die Portbindungsdatei, die das Nutzungsdienst-Add-In im Rahmen der Metadatengenerierung generiert, auch die Werte, die Sie für die Bindungseigenschaften angeben. Sie können diese Bindungsdatei später in die BizTalk Server-Verwaltungskonsole importieren, um den WCF-custom- oder WCF-SQL-Empfangsport mit den bereits festgelegten Bindungseigenschaften zu erstellen. Weitere Informationen zum Erstellen eines Ports mithilfe der Bindungsdatei finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für die Verwendung des SQL-Adapters.
Binding-Eigenschaft | BESCHREIBUNG |
---|---|
InboundOperationType | Gibt den eingehenden Vorgang an, den Sie ausführen möchten. Um Benachrichtigungen zu empfangen, legen Sie dies auf Benachrichtigung fest. |
NotificationStatement | Gibt die SQL-Anweisung (gespeicherte SELECT- oder EXEC-Prozedur<>) an, die für die Registrierung für Abfragebenachrichtigungen verwendet wird. Der Adapter ruft nur dann eine Benachrichtigung von SQL Server ab, wenn sich das Resultset für die angegebene SQL-Anweisung ändert. |
NotifyOnListenerStart | Gibt an, ob der Adapter beim Starten des Listeners eine Benachrichtigung an die Adapterclients sendet. |
Eine ausführlichere Beschreibung dieser Eigenschaften finden Sie unter Informationen zum BizTalk-Adapter für SQL Server Adapterbindungseigenschaften. Eine vollständige Beschreibung der Verwendung des SQL-Adapters zum Empfangen von Benachrichtigungen von SQL Server finden Sie weiter.
Empfangen von Benachrichtigungen aus der SQL Server-Datenbank
Das Ausführen eines Vorgangs für die SQL Server-Datenbank mithilfe des SQL-Adapters mit BizTalk Server umfasst die unter Bausteine beschriebenen prozeduralen Aufgaben zum Entwickeln von BizTalk-Anwendungen mit dem SQL-Adapter. Um den Adapter für den Empfang von Benachrichtigungen zu konfigurieren, lauten die folgenden Aufgaben:
Erstellen Sie ein BizTalk-Projekt, und generieren Sie dann ein Schema für den eingehenden Benachrichtigungsvorgang . Optional können Sie Werte für die Bindungseigenschaften InboundOperationType und NotificationStatement angeben.
Erstellen Sie eine Nachricht im BizTalk-Projekt, um Benachrichtigungen von der SQL Server-Datenbank zu erhalten.
Erstellen Sie eine Orchestrierung, wie im vorherigen Abschnitt beschrieben.
Erstellen sie das BizTalk-Projekt, und stellen Sie es bereit.
Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.
Hinweis
Für eingehende Vorgänge, z. B. das Empfangen von Benachrichtigungen, müssen Sie nur einen unidirektionale WCF-Custom- oder WCF-SQL-Empfangsport konfigurieren. Bidirektionale WCF-Custom oder WCF-SQL-Empfangsports werden für eingehende Vorgänge nicht unterstützt.
Starten Sie die BizTalk-Anwendung.
Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.
Generieren eines Schemas
Sie müssen das Schema für den eingehenden Benachrichtigungsvorgang generieren. Weitere Informationen zum Generieren des Schemas finden Sie unter Abrufen von Metadaten für SQL Server Vorgänge in Visual Studio mithilfe des SQL-Adapters. Führen Sie beim Generieren des Schemas die folgenden Aufgaben aus. Überspringen Sie den ersten Schritt, wenn Sie die Bindungseigenschaften nicht zur Entwurfszeit angeben möchten.
Geben Sie beim Generieren des Schemas einen Wert für die Bindungseigenschaften InboundOperationType und NotificationStatement an. Weitere Informationen zu dieser Bindungseigenschaft finden Sie unter Informationen zum BizTalk-Adapter für SQL Server Adapterbindungseigenschaften. Anweisungen zum Angeben von Bindungseigenschaften finden Sie unter Konfigurieren der Bindungseigenschaften für den SQL-Adapter.
Wählen Sie den Vertragstyp Als Dienst (Eingehende Vorgänge) aus.
Generieren Sie ein Schema für den Benachrichtigungsvorgang .
Definieren von Nachrichten und Nachrichtentypen
Das Schema, das Sie zuvor generiert haben, beschreibt die "Typen", die für die Nachrichten in der Orchestrierung erforderlich sind. Eine Nachricht ist in der Regel eine Variable, deren Typ durch das entsprechende Schema definiert wird. Nachdem das Schema generiert wurde, müssen Sie es mit den Meldungen aus der Orchestrierungsansicht des BizTalk-Projekts verknüpfen.
Für dieses Thema müssen Sie eine Nachricht erstellen, um Benachrichtigungen von der SQL Server-Datenbank zu empfangen.
Führen Sie die folgenden Schritte aus, um Nachrichten zu erstellen und mit dem Schema zu verknüpfen.
So erstellen Sie Nachrichten und Verknüpfen mit dem Schema
Fügen Sie dem BizTalk-Projekt eine Orchestrierung hinzu. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen des BizTalk-Projekts, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Element. Geben Sie einen Namen für die BizTalk-Orchestrierung ein, und klicken Sie dann auf Hinzufügen.
Öffnen Sie das Fenster "Orchestrierungsansicht" des BizTalk-Projekts, wenn es noch nicht geöffnet ist. Klicken Sie auf Ansicht, zeigen Sie auf Andere Fenster, und klicken Sie dann auf Orchestrierungsansicht.
Klicken Sie in der Orchestrierungsansicht mit der rechten Maustaste auf Nachrichten, und klicken Sie dann auf Neue Nachricht.
Klicken Sie mit der rechten Maustaste auf die neu erstellte Nachricht, und wählen Sie dann Eigenschaftenfenster aus.
Gehen Sie im Bereich Eigenschaften für Message_1 wie folgt vor:
Option Aufgabe Bezeichner Geben Sie NotifyReceive
ein.Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie Process_Notification.Notification aus, wobei Process_Notification der Name Ihres BizTalk-Projekts ist. Die Benachrichtigung ist das Schema, das für den Benachrichtigungsvorgang generiert wird.
Einrichten der Orchestrierung
Sie müssen eine BizTalk-Orchestrierung erstellen, um BizTalk Server zum Empfangen von Benachrichtigungsmeldungen aus der SQL Server-Datenbank und dann zum Ausführen von Aufgaben basierend auf dem Typ der empfangenen Benachrichtigung zu verwenden. In dieser Orchestrierung empfängt der Adapter die Benachrichtigungsmeldung basierend auf der SELECT-Anweisung, die für die NotificationStatement-Bindungseigenschaft angegeben wurde. Die im Ausdrucks-Shape angegebene xpath-Abfrage extrahiert den Benachrichtigungstyp in eine Variable, z. B. NotificationType. Das Shape Decide verwendet den Wert in dieser Variablen, um die Art der empfangenen Benachrichtigung zu bestimmen, und verwendet den entsprechenden "Pfad", um nachfolgende Vorgänge auszuführen. Wie im vorherigen Abschnitt erwähnt, führt die Orchestrierung die folgenden Vorgänge basierend auf der Art der empfangenen Benachrichtigung aus.
Wenn die Benachrichtigung für einen Insert- oder Update-Vorgang gilt, kopiert der Adapterclient die Nachricht in den Ordner C:\TestLocation\UpsertNotification.
Wenn die Benachrichtigung für einen anderen Vorgang gilt, z. B. Löschen, kopiert der Adapterclient die Nachricht in den Ordner C:\TestLocation\OtherNotificaiton.
Daher muss Ihre Orchestrierung Folgendes enthalten:
Ein unidirektionale Empfangsport zum Empfangen von Benachrichtigungen.
Ein Ausdrucks-Shape, das eine xpath-Abfrage enthält, um die Art der empfangenen Benachrichtigung zu extrahieren.
Eine Entscheidungsform, die einen Entscheidungsblock in die Orchestrierung einschließt. In diesem Entscheidungsblock entscheidet die Anwendung basierend auf der empfangenen Benachrichtigung, welche nachfolgenden Vorgänge ausgeführt werden sollen.
Zwei unidirektionale Sendeports, die schließlich die Benachrichtigungsnachrichten empfangen.
Shape empfangen.
Eine Beispielorchestrierung ähnelt der folgenden.
Hinzufügen von Nachrichten-Shapes
Stellen Sie sicher, dass Sie die folgenden Eigenschaften für die einzelnen Nachrichtenformen angeben. Die in der Spalte Shape aufgeführten Namen sind die Namen der Nachrichtenformen, die in der gerade erwähnten Orchestrierung angezeigt werden.
Form | Formtyp | Eigenschaften |
---|---|---|
ReceiveNotification | Empfangen | – Name aufReceiveNotification festlegen – Legen Sie Aktivieren auf True fest. |
Hinzufügen einer Ausdrucksform
Der Zweck des Einschließens eines Ausdrucks-Shapes in die Orchestrierung besteht darin, eine xpath-Abfrage zu erhalten, um die Art der empfangenen Benachrichtigungsnachricht zu extrahieren. Bevor Sie eine xpath-Abfrage erstellen, sehen wir uns das Format einer Benachrichtigungsnachricht an. Eine typische Benachrichtigungsnachricht ähnelt der folgenden:
<Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/">
<Info>Insert</Info>
<Source>Data</Source>
<Type>Change</Type>
</Notification>
Wie Sie sehen, sind die Informationen zum Typ der Benachrichtigung innerhalb des <info>
Tags im übergeordneten <Notification>
Tag verfügbar. Daher müssen Sie als Teil dieses Ausdrucks-Shapes Folgendes ausführen:
Erstellen Sie eine Variable, die den Wert im
<Info>
Tag enthält, und legen Sie ihren Typ auf System.String fest. Weitere Informationen zum Erstellen von Variablen finden Sie unter Verwenden von Variablen in Orchestrierungen.Benennen Sie die Variable für dieses Thema als NotificationType.
Erstellen Sie eine xpath-Abfrage, um den Wert aus dem <Info-Tag> zu extrahieren. Die xpath-Abfrage ähnelt der folgenden:
NotificationType = xpath(NotifyReceive,"string(/*[local-name()='Notification']/*[local-name()='Info']/text())");
In dieser xpath-Abfrage ist NotifyReceive die Nachricht, die Sie zum Empfangen von Benachrichtigungsnachrichten erstellt haben. Der Auszug innerhalb der
string
Funktion gibt an, dass die Abfrage den Wert innerhalb des<Info>
Tags extrahieren muss, das sich wiederum innerhalb des<Notification>
Tags befindet. Schließlich wird der von der Abfrage extrahierte Wert der NotificaitonType-Variable zugewiesen.
Hinzufügen einer Shape-Entscheidung
Der Zweck des Hinzufügens einer Decide-Form besteht darin, einen Entscheidungsblock in die Orchestrierung einzubeziehen, um basierend auf der Art der empfangenen Benachrichtigung zu entscheiden, welche nachfolgenden Vorgänge ausgeführt werden sollen. Die Entscheidung erfolgt auf Der Grundlage des Werts der NotificationType-Variablen . In diesem Thema trifft die Orchestrierung eine Entscheidung basierend auf der Art der empfangenen Benachrichtigung. Daher wird die Bedingung im Shape Rule wie folgt angegeben:
NotificationType.Equals("Insert") | NotificationType.Equals("Update")
Diese Bedingung legt nahe, dass die Orchestrierung einen Satz von Aufgaben ausführt, wenn der Wert für die NotificaitonType-Variable Insert oder Update lautet. Wenn der Wert der NotificationType-Variablen etwas anderes ist, führt die Orchestrierung andere Aufgaben aus.
Wie in den vorherigen Abschnitten erwähnt, kopiert die Orchestrierung nachrichten basierend auf dem Benachrichtigungstyp in verschiedene Ordner, um einen einfachen Ansatz zu veranschaulichen. Daher müssen Sie in den Blöcken Regel und Else Send Shapes hinzufügen, um die Nachrichten an verschiedene Ports zu senden. Benennen Sie für dieses Thema das Send-Shape im Regelblock als SendUpsertNotification und das Send-Shape im Else-Block als SendOtherNotification.
Hinzufügen von Ports
Nun müssen Sie der Orchestrierung die folgenden logischen Ports hinzufügen:
Unidirektionale Empfangsport zum Empfangen von Benachrichtigungsnachrichten von SQL Server.
Unidirektionale Sendeport zum Senden von Benachrichtigungen für Insert- und Update-Vorgänge an einen bestimmten Ordner.
Unidirektionale Sendeport zum Senden von Benachrichtigungen für andere Vorgänge an einen bestimmten Ordner.
Stellen Sie sicher, dass Sie die folgenden Eigenschaften für jeden der logischen Ports angeben. Die in der Spalte Port aufgeführten Namen sind die Namen der Ports, die in der Orchestrierung angezeigt werden.
Port | Eigenschaften |
---|---|
SQLNotifyPort | – Festlegen des Bezeichners auf SQLNotifyPort – Festlegen von Type auf SQLNotifyPortType - Festlegen des Kommunikationsmusters auf unidirektionales Muster - Festlegen der Kommunikationsrichtung auf Empfangen |
NotificationUpsertPort | – Festlegen von Bezeichner auf NotificationUpsertPort – Festlegen von Type auf NotificationUpsertPortType - Festlegen des Kommunikationsmusters auf unidirektionales Muster - Kommunikationsrichtung auf Senden festlegen |
OtherNotificationPort | – Festlegen des Bezeichners auf OtherNotificationPort – Festlegen von Type auf OtherNotificationPortType - Festlegen des Kommunikationsmusters auf unidirektionales Muster - Kommunikationsrichtung auf Senden festlegen |
Angeben von Nachrichten für Aktionsformen und Herstellen einer Verbindung mit Ports
Die folgende Tabelle gibt die Eigenschaften und deren Werte an, die Sie festlegen sollten, um Nachrichten für Aktionsformen anzugeben und die Nachrichten mit den Ports zu verknüpfen. Die in der Spalte Shape aufgeführten Namen sind die Namen der Nachrichtenformen, die in der zuvor erwähnten Orchestrierung angezeigt werden.
Form | Eigenschaften |
---|---|
ReceiveNotification | - Festlegen der Nachricht auf NotifyReceive – Festlegen von Operation auf SQLNotifyPort.Notify.Request |
SendUpsertNotification | - Festlegen der Nachricht auf NotifyReceive - Festlegen von Operation auf NotificationUpsertPort.Upsert.Request |
SendOtherNotification | – Nachricht aufAuswählen festlegen - Festlegen von Operation auf OtherNotificationPort.Other.Request |
Nachdem Sie diese Eigenschaften angegeben haben, sind die Nachrichtenformen und -ports verbunden, und Die Orchestrierung ist abgeschlossen.
Sie müssen jetzt die BizTalk-Lösung erstellen und in einer BizTalk Server bereitstellen. Weitere Informationen finden Sie unter Erstellen und Ausführen von Orchestrierungen.
Konfigurieren der BizTalk-Anwendung
Nachdem Sie das BizTalk-Projekt bereitgestellt haben, wird die zuvor erstellte Orchestrierung im Bereich Orchestrierung in der BizTalk Server-Verwaltungskonsole aufgeführt. Sie müssen die BizTalk Server-Verwaltungskonsole verwenden, um die Anwendung zu konfigurieren. Eine exemplarische Vorgehensweise finden Sie unter Exemplarische Vorgehensweise: Bereitstellen einer einfachen BizTalk-Anwendung.
Das Konfigurieren einer Anwendung umfasst Folgendes:
Auswählen eines Hosts für die Anwendung.
Zuordnen der Ports, die Sie in Ihrer Orchestrierung erstellt haben, zu physischen Ports in der BizTalk Server-Verwaltungskonsole. Für diese Orchestrierung müssen Sie:
Definieren Sie einen physischen WCF-Custom oder unidirektionale WCF-SQL-Empfangsport. Dieser Port lauscht auf Benachrichtigungen aus der SQL Server-Datenbank. Informationen zum Erstellen von Ports finden Sie unter Manuelles Konfigurieren einer physischen Portbindung an den SQL-Adapter. Stellen Sie sicher, dass Sie die folgenden Bindungseigenschaften für den Empfangsport angeben.
Wichtig
Sie müssen diesen Schritt nicht ausführen, wenn Sie die Bindungseigenschaften zur Entwurfszeit angegeben haben. In diesem Fall können Sie einen benutzerdefinierten WCF- oder WCF-SQL-Empfangsport erstellen, wobei die erforderlichen Bindungseigenschaften festgelegt sind, indem Sie die bindungsdatei importieren, die vom Add-In Consume Adapter Service erstellt wurde. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für die Verwendung des SQL-Adapters.
Binding-Eigenschaft Wert InboundOperationType Legen Sie dies auf Benachrichtigung fest. NotificationStatement Legen Sie dies auf Folgendes fest:
SELECT Employee_ID, Name FROM dbo.Employee WHERE Status=0
Hinweis: Sie müssen die Spaltennamen in der Anweisung speziell angeben, wie in dieser SELECT-Anweisung gezeigt. Außerdem müssen Sie immer den Tabellennamen zusammen mit dem Schemanamen angeben. Beispiel:dbo.Employee
.NotifyOnListenerStart Legen Sie dies auf True fest. Weitere Informationen zu den verschiedenen Bindungseigenschaften finden Sie unter Informationen zum BizTalk-Adapter für SQL Server Adapterbindungseigenschaften.
Hinweis
Es wird empfohlen, die Transaktionsisolationsstufe und das Transaktionstimeout zu konfigurieren, während eingehende Vorgänge mithilfe des SQL-Adapters ausgeführt werden. Dazu können Sie das Dienstverhalten beim Konfigurieren des WCF-Custom- oder WCF-SQL-Empfangsports hinzufügen. Anweisungen zum Hinzufügen des Dienstverhaltens finden Sie unter Konfigurieren der Transaktionsisolationsstufe und des Transaktionstimeouts mit SQL.
Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Benachrichtigungen aus der SQL Server-Datenbank für Insert- und Update-Vorgänge ablöscht. Konfigurieren Sie diesen Port so, dass Benachrichtigungen im Ordner C:\TestLocation\UpsertNotification abgelegt werden.
Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Benachrichtigungen aus der SQL Server-Datenbank für alle anderen Vorgänge ablöscht. Konfigurieren Sie diesen Port, um Benachrichtigungen im Ordner C:\TestLocation\OtherNotification zu löschen.
Starten der Anwendung
Sie müssen die BizTalk-Anwendung starten, um Benachrichtigungen von der SQL Server-Datenbank zu empfangen und die nachfolgenden Select- und Update-Vorgänge auszuführen. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter Starten einer Orchestrierung.
Stellen Sie in dieser Phase Folgendes sicher:
Der WCF-Custom oder unidirektionale WCF-SQL-Empfangsport, der die Benachrichtigungen von der SQL Server Datenbank empfängt, wird ausgeführt.
Die beiden FILE-Sendeports, die Nachrichten von SQL Server empfangen, werden ausgeführt.
Die BizTalk-Orchestrierung für den Vorgang wird ausgeführt.
Ausführen des Vorgangs
Nachdem Sie die BizTalk-Orchestrierung gestartet haben, werden die folgenden Aktionen ausgeführt:
Da die NotifyOnListenerStart-Bindungseigenschaft auf True festgelegt ist, erhalten Sie die folgende Meldung:
<?xml version="1.0" encoding="utf-8" ?> <Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/"> <Info>ListenerStarted</Info> <Source>SqlBinding</Source> <Type>Startup</Type> </Notification>
Beachten Sie, dass der Wert im
<Info>
Tag "ListnerStarted" lautet. Daher wird diese Meldung im Ordner C:\TestLocation\OtherNotification empfangen.Fügen Sie einen Datensatz in die Tabelle Employee ein. Sie erhalten eine Benachrichtigung, die der folgenden ähnelt:
<?xml version="1.0" encoding="utf-8" ?> <Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/"> <Info>Insert</Info> <Source>Data</Source> <Type>Change</Type> </Notification>
Beachten Sie, dass der Wert im
<Info>
Tag "Insert" lautet. Daher wird diese Nachricht im Ordner C:\TestLocation\UpsertNotification empfangen.Aktualisieren Sie einen Datensatz in der Tabelle Employee. Sie erhalten eine Benachrichtigung, die der folgenden ähnelt:
<?xml version="1.0" encoding="utf-8" ?> <Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/"> <Info>Update</Info> <Source>Data</Source> <Type>Change</Type> </Notification>
Beachten Sie, dass der Wert im
<Info>
Tag "Update" lautet. Daher wird diese Nachricht im Ordner C:\TestLocation\UpsertNotification empfangen.Löschen Sie einen Datensatz aus der Tabelle Employee. Sie erhalten eine Benachrichtigung, die der folgenden ähnelt:
<?xml version="1.0" encoding="utf-8" ?> <Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/"> <Info>Delete</Info> <Source>Data</Source> <Type>Change</Type> </Notification>
Beachten Sie, dass der Wert im
<Info>
Tag "Delete" lautet. Daher wird diese Meldung im Ordner C:\TestLocation\OtherNotification empfangen.
Bewährte Methoden
Nachdem Sie das BizTalk-Projekt bereitgestellt und konfiguriert haben, können Sie Konfigurationseinstellungen in eine XML-Datei exportieren, die als Bindungsdatei bezeichnet wird. Nachdem Sie eine Bindungsdatei generiert haben, können Sie die Konfigurationseinstellungen aus der Datei importieren, sodass Sie nicht die Sendeports und Empfangsports für dieselbe Orchestrierung erstellen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von Adapterbindungen.
Ausführen komplexer Vorgänge nach dem Empfang von Benachrichtigungen
Aus Gründen der Einfachheit und des besseren Verständnisses kopiert die Orchestrierung in diesem Thema Nachrichten basierend auf dem Benachrichtigungstyp in verschiedene Ordner. In realen Szenarien sollten Sie jedoch komplexere Vorgänge ausführen. Sie können ähnliche Prozeduren wie in diesem Thema beschrieben ausführen und darauf aufbauen, um die gewünschten Vorgänge auszuführen. Beispielsweise können Sie die Orchestrierung ändern, um Datensätze in eine andere Tabelle einzufügen, wenn Sie eine Benachrichtigung für einen Einfügevorgang für die Tabelle Employee erhalten. In diesem Fall können Sie entsprechende Änderungen in der Form Entscheiden vornehmen.
Ein solches Szenario wird in Tutorial 2: Employee – Purchase Order Process using the SQL adapter ausführlich erläutert.
Weitere Informationen
Empfangen von SQL-Abfragebenachrichtigungen mithilfe von BizTalk Server