Datenbank-Komponenteneinstellungen
Nachdem Sie eine Datenbankkomponente zum Mapping-Bereich hinzugefügt haben, können Sie über das Dialogfeld Komponenteneinstellungen (Abbildung unten) verschiedene Datenbankeinstellungen konfigurieren. Sie können das Dialogfeld Komponenteneinstellungen auf eine der folgenden Arten öffnen:
•Doppelklicken Sie auf den Komponententitel.
•Klicken Sie mit der rechten Maustaste auf die Komponente und wählen Sie den Befehl Eigenschaften.
•Wählen Sie die Komponente im Mapping aus. Klicken Sie anschließend auf das Menü Komponente und wählen Sie im Kontextmenü den Befehl Eigenschaften.
Es stehen die folgenden Einstellungen zur Verfügung.
Datenbank
In dieser Gruppe werden die Datenbankverbindungsinformationen angezeigt. Klicken Sie auf Ändern, um eine andere Datenbank auszuwählen oder die Datenbankobjekte in der bestehenden Datenbankkomponente neu zu definieren. Verbindungen zu Tabellen mit demselben Namen werden beibehalten. Sie können die Tabellen in der Komponente auch durch Rechtsklick auf eine Datenbankkomponente und Auswahl von Datenbankobjekte hinzufügen/entfernen/bearbeiten ändern.
Gibt den absoluten oder relativen Pfad der aktuellen Datenquelle an.
|
Gibt den Namen der Verbindung an. Dieser Name wird von MapForce automatisch generiert. Normalerweise ist er mit dem der Datenquelle identisch, kann aber auch ein so genannter "Aliasname" sein, wenn Sie die Verbindung über globale Altova-Ressourcen herstellen. Wenn im Mapping mehrere Datenbankkomponenten mit derselben Verbindung vorhanden sind, erhält der Name der Verbindung die Form <verbindung1>, <verbindung2>, usw.
|
Definiert den Datenbanktyp (z.B. SQLite).
|
Zeigt den aktuellen Datenbank Connection String an. Dieses schreibgeschützte Feld wird anhand der Informationen generiert, die Sie beim Erstellen oder Ändern der Datenbankverbindung angeben.
|
Login-Einstellungen
Die Login-Einstellungen werden für alle Codegenerierungsziele und den Built-in-Ausführungsprozessor verwendet.
Hier können Sie den Benutzernamen, für die Herstellung der Datenbankverbindung ändern. Obligatorisch, wenn für die Verbindung mit der Datenbank ein Benutzername erforderlich ist.
|
Hier können Sie das Passwort für die Herstellung der Datenbankverbindung ändern. Obligatorisch, wenn für die Verbindung mit der Datenbank ein Passwort erforderlich ist.
|
JDBC-spezifische Einstellungen
Die JDBC-spezifischen Einstellungen sind relevant, wenn das Mapping eine JDBC-Verbindung enthält und von generiertem Java-Code oder MapForce Server ausgeführt wird.
Anmerkung: | ADO-, ADO.NET- und ODBC-Verbindungen werden in JDBC konvertiert (und es werden die unten stehenden JDBC-Einstellungen angewendet), wenn das Mapping auf einem Linux- oder macOS-Rechner ausgeführt wird. Nähere Informationen dazu finden Sie unter Datenbankmappings in verschiedenen Ausführungsumgebungen. |
Zeigt den derzeit aktiven Treiber für die Datenbankkomponente an. Beim Definieren der Datenbankkomponente wird automatisch der Standardtreiber übernommen. Sie können den hier definierten Treiber Ihren Bedürfnissen entsprechend ändern. Achten Sie darauf, dass die Syntax des Eintrags im Feld Datenbank-URL mit dem von Ihnen gewählten Treiber konform ist.
|
URL der aktuell ausgewählten Datenbank. Stellen Sie sicher, dass dieser Eintrag mit der JDBC-Treibersyntax des jeweils im Feld JDBC-Treiber definierten Treibers konform ist.
|
ADO/OLEDB-spezifische Einstellungen
Die ADO/OLEDB-Einstellungen sind relevant, wenn das Mapping eine ADO-Verbindung enthält und vom generierten C#-Code, C++-Code oder MapForce Server (unter Windows) ausgeführt wird. Nähere Informationen dazu finden Sie unter Datenbankmappings in verschiedenen Ausführungsumgebungen. Die Einstellungen Datenquelle und Katalog werden nicht vom Built-in-Ausführungsprozessor verwendet.
Zeigt den Namen der ADO-Datenquelle an.
|
Zeigt den Namen des ADO-Katalogs an.
|
Zeigt den gerade aktiven Provider der Datenbankkomponente an.
|
Zeigt zusätzliche Datenbankoptionen an.
|
Generierungseinstellungen
Die Generierungseinstellungen gelten für alle Codegenerierungsziele sowie für den Built-In-Ausführungsprozessor. Mit der Option Schemanamen aus Tabellennamen entfernen können Sie Datenbankschemanamen aus dem generierten Code entfernen und nur die Tabellennamen beibehalten. Beachten Sie, dass diese Option nur bei SQL SELECT-Anweisungen, die von MapForce generiert wurden, funktioniert. Benutzerdefinierte SQL-Anweisungen werden nicht geändert.
Die Option Generierungseinstellungen wird nur aus Gründen der Rückwärtskompatibilität unterstützt und nicht empfohlen. Um Datenbankobjektnamen relativ zum Standardschema zu machen, verwenden Sie die unter Objektnamen relativ zum Standardschema verwenden beschriebene Methode.
Timeout für die Ausführung der Anweisung
Bei Verwendung einer Datenbank als Zielkomponente kann es je nach Server-Verfügbarkeit, Datenverkehr, längerer Ausführung usw. zu Zeitüberschreitungen kommen.
Definiert, wie viele Sekunden der Ausführungsprozessor auf eine Antwort von der Datenbank warten soll, bevor er die Ausführung der Datenbankanweisung abbricht. Der Standard-Timeout-Wert ist 60 Sekunden.
|
Wenn diese Option aktiviert ist, gibt es kein Timeout für den Ausführungsprozessor.
|
Anmerkung: | Bei SQLite-Datenbanken kann kein Timeout für die Ausführung von Anweisungen definiert werden. |
Datenbanktransaktionsbehandlung
Bei der Ausführung eines Mappings, das eine Datenbankkomponente hat, können im Zusammenhang mit der Datenbank verschiedene Fehler auftreten (z.B. doppelte Indexschlüssel, NULL-Werte, die in Nicht-NULL-Spalten eingefügt wurden, usw.) Um bei Ihren Datenbankdaten im Fall eines Fehlers ein Rollback durchführen zu können, müssen Sie die Datenbanktransaktionsbehandlung aktivieren. Ein Transaktions-Rollback kann auf Ebene der Datenbankkomponente (aktuelle Einstellung), auf Ebene von Tabellenaktionen und auf der Ebene von gespeicherten Prozeduren durchgeführt werden. Nähere Informationen zu einigen möglichen Transaktionsbehandlungsszenarien finden Sie unter Transaktions-Rollback: Szenarien.
Einige Mappings können mehrere Datenbankkomponenten enthalten, die dieselben oder andere Datenbankverbindungen aufweisen. Das Resultat eines solchen Mappings hängt im Fall eines Fehlers im Zusammenhang mit einer Datenbank vom Ausführungsprozessor ab:
•Wenn das Mapping mit MapForce ausgeführt wird, kann während der Ausführung des Mappings nur eine Zielkomponente ausgeführt werden. Dies ist die Komponente, für die die Schaltfläche aktiv ist. Wenn in dieser Komponente ein Datenbankfehler auftritt und das Kontrollkästchen Transaktionen verwenden aktiviert ist, werden alle durch die Komponente durchgeführten Änderungen mit einem Rollback rückgängig gemacht.
•Wenn das Mapping mit MapForce Server oder einem MapForce-generierten Programm ausgeführt wird, werden alle Zielkomponenten der Reihe nach ausgeführt. Wenn in diesem Fall ein Datenbankfehler auftritt, wird das Rollback für die Datenbankkomponente, in der der Fehler aufgetreten ist, durchgeführt. Je nachdem, welcher Wert in der Dropdown-Liste Bei Auftreten eines Fehlers (siehe unten) ausgewählt ist, wird das Mapping abgebrochen oder mit der nächsten Zielkomponente fortgesetzt.
Aktiviert die Transaktionsverarbeitung für eine Datenbankzielkomponente. Bei Auswahl dieser Option wird die Transaktionsverarbeitung für alle Tabellen der Datenbankkomponente aktiviert. Wenn Sie die Transaktionsbehandlung auf Ebene der Datenbankkomponente aktivieren, werden alle Datenbankänderungen in eine einzige Transaktion eingeschlossen, die im Fall eines Fehlers im Zusammenhang mit einer Datenbank mit Rollback rückgängig gemacht wird.
|
Wenn Sie das Kontrollkästchen Transaktionen verwenden aktiviert haben, können Sie festlegen, was geschehen soll, wenn ein Fehler bei einer Datenbank auftritt:
•Rollback für oberste Transaktion und beenden: Die Transaktion, die alle Datenbankänderungen einschließt, wird mit Rollback rückgängig gemacht und die Ausführung des Mappings wird abgebrochen. •Rollback für oberste Transaktion und fortfahren: Wie oben, doch wird die Ausführung des Mappings nach dem Rollback fortgesetzt (z.B., um eine zweite Zielkomponente zu verarbeiten).
Auf Ebene der Datenbankkomponente legen Sie fest, ob die Verarbeitung für andere Zielkomponenten fortgesetzt werden soll. Angenommen, in einem XML-DB-JSON-Mapping ist in der Datenbankkomponente ein Fehler aufgetreten. In diesem Fall kann die JSON-Datei weiterhin verarbeitet und abgerufen werden, wenn Sie die Option Rollback für oberste Transaktion und fortfahren aktiviert haben.
|
Ablaufverfolgungen
Wenn bei einem Mapping Daten in eine Datenbank geschrieben werden, haben Sie die Möglichkeit, die Datenbankablaufverfolgung und Fehlerprotokollierung zu aktivieren. Die Ablaufverfolgung ist nützlich, wenn Sie aufzeichnen möchten, welche Änderungen während der Ausführung des Mappings an der Datenbank vorgenommen wurden. Die an der Datenbank vorgenommenen Änderungen werden in einem Ablaufverfolgungsbericht protokolliert. Etwaige während der Ausführung aufgetretene Fehler werden ebenfalls protokolliert. Die Ablaufverfolgung ist nur mit der Built-In-Transformationssprache kompatibel.
Die Ablaufverfolgung kann auf verschiedenen Ebenen aktiviert werden:
•Auf Ebene der Datenbankkomponente: Eine Ablaufverfolgung auf dieser Ebene eignet sich für Mappings mit mehreren Zielkomponenten, bei denen die Ablaufverfolgung nur für einige davon benötigt wird. Wenn Sie die Ablaufverfolgung auf Ebene der Datenbankkomponente aktivieren, wird sie automatisch für alle Tabellen oder gespeicherten Prozeduren in dieser Komponente aktiviert. Damit der Ablauf verfolgt werden kann, müssen die entsprechenden Tabellen und gespeicherten Prozeduren mit Quell-Nodes verbunden sein.
•Auf Ebene von Tabellen oder gespeicherten Prozeduren: Sie können festlegen, ob die Ablaufverfolgung für eine bestimmte Tabelle oder gespeicherte Prozedur aktiviert werden soll. Auf Tabellenebene enthält die Ablaufverfolgung Ereignisse im Zusammenhang mit Tabellenaktionen (z.B. Alles einfügen). Im Fall von gespeicherten Prozeduren werden Ereignisse im Zusammenhang mit dem Aufruf der gespeicherten Prozedur aufgezeichnet.
•Auf Ebene von Datenbankfeldern: Standardmäßig ist die Ablaufverfolgung für alle Felder aktiviert, Sie können jedoch bestimmte Felder von der Ablaufverfolgung ausnehmen oder Sie können festlegen, dass bestimmte Felder nur im Fall eines Fehlers in die Ablaufverfolgung inkludiert werden.
Beachten Sie, dass die drei obengenannten Ebenen hierarchisch sind. Um daher die Ablaufverfolgung auf einer niedrigeren Ebene zu definieren, müssen Sie die Ablaufverfolgung zuerst auf der übergeordneten Ebene aktivieren. Wenn Sie z.B. eine Ablaufverfolgung auf Tabellenebene definieren möchten, müssen Sie zuerst die Ablaufverfolgung auf Ebene der Datenbankkomponente aktivieren. Dasselbe gilt, wenn Sie die Ebene der Ablaufverfolgung einschränken. Wenn Sie die Ablaufverfolgung z.B. auf Ebene der Datenbankkomponente auf Fehler eingeschränkt haben, können Sie keine uneingeschränkte Ablaufverfolgung auf Ebene von Tabellen oder gespeicherten Prozeduren durchführen.
Sie können in MapForce die folgenden Ablaufverfolgungsoptionen definieren:
Wenn die Ablaufverfolgung aktiviert ist, werden die vom Mapping an der Datenbank ausgeführten Aktionen in einer Ablaufverfolgungsdatei protokolliert. Sie können festlegen, ob alle Aktionen oder nur Fehler protokolliert werden sollen oder ob die Ablaufverfolgung gänzlich deaktiviert werden soll.
|
Definiert die Datei, in die die Datenbankablaufverfolgungsinformationen während der Ausführung des Mappings geschrieben werden sollen. Dieser Pfad kann absolut oder relativ sein und ist davon abhängig, ob das Kontrollkästchen Alle Dateipfade relativ zur MFD-Datei speichern aktiviert ist. Die Ablaufverfolgungsdatei ist im XML-Format. Wenn Sie die Log-Datei in einem anderen Format als XML haben möchten, können Sie Daten daraus auf eine andere Komponente ( (z.B. eine Textdatei oder eine andere Datenbank) mappen.
Struktur einer AblaufverfolgungsdateiWenn die Ablaufverfolgung für eine Datenbankkomponente aktiviert wurde, wird in der unteren Hälfte der Komponente eine Ablaufverfolgungsstruktur angezeigt (Abbildung unten). In der Abbildung oben sehen Sie, dass der oberste Node in der Ablaufverfolgungsstruktur der Name der Ablaufverfolgungsdatei ist (Log.xml). Der Rest der Ablaufverfolgungsstruktur wird anhand der Struktur der Datenbanktabellen oder gespeicherten Prozeduren, die Teil des Mappings bilden, modelliert. In diesem Beispiel hat das oberste Element denselben Namen wie die Datenbank. Das BookCatalog01-Element hat zwei Child-Elemente: Authors und trace:summary. Das Element Authors spiegelt die Struktur der Tabelle, die zur Datenbankkomponente hinzugefügt wird, wieder. Das Element trace:summary enthält ein Attribut namens errors, das die Anzahl der gefundenen Fehler enthält.
Das Element Authors enthält zwei Child-Elemente: trace:values und trace:actions. In der trace:values-Struktur werden alle Spalten der Datenbanktabelle angezeigt. Standardmäßig wird die Ablaufverfolgung für alle Spalten aufgezeichnet, doch können Sie dies ändern, indem Sie die Ablaufverfolgung auf Ebene der Datenbankdatei konfigurieren (siehe oben). Bei gespeicherten Prozeduren werden in dieser Struktur die Parameter der gespeicherten Prozedur angezeigt.
Das Element trace:actions enthält Informationen darüber, welche Aktionen für die jeweilige Datenbanktabelle definiert sind. In unserem Beispiel wurden für die Tabelle Authors zwei Aktionen konfiguriert: Ignorieren, wenn... und Rest einfügen. Jede in die Ablaufverfolgung inkludierte Aktion hat ein rows-affected-Attribut, das angibt, wie viele Zeilen von der entsprechenden Datenbankaktion betroffen sind. Das trace:error-Element wird nur befüllt, wenn ein Fehler auftritt. Dieses Element hat zwei Attribute: code und state. Der Fehlertext und die Attributwerte werden vom Datenbanktreiber bereitgestellt und unterscheiden sich daher von Datenbank zu Datenbank.
Ablaufverfolgungsdatei im AusgabefensterKlicken Sie auf das Ausgabefenster, um eine Vorschau auf die Ablaufverfolgungsdatei zu sehen. Beachten Sie, dass der im Ausgabefenster angezeigte Ablaufverfolgungsbericht nur zu Informationszwecken dient und nicht die tatsächlichen Ausführungsergebnisse anzeigt. Um einen echten Ablaufverfolgungsbericht zu erzeugen, führen Sie das SQL Script im Ausgabefenster aus. Unten sehen Sie ein Beispiel für eine Ablaufverfolgungsdatei:
<BookCatalog01> <Authors> <trace:values> <Author>Neil Gaiman</Author> <Website>www.neilgaiman.com</Website> </trace:values> <trace:actions> <trace:ignore/> </trace:actions> </Authors> <Authors>...</Authors> <Authors>...</Authors> <trace:summary errors="0"/> </BookCatalog01>
Nähere Informationen zur Ablaufverfolgung finden Sie unter Transaktions-Rollback: Szenarien im Szenario 1.
|
Alle Dateipfade relativ zur MFD-Datei speichern
Wenn diese Option aktiviert ist, speichert MapForce die im Dialogfeld Komponenteneinstellungen angezeigten Dateipfade relativ zum Ordner, in dem sich die MapForce Design (.mfd)-Datei befindet. Verwenden Sie relative Pfade, wenn Sie vorhaben, das Mapping mit MapForce Server auf einem anderen Betriebssystem auszuführen. Siehe auch Relative und absolute Pfade.
Zur Laufzeit gemeinsame Datenbankverbindung verwenden
Mit Hilfe dieser Option können Sie festlegen, ob für mehrere Datenbankverbindungen, für die im selben Mapping dieselbe Datenquelle und dieselben Funktionalitäten verwendet werden, dieselbe Datenbankverbindung verwendet werden soll. Standardmäßig ist diese Option deaktiviert, da sich dadurch das Verhalten des Mappings ändern kann, vor allem, wenn dieselbe Verbindung von einer oder mehreren Quellkomponenten und einer Zielkomponente verwendet wird.
Durch die Verwendung einer gemeinsamen Datenbankverbindung werden einige Probleme vermieden, z.B. die Sperre von Tabellen/Zeilen, eine Transaktionsisolation und Probleme mit der Anzahl der Server-Verbindungen (siehe unten).
•Wenn eine Zeile aus einer Tabelle ausgelesen wird und Sie versuchen, dieselbe Zeile zu aktualisieren, kann es (je nach Anbieter) vorkommen, dass ein Fehler aufgrund einer gesperrten Tabelle/Zeile ausgegeben wird. Bei einer gemeinsamen Datenbankverbindung tritt dieser Fehler nicht auf.
•Wenn die gemeinsame Verwendung einer Datenbankverbindung aktiviert ist, können bereits geänderte in eine Transaktion verpackte Zeilen gelesen werden. Bei separaten Verbindungen sind nur Änderungen, die bereits in die Datenbank übernommen wurden, sichtbar.
•Außerdem wird bei Verwendung einer gemeinsamen Verbindung die Anzahl der Datenbank-Logins reduziert, wodurch sich die Gesamtverarbeitungszeit bei Mappings mit vielen Datenbankkomponenten, für die dieselbe Datenquelle verwendet wird, verringert. Der Datenbank-Anmeldevorgang kann vor allem bei Cloud Server-Instanzen in einem langsamen Netzwerk oder wenn der Datenbank-Server ausgelastet ist, langsam sein.