Freigeben über


Inkrementelles Empfangen von Abfragebenachrichtigungen von SQL mithilfe von BizTalk Server

Wichtig

Der Einfachheit halber beschreibt dieses Thema nur, wie Benachrichtigungen inkrementell empfangen werden. In Geschäftsszenarien muss die Orchestrierung idealerweise die Logik enthalten, um die Art der empfangenen Benachrichtigung zu extrahieren und anschließend alle nachfolgenden Vorgänge auszuführen. Anders ausgedrückt: Die in diesem Thema beschriebene Orchestrierung muss auf der Orchestrierung basieren, die unter Verarbeiten von Benachrichtigungen beschrieben wird, um bestimmte Aufgaben in SQL mithilfe von BizTalk Server auszuführen.

In diesem Thema wird veranschaulicht, wie Sie den SQL-Adapter so konfigurieren, dass Benachrichtigungen über inkrementelle Abfragen von einer SQL Server-Datenbank empfangen werden. Um inkrementelle Benachrichtigungen zu veranschaulichen, betrachten Sie die Tabelle Employee mit der Spalte "Status". Wenn ein neuer Datensatz in diese Tabelle eingefügt wird, wird der Wert der Spalte Status auf 0 festgelegt. Sie können den Adapter so konfigurieren, dass er inkrementelle Benachrichtigungen empfängt, indem Sie die folgenden Schritte ausführen:

  • Registrieren Sie sich für Benachrichtigungen mit einer SQL-Anweisung, die alle Datensätze mit der Spalte Status als 0 abruft. Hierzu können Sie die SQL-Anweisung für die NotificationStatement-Bindungseigenschaft angeben.

  • Aktualisieren Sie für Zeilen, für die Benachrichtigungen empfangen wurden, die Spalte Status auf 1.

    In diesem Thema wird veranschaulicht, wie Sie eine BizTalk-Orchestrierung erstellen und eine BizTalk-Anwendung konfigurieren, um dies zu erreichen.

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 Eigenschaften der Adapterbindung. Eine vollständige Beschreibung der Verwendung des SQL-Adapters zum Empfangen von Benachrichtigungen von SQL Server finden Sie weiter.

In diesem Thema wird der Empfang von Benachrichtigungen veranschaulicht.

Um zu veranschaulichen, wie der SQL-Adapter den Empfang von Benachrichtigungen von SQL Server unterstützt, wird in diesem Thema veranschaulicht, wie der Adapter für den Empfang von Benachrichtigungen für Änderungen an einer Employee-Tabelle konfiguriert wird. Angenommen, die Tabelle Employee enthält Spalten Employee_ID, Name und Status. Wenn ein neuer Mitarbeiter hinzugefügt wird, wird der Wert der Spalte Status auf 0 festgelegt.

Gehen Sie wie folgt vor, um den Empfang von Benachrichtigungen zu veranschaulichen:

  • Generieren Sie das Schema für die Benachrichtigung (eingehender Vorgang) und auswählen (ausgehender Vorgang) für die Tabelle Employee.

  • Erstellen Sie eine Orchestrierung, die folgendes aufweist:

    • Ein Empfangsspeicherort zum Empfangen von Benachrichtigungen. Sie können für Benachrichtigungen konfigurieren, indem Sie die SELECT-Anweisung wie folgt angeben:

      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.

    • Ein Sendeport zum Aktualisieren der Zeilen, für die bereits eine Benachrichtigung gesendet wurde. Dazu legen Sie den Wert in der Spalte Status auf 1 fest. Sie können dies im Rahmen des Select-Vorgangs tun, indem Sie die folgende Meldung an den Adapter senden.

      <Select xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">  
        <Columns>Employee_ID,Name,Status</Columns>  
        <Query>where Status=0;UPDATE Employee SET Status=1 WHERE Status=0</Query>  
      </Select>  
      

      In dieser Meldung geben Sie als Teil des <Query> -Elements die UPDATE-Anweisung an, um die Spalte Status zu aktualisieren. Beachten Sie, dass dieser Vorgang nach dem Empfang der Benachrichtigungen ausgeführt werden muss, damit die verarbeiteten Zeilen aktualisiert werden. Um den Aufwand des Wartens auf den Erhalt der Benachrichtigungsantwort zu beseitigen und dann eine Anforderungsnachricht manuell zu löschen, um die Zeilen zu aktualisieren, generieren Sie die Anforderungsnachricht zum Aktualisieren der Zeilen innerhalb der Orchestrierung selbst. Dazu können Sie das Shape Nachricht erstellen innerhalb einer Orchestrierung verwenden.

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:

  1. Erstellen Sie ein BizTalk-Projekt, und generieren Sie dann das Schema für Benachrichtigung (eingehender Vorgang) und Auswählen (ausgehender Vorgang) für die Tabelle Employee. Optional können Sie Werte für die Bindungseigenschaften InboundOperationType und NotificationStatement angeben.

  2. Erstellen Sie eine Nachricht im BizTalk-Projekt, um Benachrichtigungen von der SQL Server-Datenbank zu erhalten.

  3. Erstellen Sie Meldungen im BizTalk-Projekt, um informationen zur SQL Server-Datenbank auswählen und Antwortnachrichten zu empfangen.

  4. Erstellen Sie eine Orchestrierung, die die folgenden Aktionen ausführt:

    • Empfängt eine Benachrichtigung von SQL Server.

    • Erstellt eine Nachricht zum Auswählen und Aktualisieren der Zeilen, für die eine Benachrichtigung empfangen wird.

    • Sendet diese Nachricht an den SQL Server, um die Zeilen zu aktualisieren, und empfängt eine Antwort.

  5. Erstellen sie das BizTalk-Projekt, und stellen Sie es bereit.

  6. 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.

  7. Starten Sie die BizTalk-Anwendung.

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

Beispiel basierend auf diesem Thema

Ein Beispiel, IncrementalNotification, basierend auf diesem Thema wird mit dem BizTalk Adapter Pack bereitgestellt. Weitere Informationen finden Sie unter Beispiele für den SQL-Adapter.

Generieren eines Schemas

Sie müssen das Schema für den Benachrichtigungsvorgang und den Select-Vorgang für die Tabelle Employee 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.

  1. 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 Eigenschaften der Adapterbindung. 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 ein Schema für den Benachrichtigungsvorgang .

  4. Wählen Sie den Vertragstyp Client (Ausgehende Vorgänge) aus.

  5. Generieren Sie ein Schema für den Select-Vorgang für die Tabelle Employee .

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 drei Nachrichten erstellen– eine zum Empfangen von Benachrichtigungen von der SQL Server-Datenbank, eine zum Ausführen des Select-Vorgangs und eine zum Empfangen der Antwort für Select-Vorgang.

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. Führen Sie im Bereich Eigenschaften für Message_1 die folgenden Schritte aus:

    Option Aufgabe
    Bezeichner Geben Sie NotifyReceiveein.
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie SQLNotify.Notification aus, wobei SQLNotify der Name Ihres BizTalk-Projekts ist. Die Benachrichtigung ist das Schema, das für den Benachrichtigungsvorgang generiert wird.
  6. Wiederholen Sie Schritt 3, um zwei neue Nachrichten zu erstellen. Gehen Sie im Bereich Eigenschaften für die neue Nachricht wie folgt vor:

    Festlegen des Bezeichners auf Festlegen des Nachrichtentyps auf
    Select SQLNotify.TableOperation_dbo_Employee.Select, wobei TableOperation_dbo_Employee das schema ist, das für den Select-Vorgang generiert wurde.
    SelectResponse SQLNotify.TableOperation_dbo_Employee.SelectResponse

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 Aktualisieren der Zeilen zu verwenden, für die eine Benachrichtigung empfangen wurde. In dieser Orchestrierung empfängt der Adapter die Benachrichtigungsmeldung basierend auf der SELECT-Anweisung, die für die NotificationStatement-Bindungseigenschaft angegeben wurde. Die Benachrichtigungsmeldung wird an einem FILE-Speicherort empfangen. Sobald die Antwort empfangen wurde, erstellt die Orchestrierung eine Nachricht, die verwendet wird, um die Zeilen zu aktualisieren, für die eine Benachrichtigung empfangen wird. Die Antwort für diese Nachricht wird auch am gleichen FILE-Speicherort empfangen.

Daher muss Ihre Orchestrierung Folgendes enthalten:

  • Ein unidirektionale Empfangsport zum Empfangen von Benachrichtigungen.

  • Ein bidirektionales Sendeport zum Senden von Nachrichten zum Aktualisieren von Zeilen und Zum Empfangen einer Antwort für denselben.

  • Ein Shape "Nachricht erstellen ", um Nachrichten zu erstellen, um den Update-Vorgang innerhalb der Orchestrierung auszuführen.

  • Ein FILE-Sendeport, um die Antwort für den Updatevorgang zu speichern.

  • Empfangen und Senden von Shapes.

    Eine Beispielorchestrierung ähnelt der folgenden.

    Orchestrierung zum Empfangen SQL Server Benachrichtigungen

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.
SaveNotification Send – Legen Sie Name auf SaveNotification fest.
SendSelectMessage Send – Legen Sie Name auf SendSelectMessage fest.
ReceiveSelectResponse Empfangen Name aufReceiveSelectResponse festlegen
SaveSelectResponse Send Name aufSaveSelectResponse festlegen

Hinzufügen von Nachrichtenform erstellen

Sie können das Shape Nachricht erstellen verwenden, um eine Anforderungsnachricht innerhalb des Vorgangs zu generieren, um den Select-Vorgang auszuführen. Dazu müssen Sie der Orchestrierung ein Shape "Nachricht erstellen " und darin ein Shape "Nachrichtenzuweisung " hinzufügen. In diesem Beispiel ruft das Shape Nachrichtenzuweisung Code auf, der eine Nachricht generiert, die an SQL Server gesendet wird, um den Select-Vorgang auszuführen. Das Shape Nachrichtenzuweisung legt auch die Aktion für die Nachricht fest, die an SQL Server gesendet werden soll.

Legen Sie für die Form der Konstruktnachricht die Eigenschaft Message Constructed auf Select fest.

Der Code zum Generieren der Antwort könnte Teil derselben Visual Studio-Projektmappe wie Ihr BizTalk-Projekt sein. Ein Beispielcode zum Generieren einer Antwortnachricht sieht wie folgt aus.

namespace SampleMessageCreator  
{  
    public class SampleMessageCreator  
    {  
        private static XmlDocument Message;  
        private static string XmlFileLocation;  
        private static string ResponseDoc;  
        public static XmlDocument XMLMessageCreator()  
        {  
            XmlFileLocation = "C:\\TestLocation\\CreateMessage";  
            try  
            {  
                ResponseDoc = (Directory.GetFiles(XmlFileLocation, "*.xml", SearchOption.TopDirectoryOnly))[0];  
            }  
            catch (Exception ex)  
            {  
                Console.WriteLine("Trying to get XML from: " + XmlFileLocation);  
                Console.WriteLine("EXCEPTION: " + ex.ToString());  
                throw ex;  
            }  
            //Create Message From XML  
            Message = new XmlDocument();  
            Message.PreserveWhitespace = true;  
            Message.Load(ResponseDoc);  
            return Message;  
        }   
    }  
}  

Damit der vorherige Codeauszug eine Anforderungsnachricht generieren kann, muss eine XML-Anforderungsnachricht (für den Select-Vorgang für die Tabelle Employee) an dem für die XmlFileLocation Variable angegebenen Speicherort vorhanden sein.

Hinweis

Nachdem Sie das Projekt erstellt haben, werden SampleMessageCreator.dll im Projektverzeichnis erstellt. Sie müssen diese DLL dem globalen Assemblycache (GAC) hinzufügen. Außerdem müssen Sie die SampleMessageCreator.dll als Verweis im BizTalk-Projekt hinzufügen.

Fügen Sie den folgenden Ausdruck hinzu, um diesen Code aus dem Shape Nachrichtenzuweisung aufzurufen und die Aktion für die Nachricht festzulegen. Um einen Ausdruck hinzuzufügen, doppelklicken Sie auf das Shape Nachrichtenzuweisung , um den Ausdrucks-Editor zu öffnen.

Select = SampleMessageCreator.SampleMessageCreator.XMLMessageCreator();  
Select(WCF.Action) = "TableOp/Select/dbo/Employee";  

Hinzufügen von Ports

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
SaveMessagePort – Legen Sie Bezeichner auf SaveMessagePort fest.

– Legen Sie Type auf SaveMessagePortType fest.

- Festlegen des Kommunikationsmusters auf unidirektionales Muster

- Kommunikationsrichtung auf Senden festlegen

– Erstellen Sie einen Vorgang Benachrichtigen. Dieser Vorgang wird für Benachrichtigungsmeldungen verwendet.

– Erstellen Sie einen Vorgang Auswählen. Dieser Vorgang wird für ausgewählte Antwortnachrichten verwendet.
SQLOutboundPort – Festlegen des Bezeichners auf SQLOutboundPort

– Festlegen von Type auf SQLOutboundPortType

- Festlegen des Kommunikationsmusters auf Anforderungsantwort

- Festlegen der Kommunikationsrichtung auf Senden/Empfangen

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

– Legen Sie Operation auf SQLNotifyPort.Notify.Request fest.
SaveNotification Nachricht aufNotifyReceive festlegen

– Legen Sie Operation auf SaveMessagePort.Notify.Request fest.
SendSelectMessage Nachricht aufAuswählen festlegen

– Legen Sie Operation auf SQLOutboundPort.Select.Request fest.
ReceiveSelectResponse Nachricht aufSelectResponse festlegen

– Legen Sie Operation auf SQLOutboundPort.Select.Response fest.
SaveSelectResponse Nachricht aufSelectResponse festlegen

– Legen Sie Operation auf SaveMessagePort.Select.Request fest.

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

Sie müssen nun die BizTalk-Lösung erstellen und in einem 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 in der BizTalk Server Verwaltungskonsole im Bereich Orchestrierungen 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 Eigenschaften der Adapterbindung.

      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 physischen WCF-Custom oder WCF-SQL-Sendeport, um Nachrichten an die SQL Server-Datenbank zu senden. Sie müssen die Aktion auch im Sendeport angeben.

    • Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Nachrichten aus der SQL Server-Datenbank ablöscht. Dies sind die Benachrichtigungen, die von SQL Server und für den Select and Update-Vorgang empfangen werden, den Sie über den WCF-Custom- oder WCF-SQL-Sendeport ausführen.

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.

  • Der WCF-Custom- oder WCF-SQL-Sendeport zum Ausführen von Select- und Update-Vorgängen für die Tabelle Employee wird ausgeführt.

  • Der FILE-Sendeport, der Nachrichten von SQL Server empfängt, wird ausgeführt.

  • Die BizTalk-Orchestrierung für den Vorgang wird ausgeführt.

Ausführen des Vorgangs

Um diesen Vorgang auszuführen, müssen Sie einen Datensatz in die Tabelle Employee einfügen. Angenommen, Sie fügen einen Datensatz mit den folgenden Details ein:

Name = John Smith  
Designation = Manager  
Salary = 100000  

Stellen Sie außerdem sicher, dass die XML-Nachricht zum Ausführen von Select- und Update-Vorgängen unter C:\TestLocation\MessageIn verfügbar ist. Die XML-Datei sollte wie folgt aussehen:

<Select xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">  
  <Columns>Employee_ID,Name,Status</Columns>  
  <Query>where Status=0;UPDATE Employee SET Status=1 WHERE Status=0</Query>  
</Select>  

Nachdem der Datensatz eingefügt wurde, werden die folgenden Aktionen in derselben Reihenfolge ausgeführt:

  • Der Adapter empfängt 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>  
    

    Diese Meldung benachrichtigt, dass ein Datensatz in die Tabelle Employee eingefügt wurde. Beachten Sie, dass der Wert für das <Info> Element "Insert" lautet.

  • Der Adapter führt den Select-Vorgang aus. Da die Select-Vorgangs-XML auch eine Update-Anweisung enthält, wird auch die Update-Anweisung ausgeführt. Die nächste Antwort von SQL Server gilt für die Select-Anweisung.

    <?xml version="1.0" encoding="utf-8" ?>   
    <SelectResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">  
      <SelectResult>  
        <Employee xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">  
          <Employee_ID>10006</Employee_ID>   
          <Name>John</Name>   
          <Status>0</Status>  
        </Employee>  
      </SelectResult>  
    </SelectResponse>  
    

    Diese Antwort zeigt, dass ein Datensatz in die Tabelle Employee eingefügt wurde und der Status für diesen Datensatz 0 ist.

  • Im Rahmen der Select-Anweisung wird auch die Update-Anweisung ausgeführt, und die Spalte Status für den neuen Datensatz wird in 1 geändert. Dadurch wird erneut eine weitere Benachrichtigung von SQL Server ausgelöst, und der Adapter empfängt eine entsprechende 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>  
    

    Diese Meldung benachrichtigt, dass ein Datensatz in der Tabelle Employee aktualisiert wurde. Beachten Sie, dass der Wert für das <Info> Element "Update" lautet.

  • Nach der zweiten Benachrichtigung führt der Adapter die Select-Anweisung aus. Da es jedoch jetzt keine Datensätze mit Status als 0 gibt, erhält der Adapter eine leere Antwort, die der folgenden ähnelt.

    <?xml version="1.0" encoding="utf-8" ?>   
    <SelectResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">  
      <SelectResult />   
    </SelectResponse>  
    

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 SQL-Adapterbindungen.

Weitere Informationen

Empfangen von SQL-Abfragebenachrichtigungen mithilfe von BizTalk Server