Hva er årsakene til en fastlåst med Oracle?

Hva er årsakene til en fastlåst med Oracle?


Vranglåser er frustrerende. Hvis du ber om tilgang til informasjon om datamaskinen, for eksempel, kan ikke datamaskinen gi deg tilgang når en vranglås skjer. En vranglås oppstår i Oracle når to økter forsøke å bruke den samme ressursen. Feilkoden "ORA-00060" signaliserer en fastlåst i Oracle. De fire hovedtyper av vranglåser i Oracle er generelle, autonome transaksjon, bitmap indeks og unindexed fremmednøkkel.

Generelt Deadlock

En generell vranglås oppstår i Oracle når to uavhengige økter trenger tilgang til samme ressurs samtidig. Hver økt venter på den andre økten for å frigjøre ressurser. Til slutt, Oracle vilkårlig velger en av de sesjoner og frembringer en feil. Dessverre, selv om en sesjon mottar en feil, ressurs den bruker restene låst. For å unngå denne typen fastlåste situasjonen, må alle Oracle koding være skrevet slik at prosessene alltid forekomme i samme rekkefølge. Med andre ord, må brukerne kode alle prosesser for å starte med samme ressurs og gå gjennom de andre ressursene i numerisk rekkefølge.

Autonomous Transaksjons

Et autonomt transaksjonen er en økt som er programmert til å betjene en ekstra økt i seg selv. Vranglåser skje i en selvstendig transaksjon når den sekundære økten og foreldre økt konkurrerer om de samme ressursene. Som en generell vranglås, begge øktene avvente utgivelsen av en ressurs før de slipper sin nåværende ressurs. Oracle produserer da en fastlåst feilkode, men nok en gang ressursene forblir låst. Som en generell vranglås, er en selvstendig transaksjon vranglås resultatet av inkonsistente koding praksis. Ved å sørge for alle prosesser starter på en gitt ressurs og fremgang i orden, vil en autonom vranglås ikke forekomme.

bitmap Index

En bitmap indeksen brukes når data blir lagret og svært lite datamanipulasjon oppstår. En bitmap indeksen vranglås oppstår når data manipulasjon forsøkes på tabellrader som brukes av det bitmap indeksen. Den fastlåste situasjonen er forårsaket av indeksblokker være i bruk når datamanipulasjon er forsøkt. Dessverre er denne typen fastlåste situasjonen er nesten uunngåelig. Noen datamanipulasjon alltid vil være behov for en bitmap indeks, selv om det er bare for å oppdatere indeksen. Nødvendigheten for datamanipulasjon gjør denne fastlåste situasjonen typen vanskelig å unngå.

Unindexed Foreign Key

En unindexed fremmednøkkel er en vanlig årsak til vranglås i Oracle, men det er også en lett fast årsaken. Prosessen med denne fastlåste situasjonen innebærer en forelder rekord prøver å få tilgang til informasjon i en undertabellen. En undertabell, eller barnet tabellen, er en tabell i det opprinnelige overordnede posten. Den unindexed fremmednøkkel er i barnet tabellen. I et forsøk på å utføre vedlikehold, Oracle låser hele barnet tabellen, noe som øker muligheten for et fastlåst til å forekomme. Den beste måten å sikre denne typen vranglås oppstår ikke er å indeksere alle tastene.