Database-tracking om wijzigingen vast te leggen die zijn aangebracht door een datamappingsproject

Databasebeheerders en andere professionals die met data werken, willen vaak een overzicht bijhouden van wijzigingen in kritieke databases, vooral wanneer updates worden uitgevoerd door geautomatiseerde scripts of andere processen. Database-tracing stelt beheerders in staat om kritieke wijzigingen of afwijkingen te volgen en te helpen bij het herstellen van fouten. Altova MapForce ondersteunt database-tracing voor alle gangbare relationele databases om de wijzigingen die een datamappingsproject aanbrengt in de database vast te leggen, wanneer de mapping wordt uitgevoerd.

Wanneer het traceren is ingeschakeld, worden gebeurtenissen zoals database-invoegingen of -wijzigingen, of fouten, vastgelegd in een XML-bestand. Dit bestand kan u later analyseren of op een geautomatiseerde manier verder verwerken.

Het volgen van databaseactiviteit kan worden ingeschakeld op het niveau van de databasecomponent, de tabel, de opgeslagen procedure of het databaseveld. U kunt ervoor kiezen om alle berichten te volgen, of alleen fouten, of u kunt het volgen volledig uitschakelen.

Naast het opsporen van fouten die optreden tijdens het uitvoeren van een mapping naar een doeldatabase, maakt MapForce ook database transactiebeheer mogelijk. Hierdoor kan, bij een fout, het betreffende deel van de databasegegevens worden teruggedraaid, waarna eventueel verder kan worden gegaan met de rest van de mapping.

Het inschakelen van transactieverwerking voor databases zorgt ervoor dat alle wijzigingen die door het databasecomponent worden aangebracht, worden omgeven door een transactie. In geval van een fout wordt deze transactie teruggedraaid. U kunt ervoor kiezen om door te gaan met de rest van de mapping of om de verdere uitvoering van de mapping te stoppen. U kunt transacties inschakelen op het niveau van het databasecomponent en op het niveau van de tabelactie.

Laten we eens kijken naar een voorbeeld van het traceren van een database.

De map "MapForce Voorbeelden" bevat een mapping met de naam "Altova_Hierarchisch_DB" die hiërarchische gegevens uit een XML-document omzet in tabellen in een database.

Door met de rechtermuisknop op de blauwe balk bovenaan de database te klikken, opent u het dialoogvenster met de eigenschappen. Hierin vindt u een optie om het traceren in te schakelen en kunt u het bestand voor het traceringslogboek specificeren. U kunt het traceren uitschakelen, alleen inschakelen voor fouten, of inschakelen voor alle acties. Hier kunt u ook de naam en het pad van het bestand voor het database-traceringslogboek opgeven.

Wanneer de mapping wordt uitgevoerd door op de knop "Output" onder het mapping-venster te klikken, worden er twee bestanden gegenereerd.

Hieronder, direct onderaan, ziet u een voorbeeld van het SQL-script. De database wordt pas gewijzigd nadat de optie "SQL-script uitvoeren" is geselecteerd in het menu "Output". Het tweede bestand is een voorbeeld van het XML-tracebestand.

Het logbestand met de trace-informatie wordt later bijgewerkt, op basis van de daadwerkelijke uitvoering van het script, zoals beschreven in de regels 2-3 hierboven.

Aanpassen van database-tracking

Soms wilt u slechts een paar specifieke bewerkingen volgen. MapForce stelt u in staat om het volgen van bewerkingen aan te passen op tabel-, veld- of opgeslagen procedureniveau. In de hier getoonde mapping willen we mogelijk alle fouten volgen, en tevens een overzicht genereren van alle voor- en achternamen die aan de tabel "Person" zijn toegevoegd.

We kunnen dit bereiken door de traceerinstellingen voor de database op het hoogste niveau in te stellen op "Fouten". Vervolgens kunnen we de traceerinstellingen voor de tabel "Personen" instellen op "Altijd" en de velden selecteren die we willen verbergen of weergeven

Wanneer we het SQL-script uitvoeren, toont het voorbeeldscherm het resultaat van elke SQL-opdracht. In de onderstaande screenshots hebben we één naam gemarkeerd om de aandacht erop te vestigen.

Het traceerlogbestand bevat een lijst van alle namen die aan de tabel "Personen" zijn toegevoegd:

Elke output-tracking die aan een database-mapping is toegevoegd, wordt ook uitgevoerd wanneer de mapping wordt uitgevoerd in een geautomatiseerde modus door MapForce Server of onder controle van FlowForce Server. Een FlowForce Server-taak kan zelfs het verwerken van het output-logbestand in XML automatiseren om een aangepast rapport te genereren.

Om het resultaat van ons voorbeeld verder te bevestigen, kunnen we de database openen met behulp van DatabaseSpy, een uniek programma Een tool voor het uitvoeren van queries, het ontwerpen van databases en het vergelijken van databases, en bekijk de inhoud van de tabel direct:

In een toekomstige publicatie zullen we dieper ingaan op het verwerken van database-transacties, zodat we een deel van de databasegegevens kunnen terugdraaien wanneer er een fout optreedt. In de tussentijd kunt u zelf database-tracing uitproberen, ofwel door dit voorbeeld te volgen, ofwel door te werken met datamappingen voor uw eigen databases. Download een gratis proefversie van MapForce.