WSAAccept Callback ve DB veri sorgulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

WSAAccept Callback ve DB veri sorgulama

Mesaj gönderen ikra »

Selamun aleykum

Socket baglanmak istediginde WSAAccept tetikleniyor ve bu fonksyonun icerisinden bir Callback cagiriliyor.
cagirilan bu callback sayesinde baglanmak isteyen client'i kabul yada red edebiliyorum.

client'in kabul yada red olayin veritabanindan kontrol etmem gerekiyor.
callback fonksyonu criticalsection ile kilitli oldugu icin birinci thread fonksyondan cikmadan ikinci thread girip sorgulama yapamiyor.

5 thread calistiginda 4'ü fonksyon kapisinda bekledigi icin bu islem beni pek sarmadi.

baglanti kabul hizini artirabilmek icin öyle bir yapi hazirlamam gerekiyor ki,
1) tüm threadler es zamanli olarak kendi sorgusunu yapabimeli
2) sorgudan cevap dönünceye dek thread callback icerisinde beklemeli.

Callback'den Criticalsection'i kaldirip yerine sorgu dönüsümünü beklemesi icin TEvent koydum. bekleme süresi Infinite. fakat sorgulama yine es zamanli gerceklesmiyor. event Set edilmedigi sürece ikinci sorgu gerceklesmiyor.
Criticalsection olmamasina ragmen event tarafindan callback bloke ediliyor.

cözüm yada fikir üretebilecek birileri var mi?
kıdemsiz üye
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: WSAAccept Callback ve DB veri sorgulama

Mesaj gönderen thelvaci »

Aynı kod bloğuna birden fazla thread'in girmesini arzu ediyorsanız ve bunun için belli bir limitiniz var ise semaphore kullanabilirsiniz. Ancak söylemem lazım ki; her bir thread için veritabanına bağlanacağı connection'ı oluşturmalısınız. Yani veritabanı connection'ı her bir thread'e özgü olmalıdır.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: WSAAccept Callback ve DB veri sorgulama

Mesaj gönderen ikra »

Tesekkur ederim. Eline saglik.
Veritabani baglantisini class'in bir sonraki seviyesinde halledecegim.
Benim yapmak istedigim sey, threadlarin es zamanli olarak ayni prosedur yada fonksyona girmesi ve donecek olan resultu es zamanli olarak beklemesi. Umarim semaphor isimi gorur. Arastirayim.
kıdemsiz üye
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: WSAAccept Callback ve DB veri sorgulama

Mesaj gönderen thelvaci »

Semaphore'ları inceleyecek iseniz; bu husus hakkında yazmış olduğum makale belki işinizi biraz kolaylaştırabilir.

http://www.tugrulhelvaci.com/?p=443

Thread ile ilgili diğer makalelere de göz atmak isterseniz eğer; http://www.tugrulhelvaci.com/?tag=thread adresindeki makaleler de faydalı olabilir.
Cevapla