java - How to fix c3p0 connection pool initializing exception? -


this exception occurred when used create connection pool using c3p0 .

jun 03, 2015 11:41:29 com.mchange.v2.log.mlog  info: mlog clients using java 1.4+ standard logging. jun 03, 2015 11:41:29 com.mchange.v2.c3p0.c3p0registry  info: initializing c3p0-0.9.5 [built 02-january-2015 13:25:04 -0500; debug? true; trace: 10] jun 03, 2015 11:41:29 com.mchange.v2.c3p0.management.activemanagementcoordinator  warning: c3p0registry mbean registered. means application using c3p0 undeployed, not pooleddatasources closed prior undeployment. may lead resource leaks on time. please take care close pooleddatasources. jun 03, 2015 11:41:29 com.mchange.v2.c3p0.impl.abstractpoolbackeddatasource  info: initializing c3p0 pool... com.mchange.v2.c3p0.combopooleddatasource [ acquireincrement -> 5, acquireretryattempts -> 30, acquireretrydelay -> 1000, autocommitonclose -> false, automatictesttable -> null, breakafteracquirefailure -> false, checkouttimeout -> 0, connectioncustomizerclassname -> null, connectiontesterclassname -> com.mchange.v2.c3p0.impl.defaultconnectiontester, contextclassloadersource -> caller, datasourcename -> 1hge136991f2dudczsq8hw|458d8adc, debugunreturnedconnectionstacktraces -> false, description -> null, driverclass -> com.mysql.jdbc.driver, extensions -> {}, factoryclasslocation -> null, forceignoreunresolvedtransactions -> false, forceusenameddriverclass -> false, identitytoken -> 1hge136991f2dudczsq8hw|458d8adc, idleconnectiontestperiod -> 300, initialpoolsize -> 3, jdbcurl -> jdbc:mysql://localhost:3306/ductoreh_patientdb, maxadministrativetasktime -> 0, maxconnectionage -> 0, maxidletime -> 0, maxidletimeexcessconnections -> 0, maxpoolsize -> 20, maxstatements -> 50, maxstatementsperconnection -> 0, minpoolsize -> 2, numhelperthreads -> 3, preferredtestquery -> select 1, privilegespawnedthreads -> false, properties -> {user=******, password=******}, propertycycle -> 0, statementcachenumdeferredclosethreads -> 0, testconnectiononcheckin -> false, testconnectiononcheckout -> true, unreturnedconnectiontimeout -> 0, useroverrides -> {}, usestraditionalreflectiveproxies -> false ] jun 03, 2015 11:42:02 org.apache.catalina.loader.webappclassloader loadclass info: illegal access: web application instance has been stopped already.  not load com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask.  eventual following stack trace caused error thrown debugging purposes attempt terminate thread caused illegal access, , has no functional impact. java.lang.illegalstateexception     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1612)     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571)     @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629)     @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44)     @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161)     @ java.util.timerthread.mainloop(timer.java:555)     @ java.util.timerthread.run(timer.java:505)  exception in thread "c3p0pooledconnectionpoolmanager[identitytoken->1hge136991f284clsmmfih|19faec40]-admintasktimer" java.lang.noclassdeffounderror: com/mchange/v2/resourcepool/basicresourcepool$asynctestidleresourcetask     @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629)     @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44)     @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161)     @ java.util.timerthread.mainloop(timer.java:555)     @ java.util.timerthread.run(timer.java:505) caused by: java.lang.classnotfoundexception: com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1720)     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571)     ... 5 more jun 03, 2015 11:42:18 org.apache.catalina.loader.webappclassloader loadclass info: illegal access: web application instance has been stopped already.  not load com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask.  eventual following stack trace caused error thrown debugging purposes attempt terminate thread caused illegal access, , has no functional impact. java.lang.illegalstateexception     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1612)     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571)     @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629)     @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44)     @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161)     @ java.util.timerthread.mainloop(timer.java:555)     @ java.util.timerthread.run(timer.java:505)  exception in thread "c3p0pooledconnectionpoolmanager[identitytoken->1hge136991f28gvv1q0gwo7|753c66d3]-admintasktimer" java.lang.noclassdeffounderror: com/mchange/v2/resourcepool/basicresourcepool$asynctestidleresourcetask     @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629)     @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44)     @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161)     @ java.util.timerthread.mainloop(timer.java:555)     @ java.util.timerthread.run(timer.java:505) caused by: java.lang.classnotfoundexception: com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1720)     @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571)     ... 5 more 

these classes i've used .

-----connection , connection pool---

public class dbconnection {     private static dbconnection     datasource;     private combopooleddatasource cpds;      private dbconnection() throws ioexception, sqlexception, propertyvetoexception {         cpds = new combopooleddatasource();         cpds.setdriverclass("com.mysql.jdbc.driver"); //loads jdbc driver         cpds.setjdbcurl("jdbc:mysql://localhost:3306/xxxxx");         cpds.setuser("root");         cpds.setpassword("");          // settings below optional -- c3p0 can work defaults         cpds.setminpoolsize(2);         cpds.setacquireincrement(5);         cpds.setmaxpoolsize(20);         cpds.setmaxstatements(50);         cpds.setidleconnectiontestperiod(300);                 cpds.settestconnectiononcheckout(true);         cpds.setpreferredtestquery("select 1");      }      public static dbconnection getinstance() throws ioexception, sqlexception, propertyvetoexception {         if (datasource == null) {             datasource = new dbconnection();             return datasource;         } else {             return datasource;         }     }      public connection getconnection() throws sqlexception {         return this.cpds.getconnection();     } } 

----interface-------

public interface dbinterface {     public list<userbean> getuserdata(); } 

----bean------

public class userbean {     private int iduser;     private string companyname;     private string country;     private string adressline1;     private string addressline2;     private string zip;     private string phone;     private string email;     private boolean istrial;     private timestamp datecreated;     private timestamp lastupdated;      /**      * @return iduser      */     public int getiduser()     {         return iduser;     }      /**      * @param iduser iduser set      */     public void setiduser(int iduser)     {         this.iduser = iduser;     }      /**      * @return companyname      */     public string getcompanyname()     {         return companyname;     }      /**      * @param companyname companyname set      */     public void setcompanyname(string companyname)     {         this.companyname = companyname;     }      /**      * @return country      */     public string getcountry()     {         return country;     }      /**      * @param country country set      */     public void setcountry(string country)     {         this.country = country;     }      /**      * @return adressline1      */     public string getadressline1()     {         return adressline1;     }      /**      * @param adressline1 adressline1 set      */     public void setadressline1(string adressline1)     {         this.adressline1 = adressline1;     }      /**      * @return addressline2      */     public string getaddressline2()     {         return addressline2;     }      /**      * @param addressline2 addressline2 set      */     public void setaddressline2(string addressline2)     {         this.addressline2 = addressline2;     }      /**      * @return zip      */     public string getzip()     {         return zip;     }      /**      * @param zip zip set      */     public void setzip(string zip)     {         this.zip = zip;     }      /**      * @return phone      */     public string getphone()     {         return phone;     }      /**      * @param phone phone set      */     public void setphone(string phone)     {         this.phone = phone;     }      /**      * @return email      */     public string getemail()     {         return email;     }      /**      * @param email email set      */     public void setemail(string email)     {         this.email = email;     }      /**      * @return istrial      */     public boolean isistrial()     {         return istrial;     }      /**      * @param istrial istrial set      */     public void setistrial(boolean istrial)     {         this.istrial = istrial;     }      /**      * @return datecreated      */     public timestamp getdatecreated()     {         return datecreated;     }      /**      * @param datecreated datecreated set      */     public void setdatecreated(timestamp datecreated)     {         this.datecreated = datecreated;     }      /**      * @return lastupdated      */     public timestamp getlastupdated()     {         return lastupdated;     }      /**      * @param lastupdated lastupdated set      */     public void setlastupdated(timestamp lastupdated)     {         this.lastupdated = lastupdated;     }   } 

---implementation class----

public class dbimpl implements dbinterface {      public list<userbean> getuserdata()     {         system.out.println("01");          statement statement=null;         connection connection=null;         resultset resultset=null;         list<userbean> beans=new arraylist<userbean>();          system.out.println("02");         try         {             system.out.println("03");             connection=dbconnection.getinstance().getconnection();             system.out.println("04");             string sql = "select * user istrial=true";             system.out.println("05");             statement=connection.createstatement();             system.out.println("06");             resultset=statement.executequery(sql.tolowercase());             system.out.println("07");             if(resultset.isbeforefirst())             {                 system.out.println("08");                 while(resultset.next()){                     system.out.println("09");                     userbean bean=new userbean();                     system.out.println("10");                      bean.setiduser(resultset.getint("iduser"));                     system.out.println(resultset.getint("iduser"));                      bean.setcompanyname(resultset.getstring("companyname"));                     system.out.println(resultset.getstring("companyname"));                      bean.setcountry(resultset.getstring("country"));                     bean.setadressline1(resultset.getstring("address_line1"));                     bean.setaddressline2(resultset.getstring("address_line2"));                     bean.setzip(resultset.getstring("zip"));                     bean.setphone(resultset.getstring("phone"));                     bean.setemail(resultset.getstring("email"));                     bean.setistrial(resultset.getboolean("istrial"));                     bean.setdatecreated(resultset.gettimestamp("datecreated"));                     bean.setlastupdated(resultset.gettimestamp("lastupdated"));                     beans.add(bean);                 }             }           } catch (exception ex)         {             ex.printstacktrace();         }finally{             try{                 if(resultset!=null){                     resultset.close();                 }                 if(statement!=null){                     statement.close();                 }                 if(connection!=null){                     connection.close();                 }             }catch(exception e){                 e.printstacktrace();             }         }          return beans;      }   } 

when run following servlet , got above exception .

---servlet---

public class test01 extends httpservlet {      /**      * processes requests both http <code>get</code> , <code>post</code>      * methods.      *      * @param request servlet request      * @param response servlet response      * @throws servletexception if servlet-specific error occurs      * @throws ioexception if i/o error occurs      */     protected void processrequest(httpservletrequest request, httpservletresponse response)             throws servletexception, ioexception     {         response.setcontenttype("text/html;charset=utf-8");         printwriter out = response.getwriter();         try         {             dbinterface bimpl=new dbimpl();                         list<userbean> userdata = bimpl.getuserdata();                          for(int i=0;i<userdata.size();i++){                 out.println(userdata.get(i).tostring());             }           }         {             out.close();         }     } 

in here want know how exception arised , why ? complete expected task bought me above error . , new comer connection pooling .

hi had same exception in 1 of application worked .below helpful links referred when faced similar issue.:

[1] https://forums.hibernate.org/viewtopic.php?t=924835&view=next&sid=abc532479937768dd0fd58e82a1f465f

[2] getting exception , application not able connect mysql database when using connection pooling (c3p0-0.9.1.2) hibernate 3.2?

during re-deployment classes unloaded, if fail close hibernate's sessionfactory these classnotfound errors. 1 of answer in #2 suggest can add custom servletcontextlistener handle contextdestroyed event.


Comments