Verarbeiten von Benachrichtigungen zum Ausführen bestimmter Aufgaben in SQL mithilfe von BizTalk Server

Sie können den SQL-Adapter verwenden, um Benachrichtigungen für Ä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. Alle Nachbearbeitungen dieser Datensätze müssen von den Clientanwendungen selbst behandelt werden. Dieses Thema enthält eine szenariobasierte Beschreibung zum Verarbeiten der Datensätze in der Tabelle basierend auf der Art der Benachrichtigung, die von der SQL Server-Datenbank empfangen wurde.

Szenarien zum Ausführen nachfolgender Aktionen nach erhaltder Benachrichtigung

Es folgen einige Szenarien, in denen die Adapterclients bestimmte Aufgaben nach der Benachrichtigung ausführen müssen.

  • Szenario 1. Erwägen Sie ein Szenario, 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 der Tabelle "B" gelöscht werden.

    In diesem Szenario muss der Adapterclient aus der empfangenen Benachrichtigung den Typ der Benachrichtigung extrahieren, um zu entscheiden, ob die Benachrichtigung für einen Einfügevorgang oder einen Löschvorgang war. Sobald der Benachrichtigungstyp ermittelt wurde, müssen die Adapterclients nachfolgende Aktionen ausführen, um die relevanten Tabellen einzufügen oder zu aktualisieren.

  • Szenario 2. Erwägen Sie ein Szenario, in dem der Empfangsort, der Benachrichtigungen für Änderungen an einer Tabelle empfängt, ausfällt. Während der Empfangsort ausgefallen ist, werden einige Datensätze der Tabelle hinzugefügt. Für diese Datensätze erhält der Adapterclient jedoch keine Benachrichtigung. Wenn der Empfangsspeicherort gesichert ist, benachrichtigt der Adapter den Client durch Senden einer bestimmten Nachricht, und dann 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 extrahieren, ob die Benachrichtigung sich auf eine Änderung an einer Datenbanktabelle bezieht oder darauf, dass der Empfangsstandort gestartet wird. Wenn die Benachrichtigung für den Start des Empfangsspeicherorts erfolgt, müssen die Adapter-Clients die Logik implementieren, um die Datensätze zu verarbeiten, die möglicherweise eingefügt, aktualisiert oder gelöscht wurden, während der Empfangsspeicherort nicht verfügbar war.

Hinweis

Dies sind nur einige Beispielszenarien, die für ein besseres Verständnis der Verwendung des Benachrichtigungsfeatures im SQL-Adapter aufgeführt sind. Die grundlegenden Aufgaben, die zum Extrahieren des empfangenen Benachrichtigungstyps erforderlich sind, sind jedoch für alle Szenarien ähnlich. Dieses Thema enthält Anweisungen zum Extrahieren des Benachrichtigungstyps aus einer Benachrichtigung.

Wie in diesem Thema das Empfangen von Benachrichtigungen und das Extrahieren des Benachrichtigungstyps veranschaulicht wird

In diesem Thema wird gezeigt, wie Benachrichtigungen verarbeitet werden, um nachfolgende Aufgaben auszuführen. Wir betrachten ein grundlegendes Szenario, in dem ein Adapter-Client die BizTalk-Anwendung verwendet, um Benachrichtigungen für Änderungen an der Tabelle "Mitarbeiter" zu empfangen. Nachdem die Benachrichtigung empfangen wurde, filtert der Client den Typ der empfangenen Benachrichtigung und führt nachfolgende Aktionen aus. Um ein sehr einfaches Szenario zu veranschaulichen, betrachten wir, dass der Adapterclient die Benachrichtigungen basierend auf der Art der empfangenen Benachrichtigung in verschiedene Ordner kopiert. Also:

  • Wenn die Benachrichtigung für einen Einfüge- oder Aktualisierungsvorgang vorgesehen ist, 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 unidirektionaler Empfangsanschluss für Benachrichtigungsnachrichten.

  • Eine Ausdrucksform, die eine XPath-Abfrage enthält, um die Informationen über die Art der empfangenen Benachrichtigungsnachricht zu extrahieren.

  • Ein Entscheidungs-Shape, das einen Entscheidungsblock in die Orchestrierung einschließt. In diesem Entscheidungsblock entscheidet die Anwendung, welche nachfolgenden Vorgänge basierend auf der empfangenen Benachrichtigung ausgeführt werden sollen.

  • Zwei Einweg-Sendeports, die schließlich die Benachrichtigungen empfangen werden.

Konfigurieren von Benachrichtigungen mit den SQL-Adapterbindungseigenschaften

In der folgenden Tabelle sind die SQL-Adapterbindungseigenschaften zusammengefasst, die Sie zum Konfigurieren des Empfangens von Benachrichtigungen von SQL Server verwenden. Sie müssen diese Bindungseigenschaften angeben, während Sie den Empfangsport in der BizTalk Server-Verwaltungskonsole konfigurieren.

Hinweis

Sie können diese Bindungseigenschaften beim Generieren des Schemas für den Benachrichtigungsvorgang angeben, auch wenn es nicht obligatorisch ist. Wenn Sie dies tun, enthält die Portbindungsdatei, die das Add-In "Adapterdienst nutzen" als Teil der Metadatengenerierung erstellt, auch die Werte, die Sie für die Bindungseigenschaften angeben. Sie können diese Bindungsdatei später in der BizTalk Server-Verwaltungskonsole importieren, um den WCF-benutzerdefinierten oder WCF-SQL Empfangen-Port zu erstellen, wobei die Bindungseigenschaften bereits festgelegt sind. 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.

Bindungseigenschaft BESCHREIBUNG
InboundOperationType Gibt den ankommenden Vorgang an, den Sie ausführen möchten. Um Benachrichtigungen zu empfangen, legen Sie dies auf "Benachrichtigung" fest.
NotificationStatement Gibt die SQL-Anweisung (SELECT- oder EXEC-gespeicherte <Prozedur>) an, die zum Registrieren für Abfragebenachrichtigungen verwendet wird. Der Adapter erhält eine Benachrichtigung von SQL Server nur, wenn sich die Ergebnismenge für die angegebene SQL-Anweisung ändert.
NotifyOnListenerStart Gibt an, ob der Adapter beim Starten des Listeners eine Benachrichtigung an die Adapterclients sendet.

Eine vollständigere Beschreibung dieser Eigenschaften finden Sie unter Lesen Sie über die Bindungseigenschaften des BizTalk-Adapters für SQL Server. Eine vollständige Beschreibung der Verwendung des SQL-Adapters zum Empfangen von Benachrichtigungen von SQL Server finden Sie weiter.

So empfangen Sie Benachrichtigungen aus der SQL Server-Datenbank

Das Ausführen eines Vorgangs in der SQL Server-Datenbank mithilfe des SQL-Adapters mit BizTalk Server umfasst die in Bausteinen beschriebenen Verfahrensaufgaben zum Entwickeln von BizTalk-Anwendungen mit dem SQL-Adapter. Zum Konfigurieren des Adapters zum Empfangen von Benachrichtigungsnachrichten sind folgende Aufgaben erforderlich:

  1. Erstellen Sie ein BizTalk-Projekt, und generieren Sie dann das Schema für den eingehenden Benachrichtigungsvorgang . Optional können Sie Werte für die InboundOperationType - und NotificationStatement-Bindungseigenschaften angeben.

  2. Erstellen Sie eine Nachricht im BizTalk-Projekt zum Empfangen von Benachrichtigungen aus der SQL Server-Datenbank.

  3. Erstellen Sie eine Orchestrierung, wie im vorherigen Abschnitt beschrieben.

  4. Erstellen und Bereitstellen des BizTalk-Projekts.

  5. Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.

    Hinweis

    Bei eingehenden Vorgängen wie dem Empfangen von Benachrichtigungen müssen Sie nur einen unidirektionale WCF-Custom oder WCF-SQL Empfangsport konfigurieren. Bidirektionale Empfangsanschlüsse WCF-Custom oder WCF-SQL werden für eingehende Vorgänge nicht unterstützt.

  6. Starten Sie die BizTalk-Anwendung.

    Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.

Generieren des 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 zur Entwurfszeit nicht angeben möchten.

  1. Geben Sie beim Generieren des Schemas einen Wert für die Bindungseigenschaften InboundOperationType und NotificationStatement an. Weitere Informationen zu dieser Bindungseigenschaft erhalten Sie, indem Sie den Abschnitt "BizTalk-Adapter für SQL Server-Adapterbindungseigenschaften" lesen. Anweisungen zum Angeben von Bindungseigenschaften finden Sie unter Konfigurieren der Bindungseigenschaften für den SQL-Adapter.

  2. Wählen Sie den Vertragstyp als Dienst (eingehende Vorgänge) aus.

  3. Generieren Sie das Schema für den Benachrichtigungsvorgang .

Definieren von Nachrichten und Nachrichtentypen

Das Schema, das Sie früher generiert haben, beschreibt die für die Nachrichten in der Orchestrierung erforderlichen "Typen". 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 Nachrichten aus der Orchestrierungsansicht des BizTalk-Projekts verknüpfen.

Für dieses Thema müssen Sie eine Nachricht erstellen, um Benachrichtigungen aus der SQL Server-Datenbank zu empfangen.

Führen Sie die folgenden Schritte aus, um Nachrichten zu erstellen und mit dem Schema zu verknüpfen.

  1. 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".

  2. Ö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".

  3. Klicken Sie in der Orchestrierungsansicht mit der rechten Maustaste auf "Nachrichten", und klicken Sie dann auf "Neue Nachricht".

  4. Klicken Sie mit der rechten Maustaste auf die neu erstellte Nachricht, und wählen Sie dann "Eigenschaftenfenster" aus.

  5. Gehen Sie im Eigenschaftenbereich für Message_1 wie folgt vor:

    Verwenden Sie diese Aktion
    Kennung 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. 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 Benachrichtigungen aus der SQL Server-Datenbank zu verwenden und dann Aufgaben basierend auf dem Typ der empfangenen Benachrichtigung auszuführen. In dieser Orchestrierung empfängt der Adapter die Benachrichtigung basierend auf der SELECT-Anweisung, die für die NotificationStatement-Bindungseigenschaft angegeben ist. Die im Ausdrucks-Shape angegebene xpath-Abfrage extrahiert den Typ der Benachrichtigung in eine Variable, nämlich NotificationType. Das Shape "Entscheiden" verwendet den Wert in dieser Variablen, um zu entscheiden, welche Art von Benachrichtigung empfangen wurde, 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 Einfüge- oder Aktualisierungsvorgang vorgesehen ist, 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".

    Ihre Orchestrierung muss also Folgendes enthalten:

  • Ein unidirektionaler Empfangsanschluss für Benachrichtigungsnachrichten.

  • Eine Ausdrucksform, die eine XPath-Abfrage enthält, um die Art der empfangenen Benachrichtigung zu extrahieren.

  • Ein Entscheidungs-Shape, das einen Entscheidungsblock in die Orchestrierung einschließt. In diesem Entscheidungsblock entscheidet die Anwendung, welche nachfolgenden Vorgänge basierend auf der empfangenen Benachrichtigung ausgeführt werden sollen.

  • Zwei Einweg-Sendeports, die schließlich die Benachrichtigungen empfangen werden.

  • Gestalt annehmen

    Eine Beispiel-Orchestrierung ähnelt der folgenden.

    Orchestrierung zur Durchführung von Aufgaben nach der Benachrichtigung

Hinzufügen von Nachrichtenformen

Stellen Sie sicher, dass Sie die folgenden Eigenschaften für die einzelnen Nachrichten-Shapes angeben. Die in der Spalte "Shape" aufgeführten Namen sind die der Nachrichten-Shapes, die in der gerade erwähnten Orchestrierung angezeigt werden.

Gestalt Shape-Typ Eigenschaften
ReceiveNotification Empfangen - Name auf ReceiveNotification setzen

- Setze Aktivieren auf True

Hinzufügen einer Ausdrucksform

Der Zweck der Einbindung eines Ausdrucks-Elements in die Orchestrierung besteht darin, eine XPath-Abfrage zu verwenden, um die Art der empfangenen Benachrichtigung zu extrahieren. Bevor Sie eine xpath-Abfrage erstellen, schauen wir uns das Format einer Benachrichtigung an. Eine typische Benachrichtigung sieht wie folgt aus:

<Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/">  
  <Info>Insert</Info>   
  <Source>Data</Source>   
  <Type>Change</Type>   
</Notification>  

Wie Sie sehen, stehen die Informationen zum Typ der Benachrichtigung innerhalb des <info> Tags innerhalb des übergeordneten <Notification> Tags zur Verfügung. Im Rahmen dieses Ausdrucks-Shapes müssen Sie folgende Aktionen ausführen:

  • Erstellen Sie eine Variable, die den Wert innerhalb des <Info> Tags enthält, und legen Sie den Typ auf "System.String" fest. Weitere Informationen zum Erstellen von Variablen finden Sie unter Verwenden von Variablen in Orchestrierungen.

    Benennen Sie für dieses Thema die Variable als NotificationType.

  • Erstellen Sie eine xpath-Abfrage, um den Wert aus dem <Info-Tag> zu extrahieren. Die xpath-Abfrage sieht wie folgt aus:

    NotificationType = xpath(NotifyReceive,"string(/*[local-name()='Notification']/*[local-name()='Info']/text())");  
    

    In dieser xpath-Abfrage ist NotifyReceive die Nachricht, die Sie für den Empfang von Benachrichtigungen erstellt haben. Der Auszug innerhalb der string Funktion gibt an, dass die Abfrage den Wert innerhalb des <Info> Tags extrahieren muss, der wiederum innerhalb des <Notification> Tags liegt. Schließlich wird der von der Abfrage extrahierte Wert der Variablen NotificaitonType zugewiesen.

Hinzufügen einer Entscheidungsform

Der Zweck des Hinzufügens eines Entscheidungs-Shapes besteht darin, einen Entscheidungsblock in die Orchestrierung einzuschließen, um zu entscheiden, welche nachfolgenden Vorgänge je nach Art der empfangenen Benachrichtigung ausgeführt werden sollen. Die Entscheidung wird auf der Grundlage des Werts der NotificationType-Variablen getroffen. In diesem Thema trifft die Orchestrierung eine Entscheidung basierend auf der Art der empfangenen Benachrichtigung. Die Bedingung in der Regelform wird also wie folgt angegeben:

NotificationType.Equals("Insert") | NotificationType.Equals("Update")  

Diese Bedingung deutet darauf hin, dass die Orchestrierung eine Reihe von Aufgaben ausführt, wenn der Wert für die Variable NotificaitonType "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, wird die Orchestrierung, um einen einfachen Ansatz zu veranschaulichen, Nachrichten basierend auf dem Benachrichtigungstyp in verschiedene Ordner kopieren. Daher müssen Sie innerhalb der Regel- und Else-Blöcke "Senden"-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

Sie müssen nun die folgenden logischen Ports zur Orchestrierung hinzufügen:

  • Unidirektionaler Empfangsport zur Annahme von Benachrichtigungsnachrichten vom SQL Server.

  • Einweg-Sendeport zum Senden von Benachrichtigungen für Einfüge- und Aktualisierungsvorgänge an einen bestimmten Ordner.

  • Einweg-Sendeport, um Benachrichtigungsnachrichten für beliebige andere Vorgänge in einen bestimmten Ordner zu senden.

    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.

Hafen Eigenschaften
SQLNotifyPort - Bezeichner auf SQLNotifyPort festlegen

- Typ aufSQLNotifyPortType festlegen

- Kommunikationsmuster auf Einwegkommunikation setzen

- Setze Kommunikationsrichtung auf Empfangen
NotificationUpsertPort - Bezeichner auf NotificationUpsertPort festlegen

- Typ auf NotificationUpsertPortType festlegen

- Setzen Sie Kommunikationsmuster auf Einweg

- Kommunikationsrichtung auf "Senden" festlegen
AndererBenachrichtigungsPort - Bezeichner auf OtherNotificationPort festlegen

- Stellen Sie Typ auf OtherNotificationPortType

- Kommunikationsmuster auf Einweg festlegen

- Kommunikationsrichtung auf "Senden" festlegen

Angeben von Nachrichten für Aktions-Shapes und Verbinden mit Ports

In der folgenden Tabelle werden die Eigenschaften und deren Werte angegeben, die Sie festlegen sollten, um Nachrichten für Aktions-Shapes anzugeben und die Nachrichten mit den Ports zu verknüpfen. Die in der Spalte "Shape" aufgeführten Namen sind die Namen der Nachrichten-Shapes, wie in der zuvor erwähnten Orchestrierung angezeigt.

Gestalt Eigenschaften
ReceiveNotification - Nachricht auf NotifyReceive festlegen

- Vorgang auf SQLNotifyPort.Notify.Request festlegen
SendeUpsertBenachrichtigung - Nachricht auf NotifyReceive festlegen

- Vorgang auf NotificationUpsertPort.Upsert.Request festlegen
AndereBenachrichtigungSenden - Nachricht auf Auswahl einstellen

- Vorgang auf OtherNotificationPort.Other.Request festlegen

Nachdem Sie diese Eigenschaften angegeben haben, sind die Nachrichtenformen und Ports verbunden, und die Orchestrierung ist abgeschlossen.

Sie müssen nun die BizTalk-Lösung erstellen und auf einem BizTalk Server bereitstellen. Weitere Informationen finden Sie unter Building and Running Orchestrations.

Konfigurieren der BizTalk-Anwendung

Nachdem Sie das BizTalk-Projekt bereitgestellt haben, wird die zuvor erstellte Orchestrierung im Bereich "Orchestrierungen " 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 Walkthrough: Deploying a Basic BizTalk Application.

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 WCF-SQL-unidirektionalen Empfangsport. Dieser Port überwacht 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.

      Von Bedeutung

      Sie müssen diesen Schritt nicht ausführen, wenn Sie die Bindungseigenschaften zur Entwurfszeit angegeben haben. In diesem Fall können Sie einen WCF-benutzerdefinierten oder WCF-SQL-Empfangsport erstellen, wobei die erforderlichen Bindungseigenschaften festgelegt sind, indem Sie die Bindungsdatei importieren, die vom Add-In "Consume Adapter Service Add-in" 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 folgendes fest:

      SELECT Employee_ID, Name FROM dbo.Employee WHERE Status=0

      Anmerkung: Sie müssen die Spaltennamen in der Anweisung explizit angeben, wie in dieser SELECT-Anweisung dargestellt. Außerdem müssen Sie immer den Tabellennamen zusammen mit dem Schemanamen angeben. Beispiel: dbo.Employee.
      NotifyOnListenerStart Legen Sie diesen Wert auf "True" fest.

      Weitere Informationen über die verschiedenen Bindungseigenschaften finden Sie unter "Lesen Sie mehr über den BizTalk-Adapter für die Bindungseigenschaften des SQL Server Adapters".

      Hinweis

      Es wird empfohlen, die Transaktionsisolationsstufe und das Transaktionstimeout beim Ausführen eingehender Vorgänge mit dem SQL-Adapter zu konfigurieren. Dazu können Sie das Dienstverhalten hinzufügen, indem Sie den Empfangsport WCF-Custom oder WCF-SQL konfigurieren. Anweisungen zum Hinzufügen des Dienstverhaltens finden Sie unter Configure Transaction Isolation Level and Transaction Timeout with 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 Einfüge- und Aktualisierungsvorgänge ablöscht. Konfigurieren Sie diesen Port, um Benachrichtigungen im Ordner "C:\TestLocation\UpsertNotification" abzulegen.

    • 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 abzulegen.

Starten der Anwendung

Sie müssen die BizTalk-Anwendung zum Empfangen von Benachrichtigungen aus der SQL Server-Datenbank und zum Ausführen der nachfolgenden Auswahl- und Aktualisierungsvorgänge starten. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter "So starten Sie eine Orchestrierung".

Stellen Sie in dieser Phase folgendes sicher:

  • Der unidirektionale Empfangsport WCF-Custom oder WCF-SQL, der die Benachrichtigungen aus der SQL Server-Datenbank empfängt, wird ausgeführt.

  • Die beiden FILE-Sendeports, die Nachrichten von SQL Server empfangen, sind aktiv.

  • 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 Nachricht im Ordner "C:\TestLocation\OtherNotification" empfangen.

  • Fügen Sie einen Datensatz in die Tabelle "Mitarbeiter" ein. Sie erhalten eine Benachrichtigung, die wie folgt lautet:

    <?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 "Einfügen" lautet. Daher wird diese Nachricht im Ordner "C:\TestLocation\UpsertNotification" empfangen.

  • Aktualisieren eines Datensatzes in der Tabelle "Mitarbeiter". Sie erhalten eine Benachrichtigung, die wie folgt lautet:

    <?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 eines Datensatzes aus der Tabelle "Mitarbeiter". Sie erhalten eine Benachrichtigung, die wie folgt lautet:

    <?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 Nachricht 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 keine Sendeports erstellen und Ports für dieselbe Orchestrierung empfangen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von Adapterbindungen.

Ausführen komplexer Vorgänge nach erhalt von Benachrichtigungen

Zur Vereinfachung und besseren Verständnis 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 Verfahren wie in diesem Thema beschrieben ausführen und auf diese aufbauen, um die gewünschten Vorgänge auszuführen. Sie können z. B. die Orchestrierung so ändern, dass Datensätze in eine andere Tabelle eingefügt werden, wenn Sie eine Benachrichtigung für einen Einfügevorgang in der Tabelle "Mitarbeiter" erhalten. In einem solchen Fall können Sie entsprechende Änderungen innerhalb des Shape "Entscheiden" vornehmen.

Ein solches Szenario wird im Lernprogramm 2: Mitarbeiter – Bestellprozess mithilfe des SQL-Adapters ausführlich erläutert.

Siehe auch

Empfangen von SQL-Abfragebenachrichtigungen mit BizTalk Server