[Java lista] DBCP és szaporodó szálak
Zsombor
gzsombor at gmail.com
2011. Feb. 24., Cs, 22:59:33 CET
HellĂł,
ElĂ©g zavaros ez az egĂ©sz, nem Ă©rtem miĂ©rt kell ennyire tĂşlbonyolĂtani, azaz
ServletContext-be ConnectionPool, meg ConnectionPoolHandler osztályok.
Elsőre pl azt nem látom, hogy miért nem zárja le a filter szépen az
adatbázis kapcsolatokat legalább a request végén? Valamint miért akarja
minden request, párhuzamosan is ugyanazt a kapcsolatot használni? Ez elég
csúnya hibák forrása is lehet.
Ezt úgy szokták csinálni, hogy a Filter elején JNDI datasource-tól elkérnek
egy kapcsolatot, azt beállĂtják egy ThreadLocal változĂłba, majd a filter
tovább adja a vezérlést, s a végén amikor visszakapja, akkor meg törli a
threadlocal-t és lezárja a kapcsolatot.
Ăśdv
Zs
2011/2/24 Mariák Kálmán <sirkalmi at kalmiesemese.hu>
> Szervusztok!
>
> JVM bugra gyanakodtam ezĂ©rt frissĂtettem. A környezet amiben produkálja
> a tĂĽnetet:
> Solaris
> jdk 6u24
> tomcat 6.0.29
>
> META-INF/context.xml:
>
> <Context allowLinking="true">
> <Resource
> name="jdbc/f1live"
> auth="Container"
> type="javax.sql.DataSource"
> factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
> username="f1live"
> password="mx6345ndvwcsefi"
> driverClassName="oracle.jdbc.driver.OracleDriver"
> url="jdbc:oracle:thin:@10.0.2.111:1521:TSH1"
> maxWait="1000"
> removeAbandoned="true"
> maxActive="30"
> maxIdle="10"
> removeAbandonedTimeout="60"
> logAbandoned="true" />
> </Context>
>
> Van egy ConnectionPool osztályom, amely az alábbi felĂ©pĂtĂ©sű:
> * protected konstruktorában létrehozza a JNDI dateSource-t.
> * public static ConnectionPool getInstance metódusában megnézi, hogy a
> ServletContext-ben megtalálható-e a ConnectionPool, ha nem akkor
> pĂ©ldányosĂt, majd elhelyezzi abban.
> * getConnection a dataSource-ből kivesz egy kapcsolatot
> * putConnection meghĂvja a connection.close() metĂłdust
>
> Van egy ConnectionPoolHandler filter osztályom amely az init-ben
> meghĂvja a fent emlĂtett getInstance metĂłdust, illetve a doFilter-ben
> hozzáadja minden egyes request-hez.
>
> A felĂ©pĂtĂ©s sajnos adott volt, mert ebben a struktĂşrában egy másik pool
> üzemelt. A legissebb munkának azt véltem, ha ebbe hegesztem bele az
> újat. Elvileg működnie kellene csak ezek a rejtélyes szálak szaporodnak.
>
> Mi lehet a baj?
>
> Válaszokat nagyon köszi!
>
> Mariák Kálmán
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20110224/02ed81d6/attachment.html
További információk a(z) Javalist levelezőlistáról