Firebird - ZEOS Connection - Anamakina Bağlantı hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Firebird - ZEOS Connection - Anamakina Bağlantı hatası

Mesaj gönderen yusuf simsek »

Selamun Aleyküm,

Hayırlı Pazarlar Üstadlar...

Delphi 10.2 ve ZEOS Component Set kullanıyorum.

Ağ üzerinde çalışan makinalarda ( kablosuz bağlantı ile ağa bağlanan ve özellikle modeme uzak olan makinalar ) ağ kopmalarında ZEOS tarafından ANA MAKİNA BAĞLANTI HATASI veriyor ve program kilitleniyor!!!

Sistem Programın kapatılmasına dahi izin vermiyor! Ancak Görev yöneticisinden programı kapatabiliyoruz...

Kapatmayı @serbek_tr viewtopic.php?f=18&t=23922 bu şekilde çözmüş

Benzer bir soru da viewtopic.php?f=2&t=32720 çözümsüz kalmış!

Sorun ile ilgili çözümönerileriniz nelerdir?
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ertank
Kıdemli Üye
Mesajlar: 1657
Kayıt: 12 Eyl 2015 12:45

Re: Firebird - ZEOS Connection - Anamakina Bağlantı hatası

Mesaj gönderen ertank »

Merhaba,

Buradaki sorunun aslı bilgisayarın ağ iletişiminin kopması. Bu kopma normal bir kopma da değil anladığım kadarıyla. Arada gel-git yapıyor. Kısacası; ağ bağlantısı koptuğunu veya geldiğini uygulama içinden biliyor olmalısınız ki veritabanı ile ilgili soruna çözüm arayabilin.

Farklı bir şekilde ifade etmek gerekir ise;
- Ağ bağlantısı koptu.
- Uygulama bunu bilmiyor olmasına rağmen bağlantı kurmaya çalışır ise standartt TCP/IP gecikme süresi 2dk kadar donma yaşarsınız.

Dolayısıyla, sorunu anladığım kadarıyla ağ bağlantısı olmadığı durumda yeniden bağlantı yapılmaya çalışılmamalı. Ağ bağlantısı geri geldiğinde bağlantı yapılmalı.

Bu arada laptop, ve yeni nesil işletim sistemlerinde güç yönetimi ayarları ek soruna yol açıyor olabilir. Mesela ben desktop bilgisayarımda 3dk sonra uyku moduna geçiyor. Uygulamanın bu gibi durumları da algılaması ve oluştuğunda bağlantıyı kapatması, sistem geri geldiğinde yine yukarıdaki açıklandığı gibi ancak ağ bağlantısı sağlandıktan ve sunucu erişimi onaylandıktan sonra (uygulama bunu otomatik yapacak tabii) veritabanı bağlantısı sağlanmalıdır.

Böyle durumlarda ZAOS değil herhangi başka bir bileşen de size yardımcı olamayacaktır.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Firebird - ZEOS Connection - Anamakina Bağlantı hatası

Mesaj gönderen yusuf simsek »

Detaylı bilgi için çok teşekkür ederim @ertank

Ancak deneme fırsatı bulabildiğim için geç cevap verdim...

AnaForma bir ApplicationEvents nesnesi koydum, OnException eventa

Kod: Tümünü seç

  if POS('SQL Error:  Unable to complete network request to host', e.Message ) > 0 then
    begin
      try
        DM1.ConnSabit.Connected := False;
        DM1.Conn1.Connected     := False;
      except
      end;

      if Mesaj( 'Ana Makina ile bağlantı kopmuştur! Ağ Bağlantınızı kontrol ediniz...'+#13+#13+'Anamakina bağlantısı tekrar denensin mi?', cMsgOnay ) = mrYes then
        begin
          try
            DM1.ConnSabit.Connected := True;
            DM1.Conn1.Connected     := True;

            Mesaj( 'Ana Makinası bağlantısı sağlanmıştır.', cMsgBilgi);
          except
            on e:Exception do
              begin
                LogEkleErr( e.Message );
                Mesaj(sServerAlias + ' Makinası bağlantısı sağlanamadı! Programı tekrar çalıştırınız.'+#13+#13+'HATA : '+e.Message, cMsgHata);
                Application.Terminate;
              end;
          end;
        end
      else
        begin
          Application.Terminate;
        end;
    end
  else
    begin
      Mesaj( e.Message, cMsgHata );
      LogEkleErr( e.Message );
    end;
Kodunu yazdık...

ApplicationEvent Exception da 'SQL Error: Unable to complete network request to host' mesajını yakalarsa ShowMessage ile işlemi durduruyor ve Connection kapatıyor...

Kullanıcı Ağ Bağlantısını kontrol ettikten sonra Onay verirse Tekrar Bağlanmayı Deniyor!

Testlerde sorunsuz çalıştık, Şimdi Kullanıcılardan gelen sonuca bakacağız.

İyi çalışmalar dileriz.
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla