about life

Entity Locking trick in Wakanda

Hi All,

Wakanda menggunakan metode optimistics locking untuk menjaga konsistensi data yang tersimpan. Artinya adalah, jika satu entity sedang dilakukan proses penyimpanan, maka secara default, Wakanda akan mengunci proses tersebut, sehingga jika ada proses lain yang berkaitan dengan entity tersebut tidak akan bisa diproses dan menghasilkan error.

Misalnya seperti pada contoh berikut:

var x = ds.Person(1); //Reference to entity
var y = ds.Person(1); //Separate reference to same entity
x.firstName = ‘Bill’;
x.save();
y.firstName = ‘William’;
y.save(); //Throws error

untuk melakukan handling terhadap coding ini, kita dapat menambahkan blok Try… cacth… seperti contoh berikut:

var x = ds.Person(1); //Reference to entity
var y = ds.Person(1); //Separate reference to same entity
x.firstName = ‘Bill’;
x.save();
y.firstName = ‘William’;
try {
y.save(); //Throws error
}
catch (e){
//do something here
}

Selain itu, untuk menghilangkan setup default proses locking ini, kita dapat merubahnya di class yang dimaksud, tepatnya di bagian property panel dengan mencentang Allow Stamp Override, maka Wakanda tidak akan lagi melakukan lock pada saat proses penyimpanan data berikutnya dan selalu melalukan overwrite terhadap data yang sudah ada sebelumnya.

Artha Nugraha Jonar
Saat ini bekerja di perusahaan logistik. Sedang belajar bahasa pemrograman komputer. Hobi jalan-jalan, makan dan bersepeda.
https://www.arthanugraha.com

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.