Freigeben über


Abfragen in SQL Server unter Verwendung des SQL-Adapters

Microsoft BizTalk Adapter für SQL Server ermöglicht Adapterclients das Empfangen von Datenänderungsmeldungen aus der SQL Server-Datenbank. Der SQL-Adapter unterstützt den Empfang von "Abruf-basierten" Nachrichten, wobei der Adapter eine angegebene SQL-Anweisung (SELECT-Anweisung oder gespeicherte Prozedur) ausführt, die Daten abruft oder aktualisiert und das Ergebnis für den Adapterclient in regelmäßigen Zeitintervallen bereitstellt.

Der SQL-Adapter ermöglicht die Durchführung der folgenden Vorgänge für Umfragen:

  • Abfrage: Ermöglicht ihnen das Empfangen regelmäßiger Datenänderungsmeldungen für SQL Server-Tabellen oder -Ansichten. Die Nachrichten sind nicht stark typisiert.

  • TypedPolling: Ermöglicht es Ihnen, stark typierte Nachrichten aus der SQL Server-Datenbank zu empfangen. Sie müssen diesen Vorgang verwenden, wenn Sie die Elemente in der Abrufnachricht einem anderen Schema zuordnen möchten.

  • XmlPolling. Ermöglicht die Verwendung von SELECT-Anweisungen oder gespeicherten Prozeduren, die eine FOR XML-Klausel verwenden und Daten als XML-Nachrichten zurückgeben. Dieser Vorgang gibt die Abrufnachricht als XML-Nachricht zurück.

    Weitere Informationen zu FOR XML-Klausel finden Sie unter https://go.microsoft.com/fwlink/?LinkId=131402.

    Weitere Informationen zum Polling im SQL-Adapter finden Sie unter Empfangen von datenänderungsbasierten Nachrichten von SQL Server mithilfe von BizTalk Server.

Abfrage

Ein typischer Abrufvorgang mit dem SQL-Adapter umfasst Folgendes:

  1. Die Adapterclients müssen Polling als eingehenden Vorgang in der InboundOperationType-Bindungseigenschaft angeben. Der Standardwert für diese Bindungseigenschaft lautet Polling.

  2. Die Adapterclients müssen eine SQL-Anweisung für die PolledDataAvailableStatement-Bindungseigenschaft angeben, die bestimmt, ob Daten für die Abfrage verfügbar sind. Die erste Spalte der ersten Zeile des ersten Resultsets, die beim Ausführen dieser Anweisung zurückgegeben wird, enthält einen ganzzahligen Wert. Wenn keine Daten für die Abfrage verfügbar sind, ist der Rückgabewert 0 (Null). Wenn Daten verfügbar sind, ist der Rückgabewert größer als Null.

  3. Die Adapterclients müssen ein Abrufintervall für die Binding-Eigenschaft "PollingIntervalInSeconds " angeben, um das Intervall zu definieren, in dem die Anweisung in der Binding-Eigenschaft "PolledDataAvailableStatement " ausgeführt wird. Am Ende jedes Abrufintervalls wird die Anweisung für verfügbare abgefragte Daten ausgeführt, und das Resultset wird zurückgegeben.

  4. Die Adapterclients müssen eine SQL-Abfrageanweisung (SELECT-Anweisung oder gespeicherte Prozedur) für die PollingStatement-Bindungseigenschaft angeben. Wenn Daten für die Abfrage verfügbar sind (bestimmt durch die Eigenschaft "PolledDataAvailableStatement"), führt der Adapter die Abfrageanweisung aus, um die Daten in der SQL Server-Datenbank abzurufen und gegebenenfalls zu aktualisieren. Wenn der SQL-Adapter mit BizTalk Server verwendet wird, wird dieselbe Transaktion auch verwendet, um die Nachricht an BizTalk Server zu senden.

  5. Die Adapterclients können die PollWhileDataFound-Bindungseigenschaft verwenden, um das Abrufintervall zu ignorieren und fortlaufend Daten abzurufen, wie und wann verfügbar.

  6. Die Ergebnismengen, die als Ergebnis der Ausführung der Abfrageanweisung zurückgegeben werden, werden als eingehende Nachricht an den Adapter-Client gesendet.

Hinweis

Wenn UseAmbientTransaction auf "False" festgelegt ist, wird " PolledDataAvailableStatement " nicht aufgerufen. Stattdessen ruft der Adapter direkt den PollingStatement auf.

Hinweis

Ein XmlPolling-Vorgang umfasst dieselben Schritte wie ein Polling-Vorgang.

Strongly-Typed Umfrage

Eine typische stark typisierte Polling-Operation mit dem SQL-Adapter umfasst Folgendes:

  1. Die Adapterclients müssen TypedPolling als eingehenden Vorgang in der InboundOperationType-Bindungseigenschaft angeben. Der Standardwert für diese Bindungseigenschaft lautet Polling.

  2. Die Adapterclients sollten eine Eingangs-ID als Teil des Verbindungs-URIs angeben. Die eingehende ID kann eine beliebige Zeichenfolge sein und wird an den Standardnamespace des TypedPolling-Vorgangs angefügt, um Namespacekonflikte zu verhindern.

  3. Die restlichen Schritte sind identisch mit den in Abschnitt 2 bis 6 des im vorherigen Abschnitt beschriebenen Abfragevorgangs aufgeführten Schritten.

    Ausführliche Informationen zu den Bindungseigenschaften im Zusammenhang mit abrufenden und stark typgesteuerten Abfragen finden Sie unter "Informationen zum BizTalk-Adapter für SQL Server-Adapterbindungseigenschaften".

Hinweis

Mehrere Resultsets können als Ergebnis der Ausführung der Abfrage-Anweisung zurückgegeben werden. Wenn die Resultsets keine Zeilen enthalten, werden keine Nachrichten an den Adapterclient gesendet.

Die untenstehende Abbildung bietet Informationen über den Polling-Workflow im SQL-Adapter. Es werden zwei Szenarien für den Abfrageworkflow veranschaulicht.

  1. Wenn der Wert von PollWhileDataFound auf "False" festgelegt ist (Standardeinstellung).

  2. Wenn der Wert von PollWhileDataFound auf "True" festgelegt ist.

    Polling Workflow (PollWhileDataFound = False) Polling Workflow (PollWhileDataFound = True)

Unterschiede zwischen Polling und Abfragebenachrichtigung

Obwohl sowohl Polling als auch Abfragebenachrichtigungen eingehende Vorgänge sind und die Adapterclients über Datenänderungen in der SQL Server-Datenbank informieren, listet die folgende Tabelle einige Unterschiede zwischen den beiden auf. Die folgenden Unterschiede helfen Ihnen bei der Entscheidung über einen Vorgang je nach Ihren Anforderungen:

Abfrage Abfragebenachrichtigung
Die Abfrage wird vom Adapter initiiert. Der Adapter führt eine Anweisung aus, um zu überprüfen, ob Daten für das Polling verfügbar sind, und initiiert dann das Polling, indem er die Polling-Anweisung ausführt, wenn verfügbare Daten zum Polling vorhanden sind. Die Abfragebenachrichtigung wird von SQL Server initiiert. Die vom Adapter ausgegebene Benachrichtigungsanweisung weist die Datenbank lediglich an, eine Benachrichtigung zu initiieren, falls eine Änderung im Resultset der Anweisung vorhanden ist.
Sie können die Polling-Anweisung verwenden, um Daten in einer SQL-Server-Datenbanktabelle zu lesen oder zu aktualisieren. Sie können die Abfragebenachrichtigungsanweisung verwenden, um nur Daten in einer SQL Server-Datenbanktabelle zu lesen.
Das Abfragen zeigt Ihnen die tatsächlichen Daten, die sich geändert haben. Die Abfragebenachrichtigung informiert nur über den Typ der Änderung in den Daten, z. B. "Einfügen", "Aktualisieren" und "Löschen".
Die Datenänderungsbenachrichtigung hängt vom Abrufintervall ab, und die Adapterclients werden über die Datenänderungen am Ende jedes Abrufintervalls informiert. Tipp: Polling kann Ihnen einen besseren Durchsatz in Szenarien bieten, in denen die Datenänderungen kontinuierlich auftreten, und Sie möchten nicht über jede Änderung benachrichtigt werden, sobald diese geschehen. Stattdessen geben Sie ein Abrufintervall an, nach dem Sie über alle Änderungen benachrichtigt werden möchten, die seit der letzten Datenänderungsbenachrichtigung aufgetreten sind. Die Datenänderungsbenachrichtigung erfolgt sofort.

Weitere Informationen zur Abfragebenachrichtigung in Microsoft BizTalk Adapter für SQL Server finden Sie unter Empfangen von SQL-Abfragebenachrichtigungen mithilfe von BizTalk Server.

Siehe auch

Welche Vorgänge können mit dem Adapter ausgeführt werden?