Ausführen von Vorgängen für Tabellen und Ansichten mit großen Datentypen mithilfe des SQL-Adapters
Der SQL-Adapter ermöglicht Adapterclients das Lesen und Aktualisieren von Daten in Spalten großer Datentypen, d. a. varchar(max), nvarchar(max) oder varbinary(max). Zum Lesen von Daten aus solchen Spalten können Adapterclients den Select-Vorgang verwenden. Zum Einfügen oder Aktualisieren von Daten in solche Spalten macht der Adapter einen Vorgang set<column_name> verfügbar, wobei <column_name> der Name der Spalte vom Typ varchar(max), nvarchar(max) oder varbinary(max) ist.
Darüber hinaus können Sie in SQL Server 2008 die varbinay(max)-Spalte unstrukturierte Daten wie Textdokumente und Bilder speichern lassen. Solche unstrukturierten Daten werden ALS FILESTREAM-Daten bezeichnet. FILESTREAM-Daten können als Dateien im Dateisystem gespeichert werden. Mit dem SQL-Adapter kann der Client FILESTREAM-Daten in Spalten vom Typ varbinary(max) eingeben. Weitere Informationen zum FILESTREAM-Speicher finden Sie unter FILESTREAM Overview.
Dieses Thema enthält Informationen zu bestimmten Aufgaben, die Sie auf dem Computer ausführen müssen, auf dem SQL Server ausgeführt wird, und dem Computer, auf dem der Adapterclient ausgeführt wird, um FILESTREAM-Daten einfügen oder aktualisieren zu können. Dieses Thema enthält auch Anweisungen zum Ausführen von Set<column_name-Vorgängen> zum Einfügen von FILESTREAM-Daten.
Hinweis
Wenn Sie Vorgänge für Tabellen ausführen, die Spalten mit benutzerdefinierten Typen enthalten, sollten Sie sich unter Vorgänge für Tabellen und Ansichten mit User-Defined-Typen mithilfe des SQL-Adapters informieren, bevor Sie mit der Entwicklung Ihrer Anwendung beginnen.
Voraussetzungen
Sie müssen die folgenden Aufgaben auf dem Computer ausführen, auf dem SQL Server ausgeführt wird, und auf dem Computer, auf dem der Adapterclient ausgeführt wird.
Auf dem Computer, auf dem SQL Server ausgeführt wird
Sie müssen FILESTREAM auf dem SQL Server instance aktivieren. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkId=122486.
Sie müssen eine FILESTREAM-fähige Datenbank erstellen. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkId=122487.
Sie benötigen eine Tabelle zum Speichern von FILESTREAM-Daten. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkId=122488.
Sie müssen MSDTC auf dem Computer konfigurieren, auf dem die SQL Server-Datenbank gehostet wird. Anweisungen zum Konfigurieren von MSDTC finden Sie unter Konfigurieren von MSDTC auf SQL Server- und Adapterclient.
Auf dem Computer, auf dem der Adapterclient ausgeführt wird
Sie müssen das SQL Client Connectivity SDK installiert haben. Sie können das SQL Client Connectivity SDK installieren, indem Sie das SQL Server 2008-Setup ausführen und sql Client Connectivity SDK auf der Seite Featureauswahl des Assistenten auswählen. Der Adapter verwendet die sqlncli10.dll, die mit dem SQL Client Connectivity SDK installiert ist, um FILESTREAM-Vorgänge auszuführen.
Sie müssen MSDTC auf dem Computer konfigurieren, auf dem der Adapterclient ausgeführt wird. Anweisungen zum Konfigurieren von MSDTC finden Sie unter Konfigurieren von MSDTC auf SQL Server- und Adapterclient.
Nachdem Sie diese Aufgaben abgeschlossen haben, können Sie FILESTREAM-Daten in SQL Server 2008-Datenbanktabellen einfügen oder aktualisieren.
Wie dieses Thema Vorgänge für große Datentypen veranschaulicht
Um zu veranschaulichen, wie Set<column_name-Vorgänge> für Tabellen mit großen Datentypen ausgeführt werden, verwenden Sie eine Tabelle, Datensätze, die die Spalten ID und Dokument enthält. Die Id-Spalte ist vom Typ uniqueidentifier und benötigt eine GUID. Die Spalte Dokument hat den Typ VARBINARY(MAX). Angenommen, die Id-Spalte verfügt bereits über eine GUID ""438B7B4C-5491-409F-BCC1-78817C399EC3
. Um die Dokumentspalte zu aktualisieren, macht der Adapter den SetDocument-Vorgang verfügbar.
Hinweis
Gehen Sie für SQL Server 2008 davon aus, dass die Spalte Document FILESTREAM-Daten speichern kann, um FILESTREAM-Vorgänge zu veranschaulichen.
Ausführen von Vorgängen für eine SQL Server-Datenbank
Das Ausführen eines Vorgangs für eine SQL Server-Datenbank mithilfe des SQL-Adapters mit BizTalk Server umfasst prozedurale Aufgaben, die unter Bausteine beschrieben sind, um BizTalk-Anwendungen mit dem SQL-Adapter zu entwickeln. Zum Ausführen von Vorgängen für Tabellen mit großen Datentypen sind diese Aufgaben:
Erstellen Sie ein BizTalk-Projekt, und generieren Sie ein Schema für den Vorgang Set<column_name> . Generieren Sie für dieses Thema ein Schema für den SetDocument-Vorgang für die Tabelle Records .
Erstellen Sie Nachrichten im BizTalk-Projekt zum Senden und Empfangen von Nachrichten aus der SQL Server-Datenbank.
Erstellen Sie eine Orchestrierung, um den SetDocument-Vorgang für die Tabelle Records aufzurufen.
Erstellen und Bereitstellen des BizTalk-Projekts.
Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.
Starten Sie die BizTalk-Anwendung.
Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.
Beispiel basierend auf diesem Thema
Ein Beispiel, FILESTREAMOperation, 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
Um zu veranschaulichen, wie Werte in Spalten großer Datentypen aktualisiert werden, generieren Sie ein Schema für den SetDocument-Vorgang der Tabelle Records. Sie müssen ein BizTalk-Projekt erstellen und das Add-In Adapterdienst nutzen verwenden, um das Schema zu generieren. Weitere Informationen zum Generieren eines Schemas finden Sie unter Abrufen von Metadaten für SQL Server Vorgänge in Visual Studio mithilfe des SQL-Adapters.
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. Sie müssen nun Nachrichten für die Orchestrierung erstellen und sie mit Schemas verknüpfen, die Sie im vorherigen Schritt generiert haben.
So erstellen Sie Nachrichten und verknüpfen mit dem Schema
Fügen Sie dem BizTalk-Projekt eine Orchestrierung hinzu. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den BizTalk-Projektnamen, 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 dieses nicht bereits geöffnet ist. Klicken Sie hierzu 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.
Führen Sie im Bereich Eigenschaften für die Message_1 die folgenden Schritte aus:
Option Aufgabe Bezeichner Geben Sie Request
einNachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann SetOperation.TableOperation_dbo_Records.SetDocument aus, wobei SetOperation der Name Ihres BizTalk-Projekts ist. TableOperation_dbo_Records ist das Schema, das für den SetDocument-Vorgang in der Tabelle Records generiert wurde. Wiederholen Sie Schritt 2, um eine neue Nachricht zu erstellen. Gehen Sie im Bereich Eigenschaften für die neue Nachricht wie folgt vor:
Option Aufgabe Bezeichner Geben Sie Response
einNachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann SetOperation.TableOperation_dbo_Records.SetDocumentResponse aus.
Einrichten der Orchestrierung
Sie müssen eine BizTalk-Orchestrierung erstellen, um BizTalk Server zum Ausführen eines Vorgangs auf SQL Server zu verwenden. In dieser Orchestrierung löschen Sie eine Anforderungsnachricht an einem definierten Empfangsspeicherort. Der SQL-Adapter nutzt diese Nachricht und übergibt sie an SQL Server. Die Antwort von SQL Server wird an einem anderen Speicherort gespeichert. Sie müssen Send- und Receive-Shapes einschließen, um Nachrichten an SQL Server zu senden bzw. Antworten zu empfangen. Eine Beispielorchestrierung für den SetDocument-Vorgang ä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 |
---|---|---|
ReceiveMessage | Empfangen | – Legen Sie Name auf ReceiveMessage fest. – Legen Sie Activate auf True fest. |
SendMessage | Send | – Name aufSendMessage festlegen |
ReceiveResponse | Empfangen | – Name aufReceiveResponse festlegen – Legen Sie Activate auf False fest. |
SendResponse | Send | – Legen Sie Name auf SendResponse fest. |
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, wie in der Orchestrierung angezeigt.
Port | Eigenschaften |
---|---|
MessageIn | – Bezeichner auf MessageIn festlegen – Legen Sie Type auf MessageInType fest. – Festlegen des Kommunikationsmusters auf Unidirektionale – Festlegen der Kommunikationsrichtung auf "Empfangen" |
LOBPort | – Bezeichner auf LOBPort festlegen – Legen Sie Type auf LOBPortType fest. – Festlegen des Kommunikationsmusters auf Request-Response – Festlegen der Kommunikationsrichtung auf Senden/Empfangen |
ResponseOut | – Bezeichner auf ResponseOut festlegen – Legen Sie Type auf ResponseOutType fest. – Festlegen des Kommunikationsmusters auf Unidirektionale – Kommunikationsrichtung auf Senden festlegen |
Geben Sie Nachrichten für Aktions-Shapes an, und verbinden Sie sie mit Ports.
In der folgenden Tabelle sind die Eigenschaften und deren Werte angegeben, die Sie festlegen sollten, um Meldungen 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 Meldungs-Shapes, die in der zuvor erwähnten Orchestrierung angezeigt werden.
Form | Eigenschaften |
---|---|
ReceiveMessage | – Nachricht aufAnforderung festlegen – Festlegen von Operation auf MessageIn.FileStream.Request |
SendMessage | – Nachricht aufAnforderung festlegen – Legen Sie Operation auf LOBPort.FileStream.Request fest. |
ReceiveResponse | – Nachricht aufAntwort festlegen – Legen Sie Operation auf LOBPort.FileStream.Response fest. |
SendResponse | – Nachricht aufAntwort festlegen – Festlegen von Operation auf ResponseOut.FileStream.Request |
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 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 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 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 Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem Sie eine Anforderungsnachricht ablegen. Die BizTalk-Orchestrierung nutzt die Anforderungsnachricht und sendet sie an die SQL Server-Datenbank.
Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Antwortnachricht mit der Antwort aus der SQL Server-Datenbank abgibt.
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. Informationen zum Erstellen von Ports finden Sie unter Manuelles Konfigurieren einer physischen Portbindung an den SQL-Adapter.
Wichtig
Der Vorgang zum Eingeben von FILESTREAM-Daten muss innerhalb einer Transaktion ausgeführt werden. Stellen Sie daher sicher, dass die UseAmbientTransaction-Bindungseigenschaft für den WCF-Custom- oder WCF-SQL-Sendeport auf True festgelegt ist. Weitere Informationen zur Bindungseigenschaft finden Sie unter Informationen zum BizTalk-Adapter für SQL Server Eigenschaften der Adapterbindung.
Wichtig
Zum Ausführen eines Vorgangs zum Einfügen von FILESTREAM-Daten müssen Sie immer die Windows-Authentifizierung verwenden, um eine Verbindung mit SQL Server am WCF-Custom- oder WCF-SQL-Sendeport herzustellen. Wählen Sie daher im Dialogfeld Porteigenschaften auf der Registerkarte Anmeldeinformationen die Option Einmaliges Anmelden nicht verwenden aus, und lassen Sie den Benutzernamen und das Kennwort leer.
Hinweis
Beim Generieren des Schemas mithilfe des BizTalk-Projekt-Add-Ins "Consume Adapter Service" wird auch eine Bindungsdatei erstellt, die Informationen zu den Ports und den Aktionen enthält, die für diese Ports festgelegt werden sollen. Sie können diese Bindungsdatei aus der BizTalk Server-Verwaltungskonsole importieren, um Sendeports (für ausgehende Anrufe) oder Empfangsports (für eingehende Anrufe) zu erstellen. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für die Verwendung des SQL-Adapters.
Starten der Anwendung
Sie müssen die BizTalk-Anwendung starten, um den SetDocument-Vorgang für die Tabelle Datensätze auszuführen. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter Starten einer Orchestrierung.
Stellen Sie in dieser Phase Folgendes sicher:
Der FILE-Empfangsport zum Empfangen von Anforderungsmeldungen für die Orchestrierung wird ausgeführt.
Der FILE-Sendeport zum Empfangen der Antwortnachrichten von der Orchestrierung wird ausgeführt.
Der WCF-Custom oder WCF-SQL-Sendeport zum Senden von Nachrichten an die SQL Server Datenbank ausgeführt wird.
Die BizTalk-Orchestrierung für den Vorgang wird ausgeführt.
Ausführen des Vorgangs
Nachdem Sie die Anwendung ausgeführt haben, müssen Sie eine Anforderungsnachricht am File-Empfangsspeicherort ablegen. Das Schema für die Anforderungsnachricht muss dem Schema für den SetDocument-Vorgang entsprechen, den Sie zuvor generiert haben. Die Anforderungsmeldung zum Aktualisieren der Spalte Document lautet beispielsweise:
<SetDocument xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records">
<Filter>WHERE Id='438B7B4C-5491-409F-BCC1-78817C399EC3'</Filter>
<Data>UwBlAHQAdgBfAHYAYQByAGIAaQBuAGEAcgB5AE0AQQBYAA==</Data>
</SetDocument>
Wichtig
Das Filter
-Element muss die WHERE-Klausel enthalten, basierend auf der der Adapter die Datensätze aktualisiert. Das Data
Element muss einen base64-codierten Wert enthalten, den Sie in die Spalte Document einfügen möchten.
Diese Anforderungsmeldung aktualisiert die Spalte Document mit dem angegebenen Wert. Die Orchestrierung nutzt die Nachricht und sendet sie an die SQL Server-Datenbank. Die Antwort aus der SQL Server-Datenbank wird am anderen FILE-Speicherort gespeichert, der als Teil der Orchestrierung definiert ist. Die Antwort der SQL Server-Datenbank für die vorherige Anforderungsnachricht lautet beispielsweise:
<?xml version="1.0" encoding="utf-8" ?>
<SetDocumentResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records" />
Der Adapter sendet eine leere Antwort für den Vorgang Set<column_name> .
Bewährte Methoden
Nachdem Sie das BizTalk-Projekt bereitgestellt und konfiguriert haben, können Sie Konfigurationseinstellungen in eine XML-Datei namens bindungsdatei exportieren. Nachdem Sie eine Bindungsdatei generiert haben, können Sie die Konfigurationseinstellungen aus der Datei importieren, sodass Sie keine Elemente wie die Sende- und Empfangsports für dieselbe Orchestrierung erstellen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von Adapterbindungen.
Weitere Informationen
Entwickeln von BizTalk-Anwendungen mithilfe des SQL-Adapters