? Blokeringer er frustrerende. Hvis du anmoder om adgang til specifikke oplysninger på din computer , for eksempel, kan computeren ikke give dig adgang , når et dødvande sker. A blokeringer forekommer i Oracle , når to sessioner forsøger at bruge den samme ressource . Fejlkode " ORA- 00060 " signalerer et dødvande i Oracle. De fire vigtigste typer af dødvande i Oracle er generelle , autonom transaktion , bitmap -indekset og unindexed fremmed nøgle . General Deadlock
En generel dødvande forekommer i Oracle , når to uafhængige sessioner skal have adgang til samme ressource på samme tid. Hver session venter den anden samling for at frigøre ressourcen . I sidste ende , vilkårligt Oracle vælger en af de sessioner og producerer en fejl. Desværre , selvom en session modtager en fejl , ressourcen det bruger forbliver låst . For at undgå denne form for dødvande , må alle Oracle kodning være skrevet, så processerne altid optræder i samme rækkefølge. Med andre ord , skal brugerne kode alle processer til at begynde med den samme ressource og fortsætte gennem de andre ressourcer i numerisk rækkefølge.
Selvstyrende Transaction
Et selvstændigt transaktion er en session, der er programmeret til at drive en anden session i sig selv. Deadlocks sker i en selvstændig transaktion, når den sekundære session og moderselskabet session konkurrerer om de samme ressourcer. Som med en generel dødvande , venter begge sessioner udgivelsen af en ressource , før de frigiver deres nuværende ressource. Oracle derefter en blindgyde fejlkode , men endnu en gang de ressourcer forbliver låst. Som med en generel dødvande , er en selvstændig transaktion dødvande resultatet af uoverensstemmende kodning praksis . Ved at sikre alle processer starter på en bestemt ressource og fremskridt i orden, vil en autonom dødvande ikke forekomme.
Bitmap Index
bitmap -indeks bruges, når data lagres og meget lidt datamanipulation forekommer . En bitmap index deadlock opstår, når data manipulation forsøges på tabelrækker , der bruges af denne bitmap indeks. Den fastlåste situation skyldes indeks blokke er i brug, når data manipulation er forsøgt. Desværre er denne form for dødvande er næsten uundgåelig. Nogle data manipulation altid vil være behov for en bitmap indeks , selvom det er blot at opdatere indekset . Nødvendigheden af data manipulation gør dette dødvande typen svært at undgå .
Unindexed Foreign Key
unindexed fremmed nøgle er en almindelig årsag til dødvande i Oracle, men det er også er en let fast årsag. Processen med dette dødvande indebærer en overordnet post forsøger at få adgang til oplysninger i en undertabel . En undertabel , eller et barn bordet, er et bord inden for den oprindelige overordnede post . Den unindexed fremmed nøgle er i barnets bordet. I et forsøg på at udføre vedligeholdelse , låser Oracle hele barn bordet , hvilket øger muligheden for en blindgyde at forekomme . Den bedste måde at sikre denne form for dødvande forekommer ikke at indeksere alle nøgler .