PRAKTIKUM SISTEM BASIS DATA

advertisement
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Buka Command Window –Administrator, ketik
db2start
db2 force applications all
db2 connect to sample5
db2 create table tabel020(kolom1 integer)
db2 insert into tabel020(select 20 from syscat.tables fetch
first 9 rows only)
db2 select * from tabel020
db2 terminate
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Cursor Stability without Currently Committed
Buka 2 Command Window – Administrator (Aplikasi A dan Aplikasi B)
Cek kondisi Currently Committed
Aplikasi A :
db2 get db cfg for sample5
Disable Currently Commited
Aplikasi A :
db2 update db cfg for sample5 using cur_commit disabled
Mematikan auto-commit
Aplikasi A :
db2 +c
list command options
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Lihat isi tabel020, kemudian update isi tabelnya
select * tabel020
update tabel020 set kolom1=25
Aplikasi B :
db2 connect to sample5
db2 select * from tabel020
Transaksi pada Aplikasi B pending, karena table di lock oleh
Aplikasi A.
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Aplikasi A :
commit
Aplikasi B :
Setelah transaksi Aplikasi A di commit, transaksi pada Aplikasi B
dilanjutkan.
With Currently Committed
Disable Currently Commited
Aplikasi A :
update db cfg for sample5 using cur_commit on
Aplikasi A :
connect reset
connect to sample5
update tabel020 set kolom1=30
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Aplikasi B :
db2 connect reset
db2 connect to sample5
db2 select * from tabel020
Meskipun transaksi pada Aplikasi A belum di commit, tapi transaksi
pada Aplikasi B tetap dilanjutkan dengan menggunakan data terakhir
Aplikasi A :
commit
Aplikasi B :
db2 select * from tabel020
Nilai yang muncul adalah nilai baru yang sudah di commit pada
Aplikasi A.
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
Mengakhiri koneksi pada Aplikasi A dan Aplikasi B
Aplikasi A dan Aplikasi B :
db2 disconnect sample5
db2 terminate
Repeatable Read
Mengubah isolation ke RR (Repeatable Read)
Aplikasi A :
db2 +c
change isolation to RR
:
:
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Connect ke database kemudian lihat isi tabel020
Aplikasi A :
connect to sample5
select * from tabel020
Pada Aplikasi B, connect ke database kemudian lakukan proses
insert data
Aplikasi B :
db2 connect to sample5
insert into tabel020 values(40)
Transaksi pada Aplikasi B pending karena di lock oleh Aplikasi A.
Aplikasi A :
commit
Aplikasi A melakukan commit untuk melepaskan lock
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Aplikasi B :
Transaksi pada Aplikasi B dilanjutkan kembali dan berhasil
melakukan insert data
Mengakhiri koneksi pada Aplikasi A dan Aplikasi B
Aplikasi A dan Aplikasi B :
db2 disconnect sample5
db2 terminate
Phantom Read : Read Stability
Mengubah isolation ke RS (Read Stability) kemudian connect ke
database
Aplikasi A :
db2 +c
change isolation to RS
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Connect Aplikasi A ke database kemudian lihat isi tabel020
Aplikasi A :
connect to sample5
select * from tabel020
Connect Aplikasi B ke database kemudian insert data ke tabel020
Aplikasi B :
db2 connect to sample5
db2 insert into tabel020 values(40)
Proses insert data berhasil walaupun Aplikasi A belum di commit
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Lihat isi tabel020 melalui Aplikasi A
Aplikasi A :
select * from tabel020
Data dari Aplikasi B sudah masuk, jumlah data menjadi 11 dari
sebelumnya hanya 10.
Mengakhiri koneksi pada Aplikasi A dan Aplikasi B
Aplikasi A dan Aplikasi B :
db2 disconnect sample5
db2 terminate
Skenario 5: Uncommited Read
Connect Aplikasi A ke database
Aplikasi A :
db2 +c
connect to sample5
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Mengubah isolation ke UR (Uncommited Read) kemudian connect ke
database
Aplikasi B :
db2 change isolation to UR
db2 connect to sample5
Lihat isi tabel020 melalui Aplikasi B
Aplikasi B :
db2 select * from tabel020
Transaksi pada Aplikasi b langsung bisa dijalankan tanpa harus
menunggu Aplikasi A di commit, dan data yang ditampilkan juga
berasal dari Aplikasi A yang belum di commit.
Mengakhiri koneksi pada Aplikasi A dan Aplikasi B
Aplikasi A dan Aplikasi B :
db2 disconnect sample5
db2 terminate
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Deadlock
Buka Command Window – Administrator
Ubah konfigurasi cur_commit menjadi disabled
db2 +c
update db cfg for sample5 using cur_commit disabled
Connect ke database kemudian buat 2 buah tabel kemudian insert
data ke tabel tersebut
connect to sample5
create table tabel1(no integer, nama varchar(100))
insert into tabel1 values(1,‘joko’),(2,‘jono’)
create table tabel2(no integer, nama varchar(100))
insert into tabel1 values(1,‘rani’),(2,‘rina’)
commit
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Lihat isi kedua tabel
select * from tabel1
select * from tabel2
Buka 2 Command Window – Administrator (Aplikasi A dan Aplikasi B)
Aplikasi A dan Aplikasi B :
db2 +c
change isolation to CS
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Connect ke database
Aplikasi A dan Aplikasi B :
connect to sample5
Lakukan update data pada tabel1 menggunakan Aplikasi A
Aplikasi A :
update tabel1 set nama=’joni’ where no=2
Lakukan update data pada tabel2 menggunakan Aplikasi B
Aplikasi B :
update tabel2 set nama=’rini’ where no=2
Lihat isi tabel2 menggunakan Aplikasi A
Aplikasi A :
select * from tabel2
Transaksi pada Aplikasi A pending karena tabel2 masih di lock oleh
Aplikasi B.
Lihat isi tabel1 menggunakan Aplikasi B
Aplikasi B :
select * from tabel1
Transaksi pada Aplikasi B juga pending karena tabel1 juga masih di
lock oleh Aplikasi A.
Kondisi saling menunggu seperti ini yang mengakibatkan terjadinya
deadlock.
PRAKTIKUM SISTEM BASIS DATA
BAB
NAMA
NIM
ASISTEN
: DATA CONCURRENCY AND LOCKING
: DIMAS HAMDHAN P.
TGL PRAKTIKUM
: 125150400111020
TGL PENGUMPULAN
: KEMAL WIBISONO
USFITA KIFTIYANI
:
:
Setelah beberapa detik, algoritma deadlock pada DB2 akan
memutuskan aplikasi mana yang akan dilanjutkan dan aplikasi mana
yang akan di rollback
Aplikasi A dilanjutkan
Aplikasi B di rollback
Download