Bagikan melalui


Melanggar Kunci Oportunistik

Melanggar kunci oportunistik adalah proses menurunkan kunci yang dimiliki satu klien pada file sehingga klien lain dapat membuka file, dengan atau tanpa kunci oportunistik. Ketika klien lain meminta operasi terbuka, server menunda operasi terbuka dan memberi tahu klien yang memegang kunci oportunistik.

Klien yang memegang kunci kemudian mengambil tindakan yang sesuai dengan jenis kunci, misalnya meninggalkan buffer baca, menutup file, dan sebagainya. Hanya ketika klien yang memegang kunci oportunistik memberi tahu server bahwa itu dilakukan server membuka file untuk klien yang meminta operasi terbuka. Namun, ketika kunci tingkat 2 rusak, server melaporkan kepada klien bahwa kunci tersebut telah rusak tetapi tidak menunggu pengakuan apa pun, karena tidak ada data cache yang akan dihapus ke server.

Dalam mengakui jeda kunci eksklusif apa pun (filter, tingkat 1, atau batch), pemegang kunci rusak tidak dapat meminta kunci eksklusif lainnya. Ini dapat menurunkan kunci eksklusif ke kunci level 2 atau tanpa kunci. Pemegang biasanya melepaskan kunci dan menutup file ketika akan menutup file.

Aplikasi diberi tahu bahwa kunci oportunistik rusak dengan menggunakan anggota hEvent dari struktur TUMPANG TINDIH yang terkait dengan file tempat kunci rusak. Aplikasi juga dapat menggunakan fungsi seperti GetOverlappedResult dan HasOverlappedIoCompleted.