SlideShare una empresa de Scribd logo
1 de 33
Bölüm 8 : Kayıt Kilitlerini Yönetmek Bu dersi tamamladığımız zaman şunları yapabileceksiniz; ,[object Object]
Devamlılığı ve kayıt kilitlerini açıklamak
Optimistik kilit stratejisini uygulamak
Transaction kapsamı < kayıt kapsamı durumunda devamlılığı artırmak,[object Object]
Server Çok Kullanıcılı Veritabanını Başlatmak proserve sports2000 Veritabanı broker’ı Veritabanı Paylaşılan bellek Sunucu makine
Server Çok Kullanıcılı Bir Veritabanına Bağlanmak Veritabanı broker’ı Veritabanı Paylaşılan bellek Sunucu makine
İki İstemci Oturumu Başlatmak İstemci oturumlarını ikisiyle birlikte çalışacak şekilde ayırın
1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 Çok Kullanıcılı Erişimi Yönetmek Devamlılık İki kullanıcı da kaydı okuyabilir Veri bütünlüğü Biri kayda eriştiğinde diğeri aynı kayda yazamaz
Varsayılan Kilitleme Kaydı  SHARE-LOCK ile okuma REPEAT:     PROMPT-FOR Customer.CustNum.     FIND Customer USING CustNum NO-ERROR.     IF AVAILABLE Customer THEN DO:            DISPLAY Name Discount CreditLimit.        UPDATE Discount CreditLimit.     END. END. SHARE-LOCK kilidini bir EXCLUSIVE-LOCK kilidine yükseltme isteği
1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 Önerilen Kilitleme A Kullanıcısı B Kullanıcısı A kullanıcısı kaydı değiştirirken EXCLUSIVE-LOCK kilidine sahiptir B kullancısı kaydı okurken NO-LOCK düzeyindedir
Bir Kayıt Kapsamı Ne Anlama Gelir? forord: FOR EACH Order WHERE OrderNum < 5:    DISPLAY OrderNum Terms SalesRep.     forline:    FOR EACH OrderLine OF Order, EACH ITEM OF OrderLine:        DISPLAY Linenum      FORMAT ">9" LABEL "Line#“                       Item.Itemnum  FORMAT ">>9" LABEL "Item #"  Item.ItemName FORMAT "x(10)" Item.Price    FORMAT ">>9.99"               Qty           FORMAT ">>>". UPDATE Discount FORMAT ">9%".    END.  /*forline*/ END.	/*forord*/ Order OrderLine Item ???
OrderLine Item Order Kayıt Kapsamını Belirlemek Order kayıt kapsamı forord: FOR EACH Order WHERE OrderNum < 5:     DISPLAY OrderNum Terms SalesRep. forline:     FOR EACH OrderLine OF Order, EACH ITEM OF OrderLine:         DISPLAY Linenum       FORMAT ">9" LABEL "Line#"  Item.ItemnumFORMAT ">>9" LABEL "Item #"  Item.ItemNameFORMAT "x(10)" Item.PriceFORMAT ">>9.99"                 Qty                             FORMAT ">>>".         UPDATE Discount FORMAT ">9%".     END.  /*forline*/ END.	/*forord*/ OrderLineve Item kayıt kapsamı Ayrıca transaction kapsamı
Kayıt kapsamı transaction kapsamına eşit Transaction kapsamı daha büyük Kayıt kapsamı daha büyük Kayıt Kapsamı ve Transaction Kapsamı   T R T R T R
Alt-prosedur’ler ve Kayıt Kilitleme Transaction kapsamı /* Main procedure eRunTrans.p */ REPEAT:   PROMPT-FOR Customer.CustNum.   . . .    SET CreditLimit.   . . .   DO: RUN eUpdOrder.p(. . .).   END. END. /* Sub-procedure eUpdOrder.p */ . . . FOR EACH Order OF Customer:   . . .   SET Carrier.   FOR EACH OrderLine OF Order:     . . .     ASSIGN Orderline.Price = ITEM.Price.     . . .   END. END. Siparişler ve ayrıntılarındaki tüm kilitler bu noktada serbest bırakılır
Customer Customer 5  Match Point Tennis JAL 5000 5  Match Point Tennis JAL  1000 Record Locking Contention İstemci oturumu 1 İstemci oturumu 2
Uygulama 1 : Kayıt Kapsamı ve Kilitleme Düzeyini Belirleme
1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 Deadlock A kullanıcısı B kullanıcısı A kullanıcısıSHARE-LOCK B kullanıcısı SHARE-LOCK Kullanıcı kilidi bırakana kadar diğer kullanıcı kayda yazamaz
1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 1 Fins 36.00 1 Fins 24.00 1 Fins 36.00 1 Fins 24.00 Kilitleme Stratejileri SHARE-LOCK SHARE-LOCK Varsayılan kilitleme EXCLUSIVE-LOCK NO-LOCK Kötümser kilitleme NO-LOCK NO-LOCK EXCLUSIVE-LOCK İyimser kilitleme
Customer Customer 5  Match Point Tennis JAL  1000 İstemci oturumu 1 İstemci oturumu 2 Varsayılan Kilitleme Metodunu Değiştirme FIND Customer USING CustNum NO-LOCK: 5  Match Point Tennis JAL  1000
1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 İyimser Kilitleme – Optimal Devamlılık A kullanıcısı B kullanıcısı A kullanıcısı SHARE-LOCK B kullanıcısıSHARE-LOCK Diğer kullanıcı SHARE-LOCK düzeyini bıraktıktan sonra kullanıcının kaydı değiştirmek için EXCLUSIVE-LOCK düzeyine yükselmeye ihtiyacı vardır
İyimser Strateji İçin Best Practise Kaydı NO-LOCK NO-ERROR ile çek Kullanıcı girdisini bekle Kaydı yeniden NO-LOCK ile çek ya da Kaydı RELEASE et TRANSACTION bloğu: Kaydı EXCLUSIVE-LOCK ile çek Varlığını doğrula Değişiklikleri kontrol et Aksi takdirde transaction’ı geri al Değişiklikleri kaydet
EXCLUSIVE-LOCK ile FIND CURRENT Kullanıcı kaydı DEĞİŞTİREMEZ PROMPT-FOR Customer.CustNum. FIND Customer USING CustNum NO-LOCK NO-ERROR. . . . . . .  FIND CURRENT Customer EXCLUSIVE-LOCK NO-ERROR. Kullanıcı kaydı DEĞİŞTİREBİLİR
Customer Customer 5  Match Point Tennis JAL  1000 Kayıt Değişti mi? IF NOT CURRENT-CHANGED Customer THEN... Orijinal değerler Veritabanı Şimdiki değerler (değişmiş olabilir) 5  Match Point Tennis JAL  1000
Kayıt Kullanılabilir Durumda mı? FIND CURRENT Customer EXCLUSIVE-LOCK NO-ERROR. IF AVAILABLE Customer THEN . . . Evet ? Hayır Şimdi ASSIGN edilebilir Kullanıcıyı bilgilendir
Customer Kayıt Kilit Mi? FIND Customer USING CustNum. Varsayılan kilit = SHARE-LOCK 5  Match Point Tennis JAL  1000 FIND CURRENT Customer EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF LOCKED Customer THEN...
Yeniden dene? Kilitlendi mi, Yoksa Silindi Mi? Kilitli mi? Hayır Evet Kayıt silinmiş Evet Retry bayrağını ayarla
Uygulama 2 : Kaydın Kilitli Olup Olmadığını Öğrenme
İyimser Kilitleme – Tümü Birarada Kaydı NO-LOCK NO-ERROR ile çek Kullanıcı girdisini bekle Kaydı yeniden NO-LOCK ile çek ya da Kaydı RELEASE et TRANSACTION bloğu: Kaydı EXCLUSIVE-LOCK ile çek Varlığını doğrula Değişiklikleri kontrol et Aksi takdirde transaction’ı geri al Değişiklikleri kaydet
İyimser Kilitleme – Tümü Birarada
Uygulama 3 : İyimser Kilitlemeyi Kullanmak
Server Broker Bir BROKER’ı Başlatmak ve Durdurmak proservesports2000 Veritabanı Paylaşılan bellek proshutsports2000 Sunucu makine Paylaşılan bellek Sunucu makine
Uygulama 4 : Bir Veritabanı BROKER’ını Durdurmak

Más contenido relacionado

Destacado

progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2kaan verdioglu
 
progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6kaan verdioglu
 
progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9kaan verdioglu
 

Destacado (6)

progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2
 
progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6
 
progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1
 
progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11
 
progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9
 

progressokulu.com Advanced Business Language Slide 8

  • 1.
  • 2.
  • 3. Devamlılığı ve kayıt kilitlerini açıklamak
  • 5.
  • 6. Server Çok Kullanıcılı Veritabanını Başlatmak proserve sports2000 Veritabanı broker’ı Veritabanı Paylaşılan bellek Sunucu makine
  • 7. Server Çok Kullanıcılı Bir Veritabanına Bağlanmak Veritabanı broker’ı Veritabanı Paylaşılan bellek Sunucu makine
  • 8. İki İstemci Oturumu Başlatmak İstemci oturumlarını ikisiyle birlikte çalışacak şekilde ayırın
  • 9. 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 Çok Kullanıcılı Erişimi Yönetmek Devamlılık İki kullanıcı da kaydı okuyabilir Veri bütünlüğü Biri kayda eriştiğinde diğeri aynı kayda yazamaz
  • 10. Varsayılan Kilitleme Kaydı SHARE-LOCK ile okuma REPEAT: PROMPT-FOR Customer.CustNum. FIND Customer USING CustNum NO-ERROR. IF AVAILABLE Customer THEN DO: DISPLAY Name Discount CreditLimit. UPDATE Discount CreditLimit. END. END. SHARE-LOCK kilidini bir EXCLUSIVE-LOCK kilidine yükseltme isteği
  • 11. 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 Önerilen Kilitleme A Kullanıcısı B Kullanıcısı A kullanıcısı kaydı değiştirirken EXCLUSIVE-LOCK kilidine sahiptir B kullancısı kaydı okurken NO-LOCK düzeyindedir
  • 12. Bir Kayıt Kapsamı Ne Anlama Gelir? forord: FOR EACH Order WHERE OrderNum < 5: DISPLAY OrderNum Terms SalesRep. forline: FOR EACH OrderLine OF Order, EACH ITEM OF OrderLine: DISPLAY Linenum FORMAT ">9" LABEL "Line#“ Item.Itemnum FORMAT ">>9" LABEL "Item #" Item.ItemName FORMAT "x(10)" Item.Price FORMAT ">>9.99" Qty FORMAT ">>>". UPDATE Discount FORMAT ">9%". END. /*forline*/ END. /*forord*/ Order OrderLine Item ???
  • 13. OrderLine Item Order Kayıt Kapsamını Belirlemek Order kayıt kapsamı forord: FOR EACH Order WHERE OrderNum < 5: DISPLAY OrderNum Terms SalesRep. forline: FOR EACH OrderLine OF Order, EACH ITEM OF OrderLine: DISPLAY Linenum FORMAT ">9" LABEL "Line#" Item.ItemnumFORMAT ">>9" LABEL "Item #" Item.ItemNameFORMAT "x(10)" Item.PriceFORMAT ">>9.99" Qty FORMAT ">>>". UPDATE Discount FORMAT ">9%". END. /*forline*/ END. /*forord*/ OrderLineve Item kayıt kapsamı Ayrıca transaction kapsamı
  • 14. Kayıt kapsamı transaction kapsamına eşit Transaction kapsamı daha büyük Kayıt kapsamı daha büyük Kayıt Kapsamı ve Transaction Kapsamı   T R T R T R
  • 15. Alt-prosedur’ler ve Kayıt Kilitleme Transaction kapsamı /* Main procedure eRunTrans.p */ REPEAT: PROMPT-FOR Customer.CustNum. . . . SET CreditLimit. . . . DO: RUN eUpdOrder.p(. . .). END. END. /* Sub-procedure eUpdOrder.p */ . . . FOR EACH Order OF Customer: . . . SET Carrier. FOR EACH OrderLine OF Order: . . . ASSIGN Orderline.Price = ITEM.Price. . . . END. END. Siparişler ve ayrıntılarındaki tüm kilitler bu noktada serbest bırakılır
  • 16. Customer Customer 5 Match Point Tennis JAL 5000 5 Match Point Tennis JAL 1000 Record Locking Contention İstemci oturumu 1 İstemci oturumu 2
  • 17. Uygulama 1 : Kayıt Kapsamı ve Kilitleme Düzeyini Belirleme
  • 18. 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 Deadlock A kullanıcısı B kullanıcısı A kullanıcısıSHARE-LOCK B kullanıcısı SHARE-LOCK Kullanıcı kilidi bırakana kadar diğer kullanıcı kayda yazamaz
  • 19. 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 1 Fins 36.00 1 Fins 24.00 1 Fins 36.00 1 Fins 24.00 Kilitleme Stratejileri SHARE-LOCK SHARE-LOCK Varsayılan kilitleme EXCLUSIVE-LOCK NO-LOCK Kötümser kilitleme NO-LOCK NO-LOCK EXCLUSIVE-LOCK İyimser kilitleme
  • 20. Customer Customer 5 Match Point Tennis JAL 1000 İstemci oturumu 1 İstemci oturumu 2 Varsayılan Kilitleme Metodunu Değiştirme FIND Customer USING CustNum NO-LOCK: 5 Match Point Tennis JAL 1000
  • 21. 1 Fins 24.00 1 Fins 24.00 1 Fins 24.00 İyimser Kilitleme – Optimal Devamlılık A kullanıcısı B kullanıcısı A kullanıcısı SHARE-LOCK B kullanıcısıSHARE-LOCK Diğer kullanıcı SHARE-LOCK düzeyini bıraktıktan sonra kullanıcının kaydı değiştirmek için EXCLUSIVE-LOCK düzeyine yükselmeye ihtiyacı vardır
  • 22. İyimser Strateji İçin Best Practise Kaydı NO-LOCK NO-ERROR ile çek Kullanıcı girdisini bekle Kaydı yeniden NO-LOCK ile çek ya da Kaydı RELEASE et TRANSACTION bloğu: Kaydı EXCLUSIVE-LOCK ile çek Varlığını doğrula Değişiklikleri kontrol et Aksi takdirde transaction’ı geri al Değişiklikleri kaydet
  • 23. EXCLUSIVE-LOCK ile FIND CURRENT Kullanıcı kaydı DEĞİŞTİREMEZ PROMPT-FOR Customer.CustNum. FIND Customer USING CustNum NO-LOCK NO-ERROR. . . . . . . FIND CURRENT Customer EXCLUSIVE-LOCK NO-ERROR. Kullanıcı kaydı DEĞİŞTİREBİLİR
  • 24. Customer Customer 5 Match Point Tennis JAL 1000 Kayıt Değişti mi? IF NOT CURRENT-CHANGED Customer THEN... Orijinal değerler Veritabanı Şimdiki değerler (değişmiş olabilir) 5 Match Point Tennis JAL 1000
  • 25. Kayıt Kullanılabilir Durumda mı? FIND CURRENT Customer EXCLUSIVE-LOCK NO-ERROR. IF AVAILABLE Customer THEN . . . Evet ? Hayır Şimdi ASSIGN edilebilir Kullanıcıyı bilgilendir
  • 26. Customer Kayıt Kilit Mi? FIND Customer USING CustNum. Varsayılan kilit = SHARE-LOCK 5 Match Point Tennis JAL 1000 FIND CURRENT Customer EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF LOCKED Customer THEN...
  • 27. Yeniden dene? Kilitlendi mi, Yoksa Silindi Mi? Kilitli mi? Hayır Evet Kayıt silinmiş Evet Retry bayrağını ayarla
  • 28. Uygulama 2 : Kaydın Kilitli Olup Olmadığını Öğrenme
  • 29. İyimser Kilitleme – Tümü Birarada Kaydı NO-LOCK NO-ERROR ile çek Kullanıcı girdisini bekle Kaydı yeniden NO-LOCK ile çek ya da Kaydı RELEASE et TRANSACTION bloğu: Kaydı EXCLUSIVE-LOCK ile çek Varlığını doğrula Değişiklikleri kontrol et Aksi takdirde transaction’ı geri al Değişiklikleri kaydet
  • 30. İyimser Kilitleme – Tümü Birarada
  • 31. Uygulama 3 : İyimser Kilitlemeyi Kullanmak
  • 32. Server Broker Bir BROKER’ı Başlatmak ve Durdurmak proservesports2000 Veritabanı Paylaşılan bellek proshutsports2000 Sunucu makine Paylaşılan bellek Sunucu makine
  • 33. Uygulama 4 : Bir Veritabanı BROKER’ını Durdurmak