[ALG]Transacties, rollback en locking

Pagina: 1
Acties:
  • 150 views sinds 30-01-2008
  • Reageer

  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 18-05 12:03
Transacties zijn een mooie manier om alles terug te draaien als er iets mis gaatmet inlezen van bestanden.

Mijn idee is om het inlezen van een excel bestand via een transactie te doen. Op zich een goed idee. Alleen bedacht ik me later als er tussendoor verder ingevoerd wordt door gerbuikers en er moet later een rollback worden uitgevoerd. Worden mutaties betrekking hebbende op die records dan ook teruggedraaid?

Lijkt me eigenlijk wel, maar hoe worden transacties dan normaal gebruikt? is het de bedoeling dat er niemand in het systeem mag zitten of moet worden buitengesloten als deze spreadsheets worden verwerkt cq ingelezen.
Het moet echt alles of niets zijn, het mag niet de ene regel wel en de andere niet.

Maar volgens mij sluit het een het ander uit.

[ Voor 4% gewijzigd door ErikRo op 07-11-2004 20:33 ]

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • simon
  • Registratie: Maart 2002
  • Laatst online: 15:50
Je hebt het hier over excel files hé, maar als je over dergelijke dingen praat lijkt het me verstandiger om een meer solide systeem (MSSQL, Oracle enz) over te stappen :)

|>


  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 18-05 12:03
Je hebt gelijk, maar het betreft een kleine kantoor automatisering die we implementeren binnen de afdelingen, de door jouw genoemde systemen krijgen we nooit langs onze automatiserinsgsafdeling zonder 30 aanvragen van elk 45 blz in te vullen.

Om het vervolgens te weigeren omdat het niet binnen het beleid past en/of geld kost :(

[ Voor 22% gewijzigd door ErikRo op 07-11-2004 20:37 ]

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
ErikRo schreef op 07 november 2004 @ 20:32:
Transacties zijn een mooie manier om alles terug te draaien als er iets mis gaatmet inlezen van bestanden.

Mijn idee is om het inlezen van een excel bestand via een transactie te doen. Op zich een goed idee. Alleen bedacht ik me later als er tussendoor verder ingevoerd wordt door gerbuikers en er moet later een rollback worden uitgevoerd. Worden mutaties betrekking hebbende op die records dan ook teruggedraaid?

Lijkt me eigenlijk wel, maar hoe worden transacties dan normaal gebruikt? is het de bedoeling dat er niemand in het systeem mag zitten of moet worden buitengesloten als deze spreadsheets worden verwerkt cq ingelezen.
Het moet echt alles of niets zijn, het mag niet de ene regel wel en de andere niet.

Maar volgens mij sluit het een het ander uit.
Een transactie legt inderdaad vaak een behoorlijk lock op de tabel(len) in kwestie, dat is nu eenmaal nodig om een transactie goed te kunnen beheren. Een beetje RDBMS zal er wel voor zorgen niet een zwaardere lock te leggen dan noodzakelijk.

Het inlezen van een excelbestand kan ik niet helemaal plaatsen in combinatie met transacties maar als je wilt dat je iets terug kunt draaien zul je moeten zorgen dat er niemand in het sheet kan werken. Je zou ook kunnen overwegen het importeren van het excel sheet eerst in een tussentabel te doen, en dan in een transactie de gegevens verder verwerken.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 18-05 12:03
Wij krijgen alles aangeleverd in beveiligde excel bestanden van verschillende aanbieders. Daarin staan rijen met producten en hun verwerkte aantallen en bedragen, deze moeten worden ingelezen in een access database voor verdere verwerking.
Vroeger werd dit met de hand ingevoerd en later met een soort inleesfunctie, maar naar ik begreep stopte die halverwege bij fouten en moest je uitzoeken wat er fout was gegaan.

Ik dacht dat moet beter kunnen mbv transacties. Ik zal in ieder geval die tip over een tussentabel meenemen. Begrijp ik overigesn goed, dat een transactie alle geraakte records gelocked houdt tot de transactie wordt afgekeurd of goedgekeurd?

[ Voor 12% gewijzigd door ErikRo op 07-11-2004 20:52 ]

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
ErikRo schreef op 07 november 2004 @ 20:50:
Wij krijgen alles aangeleverd in beveiligde excel bestanden van verschillende aanbieders. Daarin staan rijen met producten en hun verwerkte aantallen en bedragen, deze moeten worden ingelezen in een access database voor verdere verwerking.
Vroeger werd dit met de hand ingevoerd en later met een soort inleesfunctie, maar naar ik begreep stopte die halverwege bij fouten en moest je uitzoeken wat er fout was gegaan.

Ik dacht dat moet beter kunnen mbv transacties. Ik zal in ieder geval die tip over een tussentabel meenemen. Begrijp ik overigesn goed, dat een transactie alle geraakte records gelocked houdt tot de transactie wordt afgekeurd of goedgekeurd?
Een transactie lost geen fouten op, het zorgt er alleen voor dat een bepaald proces oftwel helemaal slaagt, of in het geheel teruggedraaid wordt. Zodra er dus een fout optreedt word de hele transactie terug gedraaid, de fouten moeten er dan nog met de hand uit gehaald worden.

Een transactie locked idd de betreffende records.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 18-05 12:03
Met goed en afgekeurd had ik beter kunnen zeggen, totdat een commit of een rollback wordt gegeven ;)

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


Verwijderd

Transacties kan je gebruiken op je Access database in combinatie met de import-functie. Transacties hebben last van elkaar afhankelijk van hun lisolatie niveau. In de documentatie van MS-Access kan je vinden welke implicaties wel isolatie niveau heeft. Wanneer de gangbare applicatie door z'n eigen transactief import uberhaubt uitsluit, zal je moeten importeren terwijl niemand gegevens muteerd.

Als een transactie gestart kan worden is gegarandeerd dat bij rollback alleen de binnen de transactie aangebrachte wijzigingen teruggezet worden.
Gebruik van een hoop (grote) transacties laat een MS-Access database flink groeien. Vergeet niet de database zo nu en dan te compacten.

Aanschaf van MS-SQL kan je overigens mee vallen. Het wordt pas duur als er een nieuwe server bij moet, schijven zijn duur. Wel moet je MS-SQL natuurlijk kunnen beheren.

[ Voor 3% gewijzigd door Verwijderd op 07-11-2004 22:40 ]

Pagina: 1