A honlapomra kitett feladatokat folyamatosan kell megoldani, de csak néhány alkalommal összegyűjtve kell majd levélben elküldeni a megoldásokat. A beadandó feladatokat 2 fős csoportokba szerveződve lehet megoldani. Azokat a feladatokat, ahol lekérdezést vagy programot kell beadni, az alábbi egységes formában, .txt állományokban kérem: *** Feladat szövege *** Lekérdezés vagy program *** A futtatás eredménye **************************************************************************** Elküldendő a 3 feladat megoldása és a futtatás során kapott output. 7. Feladat 7/1 Adjuk meg két tranzakciónak egy olyan ütemezését, hogy DEADLOCK alakuljon ki. Adjunk meg két konkrét SQL utasítássorozatot (két SqlDeveloper példány futtatásának segítségével) úgy, hogy DEADLOCK alakuljon ki, és ezt írja is ki a rendszer hibaüzenetként. Valami ilyesmit kell kiírnia: "ORA-60: deadlock detected while waiting for resource" 7/2 Adjunk meg egy olyan ütemezést két tranzakcióra, amely nem sorbarendezhető. Mindezt egy NOT_SERIAL nevű procedúra megírásával érjük el, amely egy autonóm tranzakcióként futó lokális procedúrát (vagyis nem tárolt procedúrát) hív meg. Ha jól írtuk meg, akkor a procedúra a következő hibaüzenetet fogja kiírni: "ORA-08177: can't serialize access for this transaction" create or replace procedure not_serial is ... Tesztelés: set serveroutput on execute not_serial(); 7/3 Írjunk meg egy lock_test nevű procedúrát, amelyik LOCK TABLE utasítások kiadásával leteszteli, hogy két tranzakció a megadott két zárolási módban zárolhatja-e ugyanazt a táblát. A második tranzakació egy autonóm tranzakcióként futó lokális procedúrában legyen megvalósítva. A lehetséges zárolási módok: RS, RX, S, SRX, X. A procedúra siker esetén írja ki, hogy OK, egyébként pedig, hogy NEM. create or replace procedure lock_test(p1 varchar2, p2 varchar2) is ... Tesztelés: set serveroutput on execute lock_test('RX', 'S'); Tipp!!! A procedúra megírásához dinamikus SQL utasítást kell (lehet) használni. Lásd pl_dinamikusSQL.txt