FB Bağlantısı kesilmesi ya da FB Sunumcusu kapatılması

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

FB Bağlantısı kesilmesi ya da FB Sunumcusu kapatılması

Mesaj gönderen Akin_Delphi »

Arkadaşlar,
Forumda aradım ancak bulamadım.

Şimdi benim sorunum şu:

İstemci uygulama başka bir bilgisayarda ya da yerel bilgisayar üzerindeki FB sunumcusundaki bir VT'ye bağlı durumda.

FB sunumcusu kapatıldığında ya da (eğer ağ üzerindeki başka bir bilgisayarda ise) bağlantı kesildiğinde ne yapmam gerekiyor.

Şimdi pek çok şeyi denetim. Ancak sürekli hata mesajı alıyorum (örneğin uzaktaki bağlantı kesildi vs. gibi).

Öncelikle bağlantı kesildiğini nasıl anlayacağım. IBDatabase bileşeninin OnDisconnect olay işleyicisini kullanmaya çalıştım ancak bağlantı kesildiğinde işe yaramıyor.

Bağlantı kesildiğini fark edip, istisna oluştuğunda, Database ve Transaction'ı sırasıyla Connected := False, ve Active := False yapıyorum ancak yine de hata vermeye devam ediyor.

Nasıl bir strateji izlemem lazım. Saygılarımla,
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

FB/IB toollarında böyle bir alternatif henüz yok zira bildiğim kadarıyla (tam emin değilim) FB nin böyle bir istisnası mevcut değil.OnDisconnect eventi manuel olarak disconnect edildiğinde tetiklenir..Socket bileşenleri kullanılarak böyle bir istisna yönetimi hazırlanabilir diye düşünüyorum.ClientSocketin bağlantısının düşmesi muhtemelen FB toollarından daha önce olacaktır ve disconnect yordamına kod yazarak dbyi kapatabilirsin.Hatta benzer bir yapıyı sözkonusu bileşenlere socket classının gömülmesi suretiyle de yapabilirsin sanırım.Yanılıyor da olabilirim...

Kolay gele..
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Biraz kaçamak bir yöntem, pek sağlıklı değğl ama şöyle yapabilirsin:

Kontrol için tek sutün tek satırlık bit tablo oluşturursun. Geri plânda ibsql bileşeni ile nir timer kullanarak 4-5 sn bir bu tabloyu sorgulatırsın. Sorun olduğunda anlarsınki bağlantı kesilmiştir.

Eğer yüzlerce istemci yoksa, birkaç bilgisayar için yerel ağda kullanılacaksa böyle bir yöntem izleyebilirsin.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

selamu aleyküm.

arkadaslar bunun daha farkli bir yöntemi yok mu?
yada bu soruna cözüm bulan oldu mu?

5 client bir server a baglaniyor ve baglanti koptugu an bütün programlar donuyor. görev yöneticisinden kapatmak zorunda kaliyoruz hepsini. aksi taktir de kapatmak mümkün degil. program hic bir reaksyon göstermiyor.

selam ve dua ile...
Cevapla