folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Mysql Problemi (Çok Fazla Bağlantı)



Mysql Problemi (Çok Fazla Bağlantı)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Merhabalar,

    MySQL veritabanına bağlı masaüstü ve mobil uygulama hazırladık. Bunlar bir biri ile ortak çalışmaktadır. Fakat şöyle bir problemimiz var.

    Masaüstü yazılım 15 saniyede bir sürekli bir alanı güncelliyor ve güncellediği alanlara göre tekrar sorgu atıyor.

    Masaüstü yazılımda yaklaşık 30 - 40 kişi açtığında veritabanında işlemler bölümünde bir sürü işlem görülüyor ve Sleep modunda bekliyor. Birde mobil uygulamadan giriş yapıldığında iyice birikiyor bu işlemler.

    Oysaki tüm bağlantılar dikkatle yazıldı ve her bağlantı kapatılıyor. Bu sleep modundaki işlemlerin tümü arttıkça bu sefer bağlantı problemi çıkıyor ve Too Many Connection hatası alıyoruz.

    Ekstra birşey mi yapmamız gerekiyor bu hatayı almamamız için? Veya sleep modundaki tüm işlemleri sürekli sildirsek her bağlantı sonrasında, diğer bağlantı yapanlar problem yaşar mı?

    Yada ekstra bir yazılım hazırlayıp 10 saniyede bir tüm sleepleri silse mi?


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    https://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html



  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    0x656e bunu yazdı

    https://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

    Oraya baktım, derdime çare olmadı hocam :)


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ccaglayan
    Ccaglayan's avatar
    Kayıt Tarihi: 23/Kasım/2011
    Erkek

    nasıl bağlantı yapıyorsunuz bilmiyorum umarım uygulamalar direk olarak mysql e bağlanmıyordur öyle ise sorun biraz gıcık önerim api ile bağlatmak uygulamaları. Sorunun çözümü basit max connection ı yükseltirseniz ve connection timeout u daha aşağıda tutarsanız sorununuz bi nebze olsun azalır. Misal şuan kullandığımız projede anlık olarak 100 den fazla aktif connection var ama too many connection hatasına düşmüyoruz.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Web servis üzerinden mi haberleşiyorlar yoksa direk mysql servera connection mu açıyor uygulamalar?


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Masaüstü yazılımda API yok, direkt MySQL Connection yaptık arkadaşlar. Yazılım elden ele veya internete düşecek bir yazılım değil.

    Mobil uygulama tabi API üzerinden çalışıyor.

    biri tarafından 23/Ara/16 13:31 tarihinde düzenlenmiştir

    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek
    tolgasen bunu yazdı

    Masaüstü yazılımda API yok, direkt MySQL Connection yaptık arkadaşlar. Yazılım elden ele veya internete düşecek bir yazılım değil.

    Mobil uygulama tabi API üzerinden çalışıyor.

    Hocam şurda hata tespiti için bir yoldan bahsetmişler görmüşsündür belki ama yinede ekliyim. Belki gözden kaçmıştır. Birde network'u dinleyip açılan connectionları filan takip etmende fayda var. Belki client taraftadaki provider kaynaklı bir timeout vs. olabilir. Yada gözden kaçmış bir try-catch içinde birşeyler olabilir ve connection kapanmıyor olabilir. Birde timeout sonrasıda acaba bağlantı askıda kalıyor olabilirmi?

    https://www.experts-exchange.com/questions/27921809/Finding-MySQL-queries-creating-Sleep-processes.html#a38590616


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    TeRRoR bunu yazdı
    tolgasen bunu yazdı

    Masaüstü yazılımda API yok, direkt MySQL Connection yaptık arkadaşlar. Yazılım elden ele veya internete düşecek bir yazılım değil.

    Mobil uygulama tabi API üzerinden çalışıyor.

    Hocam şurda hata tespiti için bir yoldan bahsetmişler görmüşsündür belki ama yinede ekliyim. Belki gözden kaçmıştır. Birde network'u dinleyip açılan connectionları filan takip etmende fayda var. Belki client taraftadaki provider kaynaklı bir timeout vs. olabilir. Yada gözden kaçmış bir try-catch içinde birşeyler olabilir ve connection kapanmıyor olabilir. Birde timeout sonrasıda acaba bağlantı askıda kalıyor olabilirmi?

    https://www.experts-exchange.com/questions/27921809/Finding-MySQL-queries-creating-Sleep-processes.html#a38590616

    Aslında MySQL server tarafında hiç bir ayar yapmadık. Linkteki gibi bir kaç ayar ve wait_timeout, max_connection gibi süreleri değiştirmemiz fayda sağlayabilir.

    Dediğiniz gibi bir yazılım hazırlayıp 10 saniyeden uzun süre açık kalanları temizlemeyi / kapatmayı düşünüyorum.

    Bağlantıları genelde metodlar ile yaptım ve finally kısmında mutlaka .close yaptım. Ama nedense her defasında her bağlantıda 2 bağlantı sleep moda geçiyor. 1 dakika sonra siliniyor ama beklediği o 1 dakika dolmasına sebep oluyor.


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Çıldırıcam ya program kapanınca hepsi siliniyor, açıkken silinmiyor.

    Allah aşkına şu kodun neresinde problem var ya?

       Dim Baglanti As New MySqlConnection()
       Try
              Baglanti.ConnectionString = Ayarlar.baglantiString
              Baglanti.Open
       Catch ex As MySqlException
              MsgBox(ex.Message)
       Finally
              Baglanti.Close()
              Baglanti = Nothing
       End Try

     


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    MySqlConnection.ClearAllPools()

    kodunu finally içerisine ekledim. Şimdi çıkmıyor. Performans kaybı olur mu bilmem ama en azından hata vermez :)


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
Toplam Hit: 1046 Toplam Mesaj: 10
mysql