[Java lista] DBCP és szaporodó szálak
Zsombor
gzsombor at gmail.com
2011. Feb. 25., P, 17:25:40 CET
2011/2/25 Mariák Kálmán <sirkalmi at kalmiesemese.hu>
> Igazad van, megvan a hiba!
>
> Az égatta világon semmi köze sincs a poolomhoz. A hibát egy olyan
> programrész okozta ami tudtommal eddig is kint volt az élesben. Lehet,
> hogy mégsem...
>
> A TopDispatcher filter osztályomban az alábbi kód okozta a szál
> szaporulatot:
> if(isNewSession) {
> LookupService service = new LookupService();
> Future<InetAddress> future =
> service.getByName(request.getRemoteAddr());
> try {
> InetAddress ia = future.get(1L, TimeUnit.SECONDS);
> session.setAttribute("lastHostName", ia.getHostName());
>
> SessionListenerWrapper.getVisitors(session).put(session.getId(),
> ia.getHostName());
> } catch (Exception e) {
> logger.warn(e, e);
> }
> }
>
> Ez annyit csinál, hogy új session esetén lekérdezi, hogy honnan érkezett
> a kérés, majd eltárolja egy lastHostName nevű session attrubútumként.
> Annak Ă©rdekĂ©ben, hogy ez ne lassĂtsa le az oldal betöltĹ‘dĂ©sĂ©t egy
> LookupService osztályban indĂtok erre egy Ăşj szálat ami valami miatt nem
> fejeződik be soha. Azért vagyok értetlen, mert az svn szerint 2010.06.07
> -én került ez a ficsőr a kódba és valamiért most jött ki ez a hiba mikor
> a pool cserét belehegesztettem.
> Megmondom őszintén, hogy szálkezelés ügyben nem vagyok túl expert, ezt a
> kódot az internetről kukáztam anno.
>
> Ha esetleg ötlete van valakinek, hogy miért nem hal meg a szál a dolga
> végeztével akkor ne tartsa magában! ;-)
>
> Mariák Kálmán
>
>
Esetleg nem kéne mindig új LookupService-t meg ThreadPool-t létrehozni, úgy
vĂ©lem az meg fogja tartani a referenciát, Ăgy nem lesz GC-zve soha.
Zs
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20110225/25f4678b/attachment.html
További információk a(z) Javalist levelezőlistáról