/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Database transaktioner
Fra : Assassin


Dato : 06-12-01 17:27

Hvordan laver man subj?? Jeg er med på at man kan bruge
setTransactionIsolation(), men det hjælper vel ikke hvis jeg f.eks vil noget
alá (i meget pseudokode):

public void enmetode(){
int i = SELECT attribut X;
int i = i+50;
UPDATE set X=i;
}

Det drejer sig om et distribueret system med central database. Hvis bruger A
nu kalder enmetode() og inden A får UPDATE'et kalder Bruger B enmetode()...
Så har vi jo samtidighedsproblemet. Hvordan får jeg "pakket" enmetode() ind
i en transaktion??






 
 
Thorbjørn Ravn Ander~ (06-12-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 06-12-01 18:25

"Assassin" <martin_dk97@hotmail.com> writes:

> Det drejer sig om et distribueret system med central database. Hvis bruger A
> nu kalder enmetode() og inden A får UPDATE'et kalder Bruger B enmetode()...
> Så har vi jo samtidighedsproblemet. Hvordan får jeg "pakket" enmetode() ind
> i en transaktion??

Ved at slå autocommit fra i JDBC og selv kalde commit eller rollback.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk

Assassin (06-12-2001)
Kommentar
Fra : Assassin


Dato : 06-12-01 20:24

Ja men det ændrer vel ikke på det faktum at bruger B kan tilgå det data som
A er ved at ændre på? Hvis nej, kan du så ikke give et lyn eksempel (kender
godt setAutoCommit()??

"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kklmggmfby.fsf@mimer.null.dk...
> "Assassin" <martin_dk97@hotmail.com> writes:
>
> > Det drejer sig om et distribueret system med central database. Hvis
bruger A
> > nu kalder enmetode() og inden A får UPDATE'et kalder Bruger B
enmetode()...
> > Så har vi jo samtidighedsproblemet. Hvordan får jeg "pakket" enmetode()
ind
> > i en transaktion??
>
> Ved at slå autocommit fra i JDBC og selv kalde commit eller rollback.
> --
> Thorbjørn Ravn Andersen
> http://unixsnedkeren.dk



Thorbjørn Ravn Ander~ (06-12-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 06-12-01 20:39

"Assassin" <martin_dk97@hotmail.com> writes:

> Ja men det ændrer vel ikke på det faktum at bruger B kan tilgå det data som
> A er ved at ændre på? Hvis nej, kan du så ikke give et lyn eksempel (kender
> godt setAutoCommit()??

Hele pointen med en moderne transaktionsbaseret database er at B til
stadighed ser ENTEN situationen før A begynder at pille, ELLER
situationen efter A er færdig (og har kaldt commit).

Hvis B også gerne vil opdatere, må B pænt vente til A har bestemt sig.

De fleste database introduktionstekster skulle gerne forklare dette
bedre end jeg kan. Du anbefales at læse lidt på lektien.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste