Hello, i'm trying to achieve DBCP with tomcat 5.5.9. I thought to have done things right since the application could connect to db, but after a night that the application was running, in the morning, in logs, i saw a lot of "Cannot get a connection, pool exhausted" errors. This is my configuration:
SERVER.XML: <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener" /> <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30" /> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" liveDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> </Service> </Server> CONTEXT.XML: <Context path="/xx" docBase="xx" debug="5" reloadable="true" crossContext="true"> <Resource name="jdbc/xxDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="user" password="pass" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/xx_xx?autoReconnect=true"/> </Context> WEB.XML: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>xx</display-name> <listener> <listener-class>xxx.ApplicationWatch</listener-class> </listener> <servlet> <servlet-name>htmlcontent</servlet-name> <servlet-class>xxx.HtmlContentServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>htmlcontent</servlet-name> <url-pattern>/htmlcontent.view</url-pattern> </servlet-mapping> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/xxDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <security-constraint> <display-name>Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>xx</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Protected Area</realm-name> </login-config> <security-role> <role-name>xx</role-name> </security-role> </web-app> THE WAY I CONNECT TO DB (this is one of the 6-7 methods i have to do stuff on db): private static Connection con = null; private static Connection getConnection() throws Exception { // get context: provides the starting point for resolution of names Context ctx = new InitialContext(); if (ctx == null) { throw new Exception("No Context"); } // retrieve datasource DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/xxDB"); if (ds == null) { throw new Exception("No Datasource"); } // return db connection return ds.getConnection(); } public static void doSomething() { Statement stmt = null; try { // get connection con = getConnection(); if (con == null) { throw new Exception("No Connection"); } stmt = con.createStatement(); stmt.executeUpdate("UPDATE yy SET `zz`=0 WHERE `ww`='oo'"); } catch (Exception e1) { // } // close resources finally { try { stmt.close(); stmt = null; } catch (SQLException e2) { // } try { con.close(); con = null; } catch (SQLException e3) { // } } } Anybody have a clue of what can be? any help appreciated. ------------------------------------------------------ Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]