• 13-05-2014, 17:45:41
    #10
    gallisene adlı üyeden alıntı: mesajı görüntüle
    kodlarınızın doğru olduğunu varsayıyorum öyle de görünüyor.. mantık olarak kodların önbelleğe alınıyor ama where koşulunda istediğin şeyler ön belleğe alınan sorguları görmüyor. daha eski kayıtlara bakıyor.
    2. ihtimal ise kayıtları anında yapıyor ki insert sorguları genelde bekletilmez. ama select count u dataadapter mantığıyla önceden belleğe alıp veritabanındaki veriyle değil var olanla çekiliyor. yani 10 kayıt bulunan veritabanı hafızaya geliyor ve 11. eklendikten sonra hafıza güncellenmiyor ya da güncellenmesi zaman alıyor.
    yoğun bir veritabanı olduğundan bir çok işlem de zamanlama sorunu yaşanabilir.
    elle sql de bir sorgu çalıştırdığınızda select * from yogunbirtablo gibi ne kadar sürede cevap geliyor bunu dikkate almak lazım. ama ne olursa olsun ya bu sorguları store procedure ile uygulayıp işi veritabanı tarafında yapmanız ya da cache olayını derinlemesine analiz edip insert işlemi sırasında kullanmamanız sorunu çözebilir.
    daha basit çözümler içinde kısa aralıklarla birden fazla kayıt eklenen bir sistem değilse buton enable özelliğiyle birden fazla tıklamayı engelleyebilir ya da iki kayıt arasında 3-5 saniye bir limit koyabilirsiniz.
    Anladım hocam,şu andaki çözümüm kesin sanıyorum değil mi ? 3 alanı birbirine bağlayıp unique verdim dediğim gibi,bu şekilde o sorgudan ekle komutunu uygulayacak bir cevap gelse bile mysql kabul etmeyecek daha önce olduğu için bu kayıt.
  • 13-05-2014, 17:53:40
    #11
    Üyeliği durduruldu
    eğer sorun cache ile ilgiliyse (çok sık kullanmadığımdan çalışma mantığını ve sürelerini sadece teorik olarak biliyorum) bu yaptığınız çözüm mantık yürüterek anlatayım..
    aynı anda 2 farklı yerden aynı bilgilerle kayıt girildiğinde ip den dolayı sorun olmaz düzgün çalısır
    ama ard arda aynı kişi bu 3 sütun dışında diğer sütunları değiştirip veri girerse dalgınlıkla vs ya da bilerek farklı veriler saklamak için
    bu durumda sistem kullanıcıya hata mesajı vermesi gerekir bu kayıt var yeni bir tane deneyin gibi.
    ama hata vermeyecektir (cache düşündüğüm gibi çalışıyorsa) bunun yerine iki veriyi de hafızaya alacaktır.
    daha sonra bu hafızadaki verilerden hangisini daha önce sisteme kaydederse sorunsuz kaydedecek ikincisi hata verdiğinden eklenmeyecektir. ama kullanıcının veri girişiyle eş zamanlı olmadığından kullanıcı bu hatadan haberdar olamayacaktır.


    bu söylediğim mantıkla ilerliyorsa sizin select sorgunuzu cahce sistemine girmeden yapmanız gerekir. insert te hata yok çünkü select te var.
    siz bence eğer yapabiliyorsanız cache sistemini o yazdığınız select sorgusunu kapsamayacak şekilde değiştirmelisiniz. daha da özü store procedure olarak yazıp çağırmanızdır. tabi yazarken kafam karıştı iyice okuyup ekleme düzenleme yapabilirim bu mesajıma

    düzeltme: eğer insert sorgusu ön belleğe alınmıyorsa ki alınmaz yaptığınız işlem sorunsuz çalışacak ama oluşan hata mesajını yönetemeyeceksiniz. sistem ön bellekte kayıt görünmediğinden her iki insert sorgusunu da doğrudan çalıştıracak 1. sorgu işlenecek ikinci hata verecektir.
  • 13-05-2014, 18:10:22
    #12
    gallisene adlı üyeden alıntı: mesajı görüntüle
    eğer sorun cache ile ilgiliyse (çok sık kullanmadığımdan çalışma mantığını ve sürelerini sadece teorik olarak biliyorum) bu yaptığınız çözüm mantık yürüterek anlatayım..
    aynı anda 2 farklı yerden aynı bilgilerle kayıt girildiğinde ip den dolayı sorun olmaz düzgün çalısır
    ama ard arda aynı kişi bu 3 sütun dışında diğer sütunları değiştirip veri girerse dalgınlıkla vs ya da bilerek farklı veriler saklamak için
    bu durumda sistem kullanıcıya hata mesajı vermesi gerekir bu kayıt var yeni bir tane deneyin gibi.
    ama hata vermeyecektir (cache düşündüğüm gibi çalışıyorsa) bunun yerine iki veriyi de hafızaya alacaktır.
    daha sonra bu hafızadaki verilerden hangisini daha önce sisteme kaydederse sorunsuz kaydedecek ikincisi hata verdiğinden eklenmeyecektir. ama kullanıcının veri girişiyle eş zamanlı olmadığından kullanıcı bu hatadan haberdar olamayacaktır.


    bu söylediğim mantıkla ilerliyorsa sizin select sorgunuzu cahce sistemine girmeden yapmanız gerekir. insert te hata yok çünkü select te var.
    siz bence eğer yapabiliyorsanız cache sistemini o yazdığınız select sorgusunu kapsamayacak şekilde değiştirmelisiniz. daha da özü store procedure olarak yazıp çağırmanızdır. tabi yazarken kafam karıştı iyice okuyup ekleme düzenleme yapabilirim bu mesajıma

    düzeltme: eğer insert sorgusu ön belleğe alınmıyorsa ki alınmaz yaptığınız işlem sorunsuz çalışacak ama oluşan hata mesajını yönetemeyeceksiniz. sistem ön bellekte kayıt görünmediğinden her iki insert sorgusunu da doğrudan çalıştıracak 1. sorgu işlenecek ikinci hata verecektir.
    Hata mesajını zaten yönetmek istemiyorum ben aslında,eklememesi yeterli bende böyle düşünüyorum bu önlemi atlatmanın bir yolu yok gibi.