13.gyak. Az Oracle tranzakciókezelési megoldásai
      
>> Az előző órai II.ZH papíros és gépes feladatainak a megbeszélése
      -- Az eredmények, név-nélkül/kóddal: II.ZH eredménye (jelszóval)
>> Az utolsó órán gépes gyakorlat: 16.témakör: Oracle megoldásai
      -- akik II.ZH-ból javZH-t írnak, ott ilyen típusú feladatok is várhatóak.
      
16.témakör: Az Oracle tranzakciókezelési megoldásai
   
Segédanyagok:
Az előadáson Kiss Attila - Adatbázisok 2 előadások  (Vizsgatételek: 13 és 20.tétel)
>> Oracle Online Documentation -  Administrator's Guide: HTML   PDF
>> Nikovits Tibor összefoglalói: tranzakciok.txt     tranz_peldak.txt
     lek_dinam_nez.txt   dinam_nezetek.txt   zarolasok.txt   autonom_tranz.txt
   
Feladatok - Nikovits Tibor: Információkezelés (5PTM) gyakorlatai alapján
      
6.1.feladat:
   - Tranzakció-kezelés alapjai. COMMIT, ROLLBACK,SAVEPOINT
   - Nyissunk meg egyszerre két SQLPLUS ablakot vagy az sqldeveloperben
     két ablakot úgy, hogy abban két külön sessiont nyissunk meg, ami azt jelenti,
     hogy "Connections": legyen egy tomx1 nevű és legyen egy tomx2 nevű is.
     Nekünk az kell, hogy legalább két különböző tranzakciónk legyen,
     ellenőrizzük le: select * from V$session where username like 'EHA%';
  - Végezzünk olvasó és módosító műveleteket a két ablakból felváltva.
  - Az aktív tranzakciók futása közben adjuk meg a rendszerkatalógusok alapján
     a következő információkat a saját magunk által futtatott tranzakciókról.
     (Lásd az alábbi feladatokat itt is:  tranz_peldak.txt, megoldásokkal)
   - Melyek az aktiv tranzakciók, mikor indultak el, és ki futtatja azokat?
   - A tranzakció melyik utasítást futtatja éppen?

6.2.feladat:
   - Melyik rollback szegmenst használják épp az aktív tranzakciók?
   - Melyik adatfájlba írják a tranzakciók a rollback blokkjaikat?

6.3.feladat:
   - Holtpont kipróbálása
   - Adjunk meg két utasítássorozatot a két ablakban úgy, hogy DEADLOCK
      alakuljon ki, lásd például itt:  tranz_peldak.txt (megoldásokat kipróbálni).

6.4.feladat:
   - Az Oracle tranzakcióelkülönítési szintjei
   - Adjunk meg két utasítássorozatot a két ablakban úgy, hogy az egyik ablak
     a következő hibaüzenetet kapja:
     "ORA-08177: Cannot serialize access for this transaction"
     (Tipp: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;)

6.5.feladat:
   - Zárolások megnézése
   - Melyik session milyen típusú (sor->TX, tabla->TM) és milyen módú  
      zárolást tart fenn éppen? (RS->2, RX->3, S->4, SRX->5, X->6)
      (SID, USERNAME, TYPE, LMODE)

6.6.feladat:
   - Melyik session vár épp egy zárolásra
      (SID, USERNAME, TYPE, LMODE, REQUEST),
      illetve melyik zárolasra vár épp valaki
      (SID, USERNAME, TYPE, LMODE, BLOCK)?

6.7.feladat:
   - Milyen régen tartja fenn a rendszer a zárolasokat, illetve
      milyen régen vár valaki egy zárolásra?
      (SID, USERNAME, TYPE, LMODE, CTIME, REQUEST)

6.8.feladat:
   - Mely objektumokat tartja zárolás alatt valamelyik session jelen pillanatban?

6.9.feladat:
   - Derítsük ki (megfelelő manuális lock-oló utasítások segítségével), hogy a
     Row Exclusive (RX) módú zárolást milyen módú zárolásokkal egyidejűleg
     engedélyezi a rendszer, és mely módú zárolások esetén kell várnia a
     későbbi kérelmezőnek.
       
 Vissza az AB2 gyakorlat oldalára             Vissza a Kezdőlapra