Title: Replikatie - Dummy Transakties ter voorkoming 'herbezoek nodig' Post by: Heart Informatisering B.V. on October 01, 2019, 03:01:31 pm Indien de module Profit-Transact is geïmplementeerd, zal iedere mutatie in een Tabel (die Transaktioneel gemaakt is) leiden tot een zgn. Transaktie. Een Replikatie Processor, een werkstation welke zich dedicated bezig houdt met het repliceren van deze Transakties naar een SQL Server, bezoekt het gemuteerde record opnieuw, bepaalt wat er gewijzigd is t.o.v. de vorige keer, en synchroniseert deze wijzigingen met de SQL Server Database.
Als deze Replikatie PC wil detecteren wat er gewijzigd is, zal het gewijzigde record nogmaals bezocht moeten worden, om vervolgens de huidige stand te vergelijken met de stand t.t.v. de vorige situatie. Het kan echter voorkomen dat het record nog steeds in gebruik is, waardoor de Replikatie PC niet veel anders kan doen dan wachten tot het record weer beschikbaar komt. Doorgaan met het volgende record mag niet, immers, dat zou resulteren in een inconsistentie database; we zouden bijv. wel onze Verkooporderregels terugvinden in een SQL Server Database, terwijl de Verkooporderheader (die eerder aangemaakt is) nog niet gerepliceerd is omdat we haar hadden overgeslagen. Dat mag dus niet. Er zijn een aantal processen waarbij een Gebruiker langere tijd zo'n record in gebruik kan houden. Een voorbeeld daarvan is Hoofdmenu3-1-1 Toevoegen Verkooporder (LOVOTV). Aldaar kunnen we een Verkooporder toevoegen, omdaarna meerdere Verkooporderregels op te kunnen nemen. Gedurende het toevoegen van deze regels zal de orderheader gelockt blijven. Dit zorgt er dan voor dat de Replikatie-PC stopt met het repliceren, tot de Gebruiker klaar is met deze order. Als dat 15 minuten duurt, loopt de Replikatie dus feitelijk al meteen 15 minuten achter... Dat een Replikatie een achterstand oploopt is vervelend als de data wordt gerepliceerd naar een SQL Database die gebruikt wordt om allerlei SQL Query's en Rapportages op los te laten, immers, die zijn dan niet 'aktueel'. Het probleem is op zich vanuit Profit oplosbaar, door het werkstation welke de mutatie doet, direkt te laten bepalen wát hij precies gewijzigd heeft; op die manier hoeft de Replikatie PC het record niet meer opnieuw te bezoeken om te kijken wat er gewijzigd is, dat is dan al bepaald. Strikt genomen zouden we dat bij iedere mutatie op die manier kunnen afhandelen, maar, dat doen we vooralsnog niet. Conform de oorspronkelijke opzet was het juist de bedoeling om die wijzigingen zoveel mogelijk door die Replikatie PC te laten uitvoeren, opdat de snelheid waarmee de Gebruiker zijn orders kan invoeren zo min mogelijk wordt beïnvloed door het moeten bepalen wat er gewijzigd is. Voor een aantal 'storende' situaties kunnen we dit probleem alsnog 'handmatig' in de coding ondervangen. Met deze Releasenote is dat voor de volgende situaties ondervangen: * Toevoegen Verkooporder (Hmenu-3-1-1). * Toevoegen-/Wijzigen-/Verwijderen Verkooporderregels * Inlezen Verkooporderregels vanuit een Excelsheet (Hmenu-9-8-6).
|