03. november 2006 - 17:58Der er
7 kommentarer og 1 løsning
afbrudt forbindelse
Jeg har lavet en web-applikation, der opretter ordrer i et regnskabsprogram. Alt fungerer som det skal men...
For et par uger siden, var det et lynnedslag der hvor systemet kører, og en router stod delvist af. Dette bevirkede at der kunne forekomme meget lange svartider fra client til server.
Problemet er så, at med disse lange svar tider, nåede systemet måske at oprette en ordre, men ikke at lægge ordrelinier ind, da det bliver udført i 2 forskellige SQL-sætninger. Derved gik nogle varelinier tabt i processen.
Er der nogen der har nogen ideer til, hvordan dette kan undgåes, evt. med noget "forbindelses-check" inden der bliver skrevet i databasen, eller en måde, hvor systemet kan "fortryde" hvis den ikke bliver færdig med en funktion. eller noget helt andet.
faldt over noget med BeginTrans, RollbackTrans og CommitTrans. Men som jeg umiddelbart kan læse det, så skriver den først til databasen, når hele scriptet er gennemgået. Vil det sige, at jeg ikke kan oprette en ordre f.eks. og så udlæse det netop oprettede ordre nummer, og smide ordrelinier ind på den, og stadig bevare muligheden for at annullere det hele, hvis forbindelsen ryger, eller der kommer en timeout eller noget ?
du kan gennemføre alle sql's, og hvis alt er gået godt "committer du det" hvis noget gik galt laver den en rollback, dvs genopretter db til før du begyndte.
det hele foregår automatisk, når først det er rigtigt sat op.
ja, det virker jo som præcis det jeg skal bruge... Så mangler jeg jo bare en mulighed for at sætte en tid på, så den kan nå at lave en rollback, inden den får timeout, hvis scriptet er for lang tid om at blive udført
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.