Merhaba. JSP ile bir proje geliştiriyorum. Ve HttpServlet nesnesi üzerinden bir veritabanı bağlantısı gerçekleştireceğim. Ancak sormak istediğim bir soru var. Veri tabanı bağlantısını her request geldiğinde tekrardan yapmak mı daha iyi, yoksa init metodunda connection kurulup destroy ile connection' ı kapatmak mı daha iyi olur? Yada ThreadPool gibi gib connection pool olayı var mı? Teşekkürler.

soruldu: 29 Tem '12, 16:19

querman's gravatar image

querman
391162028
cevap kabul oranı: 0%


Cogu uygulama sonucusu kullanilan servlet sinifindan sadece bir nesne olusturup, threadlerin tek bu nesneyi kullanmasini saglayacaktir. Bu yüzden servlet üzerinden threadler arasi veri paylasimi güvenli degildir. Eger init() metodunda bir Connection nesnesi olusturulursa, bu nesne bir sinif degiskeni olacagindan her thread ayni veri tabani baglantisini kullanacaktir. JDBC sürücü implementasyonu Connection nesnesinin threadler arasi paylasimini desteklemiyor olabilir. Ayrica veri tabani sistemi belli bir zaman sonra uygulama ile arasindaki baglantiyi koparabilir. Bu durumda Connection nesnesi veri tabani ile iletisim icin kullanilamaz hale gelir. Gelen her yeni kullanici istegi (request) ile yeni bir Connection nesnesi olusturulup, veri tabani islemleri icin kullanilmalidir. Bu Connection nesnesinin bir Connection pool'dan (baglanti havuzu) alinmasi, veri tabani islemlerinin daha hizli yapilmasini saglayacaktir. Connection pool olusturmak icin Apache DBCP kullanilabilir.

Bir servlet sinifi bünyesinde veri tabani islemlerini yapmak icin metot barindirmak iyi bir tasarim örnegi degildir. Veri tabani islemlerinden sorumlu yeni bir sinif olusturularak, bu sorumluluk servlet sinifindan alinmalidir. Bakiniz Tek sorumluluk Prensibi.

EOF (End Of Fun) Özcan Acar

permanent link

cevaplandı: 30 Tem '12, 05:49

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×111
×26

Soruldu: 29 Tem '12, 16:19

Görüntüleme: 1,802 kez

Son güncelleme: 31 Tem '12, 05:59

powered by BitNami OSQA