Heart-Profit ERP
September 29, 2024, 11:34:05 pm *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: ADS - Duizenden gelijktijdige recordlocks  (Read 1022 times)
0 Members and 2 Guests are viewing this topic.
Heart Informatisering B.V.
Partner
******
Offline Offline

Posts: 27468


View Profile WWW
« on: August 10, 2016, 02:16:21 pm »

"Doorboeken Batchboekingen" is zo goed als het enige proces in Profit waarbij we gebruik maken van Multi-Recordlocking. Dit, om te voorkomen dat een Batchboeking door twee gebruikers tegelijkertijd wordt doorgeboekt. Een Batchboeking kan daarbij uit meerdere regels bestaan.

Om te voorkomen dat we teveel gelijktijdige recordlocks krijgen, wordt enkel het 1e Batchboekingsrecord van een Journaalpost gelockt gehouden, hetgeen voor een ander werkstation voldoende informatie moet zijn om deze Batchboeking over te slaan mocht ze deze raken.

Recentelijk is gekonstateerd dat het aantal Recordlocks op de ADS Server ook door andere processen (zoals een Faktuurgeneratie) explosief kan groeien; meer dan 200.000 Recordlocks terwijl er maximaal 250 tabellen geraakt zijn.



Voor Advantage Database Server geldt dat er altijd met Multi-Recordlocking wordt gewerkt. Dit is niet iets wat je aan- of uit zet, het staat gewoon altijd aan. Wil je geen meerdere gelijktijdige locks op een tabel, dan zul je ervoor moeten zorgen dat eerder aangebrachte locks worden vrijgegeven bij het aanbrengen van een nieuwe lock. Op zich is dit binnen Profit ondervangen, doch ging dit alleen op voor records die expliciet vanuit Profit werden gelockt; daarnaast zijn er ook nog talloze locks die 'on-the-fly' worden uitgevoerd voor het geval de koding dat niet expliciet doet. Denk hierbij bijvoorbeeld aan REPLACE of DELETE opdrachten.

Natuurlijk werden dit soort records wel vrijgegeven bij UNLOCK ALL, maar dit soort records werden niet als "gelockt" herkend bij het locken van een ander record. Dat gekombineerd met dat standaard Multi-Recordlocking aan staat in ADS, leidde dat tot het (onnodig) gelockt houden van het record.

Overigens geldt dit hoge aantal recordlocks niet voor iedere ADS implementatie; het wordt immers getriggerd door 'on-the-fly' recordlocks, en die zijn alleen in funkties aan de orde die zelf niet expliciet het record locken. Daarmee hangt het dus van de gebruikte Funkties af (die niet expliciet locken) of dit verschijnsel optreedt of niet.

FunktieOmschrijvingDtm.Vl.WyzDtm.L.Wyz
SYSS        Omschrijving (nog) niet bekend    29-07-2016    10-08-2016
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2005, Lewis Media Valid XHTML 1.0! Valid CSS!
Page created in 0.047 seconds with 19 queries.