firebird coklu kullanimda refresh

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

firebird coklu kullanimda refresh

Mesaj gönderen ikra »

selamu aleyküm cemaat-i müslimin

hocalarim...

firebird veritabani kullanmaya calisiyorum V1.5... yapmak istedigim program bir kac bilgisayarda ayni anda calisacak ve firebird server ana makinada calisacak. yani tüm client ler ana makinaya baglanacak. fakat aklima takilan sey, client lerden biri bir veri gönderdiginde ve / veya sildiginde ayni anda diger client ler kendilerini nasil refresh edecekler? her yaplan islem diger tüm client lere ayni anda yansilmali...

firebird e yeni basladim... sanirim 2 saatlik bir gecmisim var :) yardimci olursaniz duaciniz olurum...

Allah'in (cc) selami üzerinize olsun...
kıdemsiz üye
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

forum da event alert arattir, simdilik aklima baska birsey gelmiyor.

miskin
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

viewtopic.php?t=1273&postdays=0&postord ... d&start=15

galiba arkadaslar burada cözmeye calismislar... epey aradim ama henüz bir seye rastlamis degilim... devam ediyorum...
kıdemsiz üye
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

hocalarimin dedigi yöntemi takip edip, POST EVENT ile isimi gördüm... Ilgilenen arkadaslara duyrulur...
kıdemsiz üye
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Post event..........................

Mesaj gönderen HBV »

Selamün Aleyküm İkra Kardeşim ..Post Event ile işi çözdüm diyorsun..Nasıl çözdün?..Peki diğer Kullanıcılar Aynı kayıt üzerinde değişiklik,düzeltme yapabiliyorlarmı? Bu hakka sahiplermi?.Ben günlerdir bunun için uğraşıyorum,Yaptığım proğram 9 Bilgisayarda çalışıyor.Her kez tablo üzerinde işlem yapabilsin,aynı anda kayıt girebilsin.ama olmuyor.Bir firmaya yaptığım proğram da iş gereği buların olması lazım.Ama firebird hemen kilit koyuyor" Deadlock"..Sitelerde çok araştırdım. ama çözüm bulamadım haa IBObjects ,FIBPlus'la bu sorun çözülüyor zaten araştırdıkça seni buralara yönlendiriyorlar ama astarı Kumaşından pahalıya çıkıyor..Bende bir süre pes edip ara verdim..o firmada Paradox la devam ettiriyorum. şu ana kadar hiç bir problem yaşamadık..9 ağ bilgisayarı tıkır tıkır çalışıyor.
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

ve aleyküm selam...

delphi 7 ve firebird 1.5 kullaniyorum... ilk defa firebird kullaniyorum. sanirim cok kisa bir zaman zarfinda Allah'in (cc) izni ile cözecegim...

her bir tablo icin trigger ekledim. bu trigger after (insert, delete, update) olayinda tetikleniyor.

örnegin

post_event 'tabloxxx yenilendi';

daha sonra form üzerine bir IBEvent koydum. database yi bagladim. ve IBEvent in Events'ine post event icine yazmis oldugum string i yazip AutoRegister i TRUE yaptim.

OnEventAlert kismina ilk deneme olarak Showmessage(eventname); ekledim... ( acaba mesaji alabiliyormuyum ve mesaj hangi tablodan geliyor)

daha sonra fark ettim ki her bir registered event icin bir numara veriliyormus. yani
0, 1, 2, 3 diye...

sana düsen hangi tablodan hangi numara dönüyor o'nu görmek ve daha sonra

Case EventCount of
1: Tablo1.refresh;
2: Tablo2.refresh;
end;

bu sekilde hangi tablodan mesaj geliyor ise o tabloyu refresh edebiliyorsun...


Kolay gelsin...

( Yanlis bilgilenmekten ve bilgilendirmekten, harflerin sahibi olan alemlerin Rabbine siginirim )
kıdemsiz üye
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

HBV arkadasim...

EventCount olayi yanlis... Post event te string kontrolü yap. sayilar üzerinden yola cikarsan eventcount sacmalamaya basliyor... iki tablo icin de ayni no yu veriyor :roll:
kıdemsiz üye
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Eveet Sağol kardeşim..doğru..
ertemsoft
Üye
Mesajlar: 129
Kayıt: 19 Nis 2005 01:22
İletişim:

Mesaj gönderen ertemsoft »

selam

ben Firebird ü kullanmaya başlayalı 1 ay gibi bir zaman oldu önceden
Paradox kullanıyordum ama Firebird daha güzel . Paradox ta yazdıgım
bir Taksitli satış programını Firebird e geçirdim aynı anda 2 terminal
rahatlıkla kullanıyor tüm kayıt ,silme ,update işlemlerinde Cache Update
kullandım şuana kadar bir sorun yaşamadım . (Firebird e ODBC üzerinden
bağlanıyorum)

saygılar.
Bilgi Paylaştıkça Çoğalır
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

selam Ertemsoft kardeşim diğer kullanıcı Aynı kayıt üzerinde(Aynı Paradoxdakigibi)işlem yapabiliyormu? eğer öyleyse nasıl yaptığını hangi araçlarla nasıl bağlandığını açarsan ve ayrıntılı şekilde yazarsan çok memnun olurum.beni büyük bir işten kurtarırsın?
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,
Aynı kayıt üzerinde(Aynı Paradoxdakigibi)işlem yapabiliyormu
Ne kadar korkunç bir ifade .... Aynı kayıt üzerinde aynı anda iki kullanıcının işlem yapması, birisinin yaptığı değişikliğin çöpe atılması demektir ki bu durum, neresinden bakarsanız bakın bilime aykırıdır.

Öncelikle kilit mekanizmalarını bir incelemelisiniz. İki tip kilit mekanizması mevcuttur. Pessimistic ve optimistic olarak..

Pessimistic kilitlerde, kaydın fiziksel olarak VT tarafından kilitlenmesi sözkonusudur. Bir kaydı ne zaman kilitleriz ne ve zaman çözeriz ? Kaydı kullanıcı güncellemeye kalkıştığı anda kilitleriz, şayet kilitliyse ya bekleriz (wait lock) ya da kullanıcıya bir mesaj verir döneriz. Kullanıcı commit ettiğinde de mevcut kilitleri kaldırırız. Şayet kilitleri kaldırma sürecini koymamışsanız, kullanıcı kayıtlarda çalıştıkça diğer kullanıcılar bir zaman sonra çalışamaz olurlar. Aslinda her kayıt işlemi bir transaction içinde olmak zorundadır, tek bir kaydı güncellesiniz bile.. Nedeni ise şayet bir trigger la içerde başkaca tablolar güncelleniyorsa failover durumlarda VT stabilitesini kaybeder ve artık o db ye güvenemezsiniz.. Ne mi olur ? En baba ticari paketlerde bile gördüğünüz "Servis" adı verilen program bölümleriniz olur. Bu konu uzun burada kesiyorum..

Optimistic lock da ise bir kayıt kilitlemezsiniz. Kaydın bir CRC sini yada tümünü tutarsınız. Kullanıcı submit ettiğinde kaydın bu eski CRC yada içeriğini kontrol eder ve değişiklik yoksa kaydı güncellersiniz.

Her iki sistem de db sürücüleri seviyesinde desteklenir. Öncelikle transaction yönetimi ve kayıt kilitleme mekanizmalarının detaylı bir incelemesini yapın. Multiuser sistemlerde bu konuda yeterli olmayan bir programcının hazırlayacağı VT den ve Uygulamadan hayır gelmeyeceğini rahatlıkla söyleyebilirim.

Kolay gelsin.

PS: Tablo değiştikçe tüm diğer clientlara broadcast geçmek, ciddi bir trafik oluşturacağı gibi, user tam veri girerken query sinin refresh edilmesiyle girdiği kaydı kaybetmesiyle de sonuçlanabilir. DB event larını bunun için kullanmak çok anlamlı değildir.
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Niye Olmasın Bir Tablo üzerinde Bir çok kullanıcı Bazı haklara sahip olmalı
Mesela benim yaptığım veritabanında bu gerekli .Tablo içinde Kullanıcılarla ilgili bölümler var bu bölümler diğer kullanıcılar tafafından doldurulmak zorunda ..bu şekilde kullanıcılar, girdiği veriler sürekli değişim geçirmek zorunda ..Yani Veritabanları hep klasik bir türde yazılmak zorunda değil..İhtiyaca göre yazılması lazım..Ha ben kalkıp müşterime bu yo şu yok dediğim zaman ..nal toplarız..iyi çalışmalar.
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

Field bazlı bir güvenlik evet ama field bazlı bir locking ve update mekanizması ben hiç duymadım.. VT kaydı bütün olarak okuyup bütün olarak yazıyor.. Hatta çoğu sistem page bazında yapıyor bu işi.. Bu nedenle güncel teknolojşyle çalışabilmek için tabloyu bölerek bunu yapmalısınız. X tipi kullanıcıların güncelleyeceği alanlar bir tabloda, Y tipi kullanıcıların güncelleyeceği bilgiler bir tabloda olabilir.. Muhtemelen bu bilgilere ait ana kaydın bulunduğu bir tablonuz daha olacak.
Yani Veritabanları hep klasik bir türde yazılmak zorunda değil..İhtiyaca göre yazılması lazım
Veritabanı motorunu siz yazıyorsanız bu olabilir. Fakat siz sadece VT de çalışıyorsanız, sisteminin nasıl çalıştığını bilmelisiniz...
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

VT larınin nasıl çalıtığını çok iyi biliyorum ama bir yere de(vt'ye) takılmamak lazım.
Bakin Size bir Ornek vereyim: Bundan bir sure once Belcikada SOPHIS diye bir Yazilim firmasi vardi,Tekstil Uzerine Unix altinda bir program yaziyor tabi o zamanin ihtiyaclarina gore ve bu programi bir cok tekstil firmasi satin aliyor kullaniyor,ve bir sure sonra programin ihtiyaca gore yetersizligi ortaya cikiyor, Linux a geciyor.tabi bu arada bu is uzerine rakip firmalar cikiyor,Bu firma programi gelistirib,sattigi firmalara yeteri kadar destek vermiyor,kisaca program tek duz de kaliyor,iste efendim rakip firma Windows da sunu yapiyormus!,cevap Efendim windows cokecek en iyisi linux[Halbuki Linux bu konuda Cok Yetersiz] Gelistirme yok,Guncelleme yok,yani bu yazilim firmasina dunyanin parasina satin alip baglandiklari program baslarina dert oluyor Cunku obur firmalar Veritabanlarini WINDOWS da bir de resimli yaparak ki(bu sitede bakiyorum Resimli Veritabanlarina cogu karsi Demekki oluyormus) bir cok ozelliklerle donatip adeta sov yapiyorlar veee sonuc kacinilmaz,7-8 sene once WINDOWS un Cokecegini soyleyen SOPHIS iflas ediyor,Simdi zerresi yok bu yuzden tek duzde kalmayacaksiniz Gelelim bize eee efendim iki kisi ayni Tablo uzerinde islem yapmasin zaten normalide bu(Begenmediginiz Paradoxda Pekala oluyor),efendim resimli veritabani yapmayin,efendim soyle yapmayin boyle yapmayin,Sitenin girisindeki yaziyi iyi okumamiz lazim Cagimiz insani artik bilincli,Turkcesi Programci Piyasa ihtiyacina gore kendisini gelistirmek zorunda..Eger bir kusur islediysem Af ola..Herkese iyi calismalar.
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

Aynı kayıt üzerinde(Aynı Paradoxdakigibi)işlem yapabiliyormu
tabiki ayni tablo'da bir cok kisi islem yapabilir. Ama yukardaki aciklamalar, ayni Kayit üzerinde islem yapilmasindan bahsediyor.

Anlasmazlik sadece sizin (HBV) olayi anlatirken, dikkatsizce sectiginiz kelimelerden kaynaklaniyor, ve Dogan beyin hangi konu üzerine konustuguna da dikkat etmediginizi gösteriyor.
miskin
Ve Tanri, bütün kullarini davul edecek :)
Cevapla