c3p0-users Mailing List for c3p0:JDBC DataSources/Resource Pools (Page 15)
Status: Beta
Brought to you by:
swaldman
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(4) |
Jul
(11) |
Aug
(2) |
Sep
(2) |
Oct
(17) |
Nov
(18) |
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(13) |
Feb
(12) |
Mar
(16) |
Apr
(16) |
May
(14) |
Jun
(27) |
Jul
(6) |
Aug
(4) |
Sep
(1) |
Oct
(11) |
Nov
(8) |
Dec
(8) |
2008 |
Jan
(5) |
Feb
(2) |
Mar
(12) |
Apr
(9) |
May
(4) |
Jun
(4) |
Jul
(1) |
Aug
(3) |
Sep
(3) |
Oct
(2) |
Nov
(15) |
Dec
(10) |
2009 |
Jan
(8) |
Feb
(3) |
Mar
(2) |
Apr
(8) |
May
(8) |
Jun
(15) |
Jul
(3) |
Aug
(8) |
Sep
(2) |
Oct
(9) |
Nov
(6) |
Dec
(15) |
2010 |
Jan
(2) |
Feb
(9) |
Mar
(1) |
Apr
(5) |
May
(19) |
Jun
(4) |
Jul
(4) |
Aug
(2) |
Sep
(3) |
Oct
(5) |
Nov
|
Dec
(2) |
2011 |
Jan
(5) |
Feb
(2) |
Mar
(1) |
Apr
(2) |
May
(5) |
Jun
(1) |
Jul
(5) |
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(3) |
Feb
(1) |
Mar
(1) |
Apr
|
May
(5) |
Jun
(8) |
Jul
(15) |
Aug
|
Sep
|
Oct
(8) |
Nov
(2) |
Dec
(5) |
2013 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(3) |
May
(4) |
Jun
|
Jul
(7) |
Aug
(6) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
(3) |
Feb
(3) |
Mar
(24) |
Apr
(5) |
May
(1) |
Jun
|
Jul
(7) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(2) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Carl H. <car...@gm...> - 2008-04-30 19:06:37
|
There shouldn't be any problem with the latest c3p0 and Hibernate 3.0.5. I don't know of anything that would hinder the two from working together. On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > Hi Carl, > > I don't used the latest version of c3p0 because the hibernate version > used in the app is 3.0.5. I don't know if there is any issue using > hibernate 3.0.5 with the newest c3p0, but that is a possible solution. > Do you know something about that? > > > > 2008/4/30 Carl Hall <car...@gm...>: > > > > > > > > > > Having the jars in the same class loader will make debugging this much > > easier. > > > > The class referenced is com/mchange/v2/resourcepool/BasicResourcePool$5 > > which points to an anonymous inner class. For that to not be there is > very > > odd. Have you tried using the latest c3p0 jars? Do you always get this > > error when trying to get a connection from c3p0? > > > > > > > > > > > > On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > > Hi Carl, > > > > > > the jars are in WEB-INF/lib in the web app war file. It looks strange > > > because the class com.mchange.v2.resourcepool.BasicResourcePool, which > > > should be in the same jar, is loaded as seen in the stacktrace. > > > > > > > > > Thanks > > > > > > > > > > > > 2008/4/30 Carl Hall <car...@gm...>: > > > > > > > > > > > > > > > Where do you have your c3p0 and hibernate jars located on the > server? > > The > > > > problem reads like a class loader issue. > > > > > > > > > > > > > > > > > > > > > > > > On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > My name is João Paulo, I'm a brazilliam developer. I'm working in > a > > > > > web application to tune its performance, and one of the tasks I've > > > > > performed were to use a connection properly (the app uses > hibernate). > > > > > When several web app's run in a single tomcat, the following error > > > > > happens: > > > > > > > > > > java.lang.NoClassDefFoundError: > > > > > com/mchange/v2/resourcepool/BasicResourcePool$5 > > > > > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:572) > > > > > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:902) > > > > > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:896) > > > > > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:231) > > > > > > > > > > > > com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:209) > > > > > > > > > > > > com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:64) > > > > > > > > > > > > org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35) > > > > > > > > > > > > org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) > > > > > > > > > > > > org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) > > > > > > > org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137) > > > > > > > org.hibernate.impl.SessionImpl.connection(SessionImpl.java:345) > > > > > > > > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:139) > > > > > > > > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:128) > > > > > > > > > > br.com.vetorweb.security.SecurityFilter.doFilter(SecurityFilter.java:50) > > > > > > br.com.vetorweb.pool.PoolFilter.doFilter(PoolFilter.java:106) > > > > > > > > > > The app uses hibernate 3.0.5 and c3p0 0.8.5.2. > > > > > > > > > > I've searched in google about the error above, but I found few > > > > > results. One I think that may be the same of mine is described in: > > > > > http://forum.hibernate.org/viewtopic.php?t=924774 > > > > > but no solution is mentioned. > > > > > > > > > > Has someone some helpful information about this error? > > > > > > > > > > > > > > > Thanks... sorry my bad english... :'( > > > > > > > > > > João Paulo > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > > > Don't miss this year's exciting event. There's still time to save > > $100. > > > > > Use priority code J8TL2D2. > > > > > > > > > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > > > _______________________________________________ > > > > > c3p0-users mailing list > > > > > c3p...@li... > > > > > https://lists.sourceforge.net/lists/listinfo/c3p0-users > > > > > > > > > > > > > > > > > > > > > |
From: J. P. M. <jpm...@gm...> - 2008-04-30 18:54:17
|
Hi Carl, I don't used the latest version of c3p0 because the hibernate version used in the app is 3.0.5. I don't know if there is any issue using hibernate 3.0.5 with the newest c3p0, but that is a possible solution. Do you know something about that? 2008/4/30 Carl Hall <car...@gm...>: > > > > > Having the jars in the same class loader will make debugging this much > easier. > > The class referenced is com/mchange/v2/resourcepool/BasicResourcePool$5 > which points to an anonymous inner class. For that to not be there is very > odd. Have you tried using the latest c3p0 jars? Do you always get this > error when trying to get a connection from c3p0? > > > > > > On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > Hi Carl, > > > > the jars are in WEB-INF/lib in the web app war file. It looks strange > > because the class com.mchange.v2.resourcepool.BasicResourcePool, which > > should be in the same jar, is loaded as seen in the stacktrace. > > > > > > Thanks > > > > > > > > 2008/4/30 Carl Hall <car...@gm...>: > > > > > > > > > > > Where do you have your c3p0 and hibernate jars located on the server? > The > > > problem reads like a class loader issue. > > > > > > > > > > > > > > > > > > On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > > > > > > > > > > > > > > > Hi, > > > > > > > > My name is João Paulo, I'm a brazilliam developer. I'm working in a > > > > web application to tune its performance, and one of the tasks I've > > > > performed were to use a connection properly (the app uses hibernate). > > > > When several web app's run in a single tomcat, the following error > > > > happens: > > > > > > > > java.lang.NoClassDefFoundError: > > > > com/mchange/v2/resourcepool/BasicResourcePool$5 > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:572) > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:902) > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:896) > > > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:231) > > > > > > > > com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:209) > > > > > > > > com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:64) > > > > > > > > org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35) > > > > > > > > org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) > > > > > > > > org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) > > > > > org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137) > > > > > org.hibernate.impl.SessionImpl.connection(SessionImpl.java:345) > > > > > > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:139) > > > > > > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:128) > > > > > > > br.com.vetorweb.security.SecurityFilter.doFilter(SecurityFilter.java:50) > > > > br.com.vetorweb.pool.PoolFilter.doFilter(PoolFilter.java:106) > > > > > > > > The app uses hibernate 3.0.5 and c3p0 0.8.5.2. > > > > > > > > I've searched in google about the error above, but I found few > > > > results. One I think that may be the same of mine is described in: > > > > http://forum.hibernate.org/viewtopic.php?t=924774 > > > > but no solution is mentioned. > > > > > > > > Has someone some helpful information about this error? > > > > > > > > > > > > Thanks... sorry my bad english... :'( > > > > > > > > João Paulo > > > > > > > > > ------------------------------------------------------------------------- > > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > > Don't miss this year's exciting event. There's still time to save > $100. > > > > Use priority code J8TL2D2. > > > > > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > > _______________________________________________ > > > > c3p0-users mailing list > > > > c3p...@li... > > > > https://lists.sourceforge.net/lists/listinfo/c3p0-users > > > > > > > > > > > > > > |
From: Carl H. <car...@gm...> - 2008-04-30 17:59:23
|
Having the jars in the same class loader will make debugging this much easier. The class referenced is com/mchange/v2/resourcepool/BasicResourcePool$5 which points to an anonymous inner class. For that to not be there is very odd. Have you tried using the latest c3p0 jars? Do you always get this error when trying to get a connection from c3p0? On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > Hi Carl, > > the jars are in WEB-INF/lib in the web app war file. It looks strange > because the class com.mchange.v2.resourcepool.BasicResourcePool, which > should be in the same jar, is loaded as seen in the stacktrace. > > > Thanks > > > > 2008/4/30 Carl Hall <car...@gm...>: > > > > > > > Where do you have your c3p0 and hibernate jars located on the > server? The > > problem reads like a class loader issue. > > > > > > > > > > > > On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > > > > > > > > > > > Hi, > > > > > > My name is João Paulo, I'm a brazilliam developer. I'm working in a > > > web application to tune its performance, and one of the tasks I've > > > performed were to use a connection properly (the app uses hibernate). > > > When several web app's run in a single tomcat, the following error > > > happens: > > > > > > java.lang.NoClassDefFoundError: > > > com/mchange/v2/resourcepool/BasicResourcePool$5 > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:572) > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:902) > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:896) > > > > > > com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:231) > > > > > > com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:209) > > > > > > com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:64) > > > > > > org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35) > > > > > > org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) > > > > > > org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) > > > > org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137) > > > > org.hibernate.impl.SessionImpl.connection(SessionImpl.java:345) > > > > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:139) > > > > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:128) > > > > > br.com.vetorweb.security.SecurityFilter.doFilter(SecurityFilter.java:50) > > > br.com.vetorweb.pool.PoolFilter.doFilter(PoolFilter.java:106) > > > > > > The app uses hibernate 3.0.5 and c3p0 0.8.5.2. > > > > > > I've searched in google about the error above, but I found few > > > results. One I think that may be the same of mine is described in: > > > http://forum.hibernate.org/viewtopic.php?t=924774 > > > but no solution is mentioned. > > > > > > Has someone some helpful information about this error? > > > > > > > > > Thanks... sorry my bad english... :'( > > > > > > João Paulo > > > > > > > ------------------------------------------------------------------------- > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > Don't miss this year's exciting event. There's still time to save > $100. > > > Use priority code J8TL2D2. > > > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > _______________________________________________ > > > c3p0-users mailing list > > > c3p...@li... > > > https://lists.sourceforge.net/lists/listinfo/c3p0-users > > > > > > > > |
From: Carl H. <car...@gm...> - 2008-04-30 17:47:04
|
Where do you have your c3p0 and hibernate jars located on the server? The problem reads like a class loader issue. On 4/30/08, João Paulo Mafra <jpm...@gm...> wrote: > > Hi, > > My name is João Paulo, I'm a brazilliam developer. I'm working in a > web application to tune its performance, and one of the tasks I've > performed were to use a connection properly (the app uses hibernate). > When several web app's run in a single tomcat, the following error > happens: > > java.lang.NoClassDefFoundError: > com/mchange/v2/resourcepool/BasicResourcePool$5 > > com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:572) > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:902) > > com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:896) > > com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:231) > > com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:209) > > com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:64) > > org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35) > > org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) > > org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) > org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137) > org.hibernate.impl.SessionImpl.connection(SessionImpl.java:345) > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:139) > > br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:128) > > br.com.vetorweb.security.SecurityFilter.doFilter(SecurityFilter.java:50) > br.com.vetorweb.pool.PoolFilter.doFilter(PoolFilter.java:106) > > The app uses hibernate 3.0.5 and c3p0 0.8.5.2. > > I've searched in google about the error above, but I found few > results. One I think that may be the same of mine is described in: > http://forum.hibernate.org/viewtopic.php?t=924774 > but no solution is mentioned. > > Has someone some helpful information about this error? > > > Thanks... sorry my bad english... :'( > > João Paulo > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users > |
From: J. P. M. <jpm...@gm...> - 2008-04-30 17:29:18
|
Hi, My name is João Paulo, I'm a brazilliam developer. I'm working in a web application to tune its performance, and one of the tasks I've performed were to use a connection properly (the app uses hibernate). When several web app's run in a single tomcat, the following error happens: java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$5 com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:572) com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:902) com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:896) com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:231) com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:209) com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:64) org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35) org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137) org.hibernate.impl.SessionImpl.connection(SessionImpl.java:345) br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:139) br.com.vetorweb.EntryPoint.getParametroscliente(EntryPoint.java:128) br.com.vetorweb.security.SecurityFilter.doFilter(SecurityFilter.java:50) br.com.vetorweb.pool.PoolFilter.doFilter(PoolFilter.java:106) The app uses hibernate 3.0.5 and c3p0 0.8.5.2. I've searched in google about the error above, but I found few results. One I think that may be the same of mine is described in: http://forum.hibernate.org/viewtopic.php?t=924774 but no solution is mentioned. Has someone some helpful information about this error? Thanks... sorry my bad english... :'( João Paulo |
From: Steve W. <swa...@mc...> - 2008-04-24 04:21:51
|
Hi. That only works if c3p0 cannot find either log4j or the jdk14 logging library. It configures c3p0's "fallback" logging scheme (to stderr), which is (and should be) very rarely used. Configure c3p0's log levels in whatever logging library you use. c3p0 generally uses the fully-qualified classname convention for logger names, so if you want to see everything c3p0 has to spew (which may be a lot), just set your logger to dump FINE (or FINEST) / DEBUG level info for all loggers starting with com.mchange. If you know what you're interested in, go ahead and filter by package name or fully qualified class name. smiles, Steve On Apr 24, 2008, at 12:09 AM, Madonesa sanjaya wrote: > Hi All, > > I want to log the FINE level log entries. I have added the following > entry into the mchange-log.properties > > com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=FINE > > But I still the FINE level logs are not logged. > > Could someone help me to configure the c3p0 logging correctly > > Best Regards, > Sanjaya. > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone_______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users ~oo~ Steve Waldman swa...@mc... |
From: Madonesa s. <san...@gm...> - 2008-04-24 04:09:48
|
Hi All, I want to log the FINE level log entries. I have added the following entry into the mchange-log.properties com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=FINE But I still the FINE level logs are not logged. Could someone help me to configure the c3p0 logging correctly Best Regards, Sanjaya. |
From: Madonesa s. <san...@gm...> - 2008-04-22 09:23:26
|
Hi, I'm getting apparent deadlock issue quite frequently with the following stack trace. What could be the possible reason for this kind of exception. pr 22, 2008 2:04:30 AM com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool <init> INFO: Initial Config : Min [5], Max [200], Start [5], increment [10], acq_retry_attempts [30], acq_retry_delay [1000], checkoutTimeout [] Apr 22, 2008 2:04:30 AM com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager INFO: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 10, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, au toCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 5000, connectionCustomizerClassName -> null, conn ectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1bqor9h7tvesgpz18wiikd|1abdac9, debugUnreturnedConnectionStackTr aces -> false, description -> null, driverClass -> oracle.jdbc.driver.OracleDriver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1bqor9h7tvesgpz18wiikd|1abdac9, idleConnectionTestPeriod -> 5, initialPoolSize -> 5, jdbcUrl -> jdbc:oracle:oci:@mbill, maxAdministrativeTa skTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 240, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 200, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 6, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> select 1 from dual, properties -> {user=*** ***, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditi onalReflectiveProxies -> false ] java.lang.UnsatisfiedLinkError: Native Library /home/oracle/app/oracle/product/10.2.0/client_1/lib/libocijdbc10.so already loaded in another classloader at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1525) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1485) at java.lang.Runtime.loadLibrary0(Runtime.java:788) at java.lang.System.loadLibrary(System.java:834) at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3135) at java.security.AccessController.doPrivileged(Native Method) at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:31 31) at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:221) Apr 22, 2008 2:04:50 AM com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run WARNING: com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@12786 8b -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks! Apr 22, 2008 2:04:50 AM com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run WARNING: com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@12786 8b -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 6 Active Threads: 0 Active Tasks: Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@5ac2e4 com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b1164d com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@2f46b8 com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1cc042f Best Regards, Sanjaya. |
From: Sean R. <sea...@ne...> - 2008-03-22 15:07:55
|
Oops. When cleaning up the code fragments, I messed up the code for the original logic. The original if statement should have been: if (msz < target_pool_size) The bug fix: if (!broken && msz < target_pool_size) Sean -----Original Message----- From: c3p...@li... [mailto:c3p...@li...] On Behalf Of Sean Rohead Sent: Saturday, March 22, 2008 8:26 AM To: Steve Waldman Cc: c3p...@li... Subject: Re: [c3p0-users] Connections not closed after calling close() Steve, Thanks for your detailed reply. With your help, I believe I have found the source of the problem and have a fix for it. In BasicResourcePool.doAcquire(), the following code checks to see if the asynchronously acquired connection should be added: synchronized(this) //assimilate resc if we do need it { msz = managed.size(); if (target_pool_size) assimilateResource(resc); else destroy = true; } I added a check to the if statement to make sure the pool had not been closed: if (!broken && msz < target_pool_size) This completely solved my problem. Once this was fixed, I actually realized that I don't need to explicitly block until the pool has finishing closing all connections -- when I execute the drop database statement, the database itself will block until all other connections have been closed. With the bug fixed, this now happens quickly after the call to pool.close(). Thanks again for all your help! Sean -----Original Message----- From: Steve Waldman [mailto:swa...@mc...] Sent: Friday, March 21, 2008 10:30 PM To: Sean Rohead Cc: c3p...@li... Subject: Re: [c3p0-users] Connections not closed after calling close() Sean, c3p0 is very asynchronous. That's its thing, why it performs well under heavy concurrent load. But, it has its downsides, and you're hitting one. c3p0 close() methods are asynchronous requests to clean up resources being used by a pool. c3p0 makes (and can make) no guarantee about the timing of the cleanup. c3p0 DataSources could, and probably should, provide a mechanism that notifies or allows threads to block until all resources owned by a DataSource have in fact been closed. But that isn't implemented. Waiting for the "resource destroyer" thread in BasicResourcePool.close() is insufficient. There are other Threads around. Thus far, I wouldn't call anything a race condition... there's a feature missing, but otherwise c3p0 performs as advertised. But you may have found a race condition, I think, not because a Connection might be acquired post close(), but because at least in a quick review, I don't see where such a Connection is destroyed if acquired successfully. Somewhere post acquisition [maybe assimilateResource()], the code should check to make sure that the pool is still valid, and immediately destroy any late-acquired Connection rather than adding it to a dead pool. I think I must be missing something, because this seems like an issue that would have been detected previously. But if it's for real, it's pretty bad, and I'll fix it very soon. Another easy change that would be helpful to you would be for ScatteredAcquireTask to check that the pool is still open prior to each attempt, as it checks the forceKillAcquires() flag. That would diminish the likelihood of an acquisition actually being attempted post-close dramatically. Again c3p0 can't guarantee it'll never happen -- if a Thread is mid- acquire and you call close(), nothing's gonna stop it from getting a Connection. But c3p0 can and should guarantee that Connection is immediately destroyed. It would be nice if pools could notify clients when all resources are closed as well, but that'd be a significant feature to implement. smiles, Steve On Mar 21, 2008, at 10:29 PM, Sean Rohead wrote: > Sorry to keep responding to my own thread, but I noticed that there > is a comment in the AcquireTask (line 1810) which reads as follows: > > //we don't want this call to be sync'd > //on the pool, so that resource acquisition > //does not interfere with other pool clients. > BasicResourcePool.this.doAcquire(); > > If resource acquisition isn't synchronized with the pool, doesn't > that mean that it could potentially happen either during or after > the pool close operation? > > > -----Original Message----- > From: c3p...@li... [mailto:c3p...@li... > ] On Behalf Of Sean Rohead > Sent: Friday, March 21, 2008 8:07 PM > To: c3p...@li... > Subject: Re: [c3p0-users] Connections not closed after calling close() > > It seems as though there is a race-condition in the somewhere in the > shutdown logic of BasicResourcePool. I added code to my application > to search for the "Resource Destroyer in BasicResourcePool.close()" > thread and wait until it completes. However, intermittently, the > pool will acquire another connection after I have shut down the pool > and the resource destroyer thread has completed. I added logging > statements to the JDBC driver which logged the stack trace of the > offending connection and I am certain it is from C3P0. I am > intermittently seeing the following stack trace *after* the resource > destroyer thread has exited. > > java.lang.Exception: Stack trace > at java.lang.Thread.dumpStack(Thread.java:1206) > at > net > .sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:51) > at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) > at > com > .mchange > .v2 > .c3p0 > .DriverManagerDataSource.getConnection(DriverManagerDataSource.java: > 119) > at > com > .mchange > .v2 > .c3p0 > .WrapperConnectionPoolDataSource > .getPooledConnection(WrapperConnectionPoolDataSource.java:143) > at > com > .mchange > .v2 > .c3p0 > .WrapperConnectionPoolDataSource > .getPooledConnection(WrapperConnectionPoolDataSource.java:132) > at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool > $ > 1PooledConnectionResourcePoolManager > .acquireResource(C3P0PooledConnectionPool.java:137) > at > com > .mchange > .v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java: > 1014) > at com.mchange.v2.resourcepool.BasicResourcePool.access > $800(BasicResourcePool.java:32) > at com.mchange.v2.resourcepool.BasicResourcePool > $AcquireTask.run(BasicResourcePool.java:1810) > at com.mchange.v2.async.ThreadPoolAsynchronousRunner > $PoolThread.run(ThreadPoolAsynchronousRunner.java:547) > > BTW, I have also tried using the ScatterAcquireTask, and it did not > resolve my problem. > > The reason I need to make absolutely sure all connections are closed > is because I am trying to drop the database and it fails if there > are any other connections open to the database. I would greatly > appreciate anyone's help in trying to diagnose the race-condition. > > Thanks! > > ________________________________________ > From: c3p...@li... [mailto:c3p...@li... > ] On Behalf Of Sean Rohead > Sent: Friday, March 21, 2008 1:30 PM > To: c3p...@li... > Subject: [c3p0-users] Connections not closed after calling close() > > I am using a ComboPooledDataSource with a minimum pool size of 1. I > am calling DataSources.destroy(dataSource) to close the pool. > However, after this call returns, there is still an active > connection to the database. It appears that the connections in the > pool are not closed when the pool is closed (at least not > synchronously). How can I force the pool to immediately close all > connections to the database or block until they have all been closed? > > Thanks! > > > ------------------------------------------------------------------------ - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users > > ------------------------------------------------------------------------ - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users ~oo~ Steve Waldman swa...@mc... ------------------------------------------------------------------------ - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ c3p0-users mailing list c3p...@li... https://lists.sourceforge.net/lists/listinfo/c3p0-users |
From: Sean R. <sea...@ne...> - 2008-03-22 14:25:48
|
Steve, Thanks for your detailed reply. With your help, I believe I have found the source of the problem and have a fix for it. In BasicResourcePool.doAcquire(), the following code checks to see if the asynchronously acquired connection should be added: synchronized(this) //assimilate resc if we do need it { msz = managed.size(); if (target_pool_size) assimilateResource(resc); else destroy = true; } I added a check to the if statement to make sure the pool had not been closed: if (!broken && msz < target_pool_size) This completely solved my problem. Once this was fixed, I actually realized that I don't need to explicitly block until the pool has finishing closing all connections -- when I execute the drop database statement, the database itself will block until all other connections have been closed. With the bug fixed, this now happens quickly after the call to pool.close(). Thanks again for all your help! Sean -----Original Message----- From: Steve Waldman [mailto:swa...@mc...] Sent: Friday, March 21, 2008 10:30 PM To: Sean Rohead Cc: c3p...@li... Subject: Re: [c3p0-users] Connections not closed after calling close() Sean, c3p0 is very asynchronous. That's its thing, why it performs well under heavy concurrent load. But, it has its downsides, and you're hitting one. c3p0 close() methods are asynchronous requests to clean up resources being used by a pool. c3p0 makes (and can make) no guarantee about the timing of the cleanup. c3p0 DataSources could, and probably should, provide a mechanism that notifies or allows threads to block until all resources owned by a DataSource have in fact been closed. But that isn't implemented. Waiting for the "resource destroyer" thread in BasicResourcePool.close() is insufficient. There are other Threads around. Thus far, I wouldn't call anything a race condition... there's a feature missing, but otherwise c3p0 performs as advertised. But you may have found a race condition, I think, not because a Connection might be acquired post close(), but because at least in a quick review, I don't see where such a Connection is destroyed if acquired successfully. Somewhere post acquisition [maybe assimilateResource()], the code should check to make sure that the pool is still valid, and immediately destroy any late-acquired Connection rather than adding it to a dead pool. I think I must be missing something, because this seems like an issue that would have been detected previously. But if it's for real, it's pretty bad, and I'll fix it very soon. Another easy change that would be helpful to you would be for ScatteredAcquireTask to check that the pool is still open prior to each attempt, as it checks the forceKillAcquires() flag. That would diminish the likelihood of an acquisition actually being attempted post-close dramatically. Again c3p0 can't guarantee it'll never happen -- if a Thread is mid- acquire and you call close(), nothing's gonna stop it from getting a Connection. But c3p0 can and should guarantee that Connection is immediately destroyed. It would be nice if pools could notify clients when all resources are closed as well, but that'd be a significant feature to implement. smiles, Steve On Mar 21, 2008, at 10:29 PM, Sean Rohead wrote: > Sorry to keep responding to my own thread, but I noticed that there > is a comment in the AcquireTask (line 1810) which reads as follows: > > //we don't want this call to be sync'd > //on the pool, so that resource acquisition > //does not interfere with other pool clients. > BasicResourcePool.this.doAcquire(); > > If resource acquisition isn't synchronized with the pool, doesn't > that mean that it could potentially happen either during or after > the pool close operation? > > > -----Original Message----- > From: c3p...@li... [mailto:c3p...@li... > ] On Behalf Of Sean Rohead > Sent: Friday, March 21, 2008 8:07 PM > To: c3p...@li... > Subject: Re: [c3p0-users] Connections not closed after calling close() > > It seems as though there is a race-condition in the somewhere in the > shutdown logic of BasicResourcePool. I added code to my application > to search for the "Resource Destroyer in BasicResourcePool.close()" > thread and wait until it completes. However, intermittently, the > pool will acquire another connection after I have shut down the pool > and the resource destroyer thread has completed. I added logging > statements to the JDBC driver which logged the stack trace of the > offending connection and I am certain it is from C3P0. I am > intermittently seeing the following stack trace *after* the resource > destroyer thread has exited. > > java.lang.Exception: Stack trace > at java.lang.Thread.dumpStack(Thread.java:1206) > at > net > .sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:51) > at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) > at > com > .mchange > .v2 > .c3p0 > .DriverManagerDataSource.getConnection(DriverManagerDataSource.java: > 119) > at > com > .mchange > .v2 > .c3p0 > .WrapperConnectionPoolDataSource > .getPooledConnection(WrapperConnectionPoolDataSource.java:143) > at > com > .mchange > .v2 > .c3p0 > .WrapperConnectionPoolDataSource > .getPooledConnection(WrapperConnectionPoolDataSource.java:132) > at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool > $ > 1PooledConnectionResourcePoolManager > .acquireResource(C3P0PooledConnectionPool.java:137) > at > com > .mchange > .v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java: > 1014) > at com.mchange.v2.resourcepool.BasicResourcePool.access > $800(BasicResourcePool.java:32) > at com.mchange.v2.resourcepool.BasicResourcePool > $AcquireTask.run(BasicResourcePool.java:1810) > at com.mchange.v2.async.ThreadPoolAsynchronousRunner > $PoolThread.run(ThreadPoolAsynchronousRunner.java:547) > > BTW, I have also tried using the ScatterAcquireTask, and it did not > resolve my problem. > > The reason I need to make absolutely sure all connections are closed > is because I am trying to drop the database and it fails if there > are any other connections open to the database. I would greatly > appreciate anyone's help in trying to diagnose the race-condition. > > Thanks! > > ________________________________________ > From: c3p...@li... [mailto:c3p...@li... > ] On Behalf Of Sean Rohead > Sent: Friday, March 21, 2008 1:30 PM > To: c3p...@li... > Subject: [c3p0-users] Connections not closed after calling close() > > I am using a ComboPooledDataSource with a minimum pool size of 1. I > am calling DataSources.destroy(dataSource) to close the pool. > However, after this call returns, there is still an active > connection to the database. It appears that the connections in the > pool are not closed when the pool is closed (at least not > synchronously). How can I force the pool to immediately close all > connections to the database or block until they have all been closed? > > Thanks! > > > ------------------------------------------------------------------------ - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users > > ------------------------------------------------------------------------ - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users ~oo~ Steve Waldman swa...@mc... |
From: Steve W. <swa...@mc...> - 2008-03-22 04:32:02
|
Sean, c3p0 is very asynchronous. That's its thing, why it performs well under heavy concurrent load. But, it has its downsides, and you're hitting one. c3p0 close() methods are asynchronous requests to clean up resources being used by a pool. c3p0 makes (and can make) no guarantee about the timing of the cleanup. c3p0 DataSources could, and probably should, provide a mechanism that notifies or allows threads to block until all resources owned by a DataSource have in fact been closed. But that isn't implemented. Waiting for the "resource destroyer" thread in BasicResourcePool.close() is insufficient. There are other Threads around. Thus far, I wouldn't call anything a race condition... there's a feature missing, but otherwise c3p0 performs as advertised. But you may have found a race condition, I think, not because a Connection might be acquired post close(), but because at least in a quick review, I don't see where such a Connection is destroyed if acquired successfully. Somewhere post acquisition [maybe assimilateResource()], the code should check to make sure that the pool is still valid, and immediately destroy any late-acquired Connection rather than adding it to a dead pool. I think I must be missing something, because this seems like an issue that would have been detected previously. But if it's for real, it's pretty bad, and I'll fix it very soon. Another easy change that would be helpful to you would be for ScatteredAcquireTask to check that the pool is still open prior to each attempt, as it checks the forceKillAcquires() flag. That would diminish the likelihood of an acquisition actually being attempted post-close dramatically. Again c3p0 can't guarantee it'll never happen -- if a Thread is mid- acquire and you call close(), nothing's gonna stop it from getting a Connection. But c3p0 can and should guarantee that Connection is immediately destroyed. It would be nice if pools could notify clients when all resources are closed as well, but that'd be a significant feature to implement. smiles, Steve On Mar 21, 2008, at 10:29 PM, Sean Rohead wrote: > Sorry to keep responding to my own thread, but I noticed that there > is a comment in the AcquireTask (line 1810) which reads as follows: > > //we don't want this call to be sync'd > //on the pool, so that resource acquisition > //does not interfere with other pool clients. > BasicResourcePool.this.doAcquire(); > > If resource acquisition isn't synchronized with the pool, doesn't > that mean that it could potentially happen either during or after > the pool close operation? > > > -----Original Message----- > From: c3p...@li... [mailto:c3p...@li... > ] On Behalf Of Sean Rohead > Sent: Friday, March 21, 2008 8:07 PM > To: c3p...@li... > Subject: Re: [c3p0-users] Connections not closed after calling close() > > It seems as though there is a race-condition in the somewhere in the > shutdown logic of BasicResourcePool. I added code to my application > to search for the "Resource Destroyer in BasicResourcePool.close()" > thread and wait until it completes. However, intermittently, the > pool will acquire another connection after I have shut down the pool > and the resource destroyer thread has completed. I added logging > statements to the JDBC driver which logged the stack trace of the > offending connection and I am certain it is from C3P0. I am > intermittently seeing the following stack trace *after* the resource > destroyer thread has exited. > > java.lang.Exception: Stack trace > at java.lang.Thread.dumpStack(Thread.java:1206) > at > net > .sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:51) > at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) > at > com > .mchange > .v2 > .c3p0 > .DriverManagerDataSource.getConnection(DriverManagerDataSource.java: > 119) > at > com > .mchange > .v2 > .c3p0 > .WrapperConnectionPoolDataSource > .getPooledConnection(WrapperConnectionPoolDataSource.java:143) > at > com > .mchange > .v2 > .c3p0 > .WrapperConnectionPoolDataSource > .getPooledConnection(WrapperConnectionPoolDataSource.java:132) > at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool > $ > 1PooledConnectionResourcePoolManager > .acquireResource(C3P0PooledConnectionPool.java:137) > at > com > .mchange > .v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java: > 1014) > at com.mchange.v2.resourcepool.BasicResourcePool.access > $800(BasicResourcePool.java:32) > at com.mchange.v2.resourcepool.BasicResourcePool > $AcquireTask.run(BasicResourcePool.java:1810) > at com.mchange.v2.async.ThreadPoolAsynchronousRunner > $PoolThread.run(ThreadPoolAsynchronousRunner.java:547) > > BTW, I have also tried using the ScatterAcquireTask, and it did not > resolve my problem. > > The reason I need to make absolutely sure all connections are closed > is because I am trying to drop the database and it fails if there > are any other connections open to the database. I would greatly > appreciate anyone's help in trying to diagnose the race-condition. > > Thanks! > > ________________________________________ > From: c3p...@li... [mailto:c3p...@li... > ] On Behalf Of Sean Rohead > Sent: Friday, March 21, 2008 1:30 PM > To: c3p...@li... > Subject: [c3p0-users] Connections not closed after calling close() > > I am using a ComboPooledDataSource with a minimum pool size of 1. I > am calling DataSources.destroy(dataSource) to close the pool. > However, after this call returns, there is still an active > connection to the database. It appears that the connections in the > pool are not closed when the pool is closed (at least not > synchronously). How can I force the pool to immediately close all > connections to the database or block until they have all been closed? > > Thanks! > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users ~oo~ Steve Waldman swa...@mc... |
From: Sean R. <sea...@ne...> - 2008-03-22 02:29:27
|
Sorry to keep responding to my own thread, but I noticed that there is a comment in the AcquireTask (line 1810) which reads as follows: //we don't want this call to be sync'd //on the pool, so that resource acquisition //does not interfere with other pool clients. BasicResourcePool.this.doAcquire(); If resource acquisition isn't synchronized with the pool, doesn't that mean that it could potentially happen either during or after the pool close operation? -----Original Message----- From: c3p...@li... [mailto:c3p...@li...] On Behalf Of Sean Rohead Sent: Friday, March 21, 2008 8:07 PM To: c3p...@li... Subject: Re: [c3p0-users] Connections not closed after calling close() It seems as though there is a race-condition in the somewhere in the shutdown logic of BasicResourcePool. I added code to my application to search for the "Resource Destroyer in BasicResourcePool.close()" thread and wait until it completes. However, intermittently, the pool will acquire another connection after I have shut down the pool and the resource destroyer thread has completed. I added logging statements to the JDBC driver which logged the stack trace of the offending connection and I am certain it is from C3P0. I am intermittently seeing the following stack trace *after* the resource destroyer thread has exited. java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1206) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:51) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137) at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014) at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) BTW, I have also tried using the ScatterAcquireTask, and it did not resolve my problem. The reason I need to make absolutely sure all connections are closed is because I am trying to drop the database and it fails if there are any other connections open to the database. I would greatly appreciate anyone's help in trying to diagnose the race-condition. Thanks! ________________________________________ From: c3p...@li... [mailto:c3p...@li...] On Behalf Of Sean Rohead Sent: Friday, March 21, 2008 1:30 PM To: c3p...@li... Subject: [c3p0-users] Connections not closed after calling close() I am using a ComboPooledDataSource with a minimum pool size of 1. I am calling DataSources.destroy(dataSource) to close the pool. However, after this call returns, there is still an active connection to the database. It appears that the connections in the pool are not closed when the pool is closed (at least not synchronously). How can I force the pool to immediately close all connections to the database or block until they have all been closed? Thanks! ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ c3p0-users mailing list c3p...@li... https://lists.sourceforge.net/lists/listinfo/c3p0-users |
From: Sean R. <sea...@ne...> - 2008-03-22 02:07:32
|
It seems as though there is a race-condition in the somewhere in the shutdown logic of BasicResourcePool. I added code to my application to search for the "Resource Destroyer in BasicResourcePool.close()" thread and wait until it completes. However, intermittently, the pool will acquire another connection after I have shut down the pool and the resource destroyer thread has completed. I added logging statements to the JDBC driver which logged the stack trace of the offending connection and I am certain it is from C3P0. I am intermittently seeing the following stack trace *after* the resource destroyer thread has exited. java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1206) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:51) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137) at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014) at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) BTW, I have also tried using the ScatterAcquireTask, and it did not resolve my problem. The reason I need to make absolutely sure all connections are closed is because I am trying to drop the database and it fails if there are any other connections open to the database. I would greatly appreciate anyone's help in trying to diagnose the race-condition. Thanks! ________________________________________ From: c3p...@li... [mailto:c3p...@li...] On Behalf Of Sean Rohead Sent: Friday, March 21, 2008 1:30 PM To: c3p...@li... Subject: [c3p0-users] Connections not closed after calling close() I am using a ComboPooledDataSource with a minimum pool size of 1. I am calling DataSources.destroy(dataSource) to close the pool. However, after this call returns, there is still an active connection to the database. It appears that the connections in the pool are not closed when the pool is closed (at least not synchronously). How can I force the pool to immediately close all connections to the database or block until they have all been closed? Thanks! |
From: Sean R. <sea...@ne...> - 2008-03-21 19:30:29
|
I am using a ComboPooledDataSource with a minimum pool size of 1. I am calling DataSources.destroy(dataSource) to close the pool. However, after this call returns, there is still an active connection to the database. It appears that the connections in the pool are not closed when the pool is closed (at least not synchronously). How can I force the pool to immediately close all connections to the database or block until they have all been closed? Thanks! |
From: Steve W. <swa...@mc...> - 2008-03-18 18:43:28
|
Brett, This has been reported, and almost certainly has something to do with interactions between classloaders cross deployment. If you look at the code, under ordinary circumstances (without thinking about interactions of initiations of multiple copies of the same class and multiple Threads), you'd think this NPE could never occur. I don't have a good grasp on exactly why it occurs, but usually it is reported in hot-redeploy settings. Especially since you're seeing out-of-memory errors, the main thing is to make absolutely sure that your c3p0 DataSources are all being destroyed prior to each redeployment. c3p0 DataSources have a close() method, or you can use the static DataSources.destroy(...). If DataSources from one deployment are not destroyed, threads will linger, and they will prevent the ClassLoader for the old deployment from being collected. In other words, bad. I hope this helps! smiles, Steve On Mar 17, 2008, at 4:48 AM, Brett Fishman wrote: > Hello Steve, > > Sorry for the intrusion - I've read some of your posts in the > Hibernate forum on similar issues, and I was wondering if you could > give a relative newbie a hand. ;-) > > Basically, I'm building a J2EE web app that uses Hibernate along > with c3p0. While testing the app (multiple deploy/redeploy cycles), > I see the > following error in the JBoss log happening more frequently with each > undeploy/redeploy cycle: > > 00:55:19,622 ERROR [STDERR] Exception in thread "Timer-3" > 00:55:19,622 ERROR [STDERR] java.lang.NullPointerException > 00:55:19,622 ERROR [STDERR] at com.mchange.v2.log.log4j.Log4jMLog > $Log4jMLogger.isLoggable(Log4jMLog.java:255) > 00:55:19,622 ERROR [STDERR] at > com.mchange.v2.resourcepool.BasicResourcePool > $CullTask.run(BasicResourcePool.java:1934) > 00:55:19,622 ERROR [STDERR] at > java.util.TimerThread.mainLoop(Timer.java:512) > 00:55:19,622 ERROR [STDERR] at java.util.TimerThread.run(Timer.java: > 462) > > > I believe this is a c3p0 issue - probably something I'm doing wrong > in configuring it. From reading other posts, it looks to me like > some resource > threads are staying alive between deployments, and eventually my JVM > runs out of memory. > > Is there an easy solution for this? Oh, it might be helpful to know > that I'm using Hibernate3, c3p0-0.9.1, and JBoss 4.2.2. > > > Many thanks for your time and assistance, > > Brett > ~oo~ Steve Waldman swa...@mc... |
From: Carl H. <car...@gm...> - 2008-03-17 17:00:44
|
We use a c3p0 with Oracle 10g in a system that has about 10k logins a day. We use testConnectionOnCheckin with testConnectionTestPeriod so that my connections don't have the overhead of test on checkout. Our connections are used frequently enough that these settings cover any problems with connections and clean them up. We use 'select 1 from dual' as my test query because it is the simplest query that can be requested from Oracle. We found a case where having a defined but empty test query caused the pool to go nuts but I'm not sure if this was caused by c3p0 or Spring (pool defined as bean in Spring). On Fri, Feb 29, 2008 at 4:16 AM, blacksheep <egi...@gm...> wrote: > > Hi > > I am using c3p0-0.9.1.2 with Oracle 10g. When db connection is lost, I > need > to restart my application because my app can not retrieve a connection > from > c3p0. Recently, one of my friend pointed me to testConnectionOnCheckout > confiuration option that is availiable in c3p0. > > What's the final verdict about testConnectionOnCheckout on Oracle. I have > read many contradictory statements about it. Some say > c3p0.idleConnectionTestPeriod should be used instead and some say > testConnectionOnCheckout can be used with a fast query set in like > preferredTestQuery=SELECT 1 from dual . > > I need your advice. > > Thanks, > > Mustafa > -- > View this message in context: > http://www.nabble.com/testConnectionOnCheckout-tp15753977p15753977.html > Sent from the c3p0 - users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users > |
From: Steve W. <swa...@mc...> - 2008-03-17 05:30:32
|
Hi, It's hard to say without more info, but are you sure you're reliably closing Connections? Here's an old tutorial on reliable resource cleanup... It's written in terms of a Hibernate Session, but replace Session with Connection and the idiom and issues are identical. Try looking this over, and let me know if the problem persists after you've implemented the idiom (and provide code snippets too). smiles, Steve > > If you have: > > Session mySession = ...; /however you initialize Sessions > > // do some hibernate work... > > mySession.close(); > > ...then every time an Exception occurs inside the hibernate work, the > close() is skipped. You MUST use Java's "reliable resource cleanup" > idiom if you want to avoid Connection leaks in a long-running server > process. That would be like this: > > > Session mySession = null; > try > { > mySession = ...; //however you initialize Sessions > > // do some hibernate work... > } > finally > { > try { if (mySession != null) mySession.close(); } > catch(Exception e) { log("Exception on close", e); } > } > > Note that if you are working with more than one closable resource, > you must make a SEPARATE, BEST ATTEMPT to close each resource: > > Session mySession = null; > InputStream is = null; > try > { > mySession = ...; //however you initialize Sessions > is = createControlFileInputStream(); > > // read from the input stream > // do some hibernate work, based on control file... > } > finally > { > try { if (is != null) is.close(); } > catch(Exception e) { log("Exception on close", e); } > > try { if (mySession != null) mySession.close(); } > catch(Exception e) { log("Exception on close", e); } > } > > Note that the closing of the two separate resources occurs in > distinct try/catch clocks (nested within the finally block). This is > important -- if you put them ion a single try/catch (or don't nest > any try/catch blocks), a failure to close() the first resource leads > to a failure to close() the second. > > By the way, none of this is c3p0-specific advice. It's widely > applicable good Java hygiene. Connection pool exhaustion is just one > of many ways a failure to close() resources property can manifest > itself. On Mar 13, 2008, at 5:41 AM, Vincents wrote: > > hi, > > i have a big problem with my java-app and c3p0 0.9.1.2. > > i use c3p0 without hibernate. > > when i use the connections from the pool they never return. > > in my source-code i make a stmt.close() and a connection.close() in a > finally-block. > i thought this is enough to send the connection back to the pool. > but the number of connections increase everytime i check a > connection out. > > how can i decrease the number of open connections that they will > never reach > my limit of maxPoolSize? > > thanks a lot > > > -- > View this message in context: http://www.nabble.com/connection-are-not-returned-to-the-pool-tp16024125p16024125.html > Sent from the c3p0 - users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users ~oo~ Steve Waldman swa...@mc... |
From: Rich B. <ric...@ho...> - 2008-03-13 19:08:36
|
I'm using: c3p0-0.9.1.2 hibernate 3.1.3 tomcat 5.19 for a servlet based web application. When I load test with 20 consecutive users, it deadlocks my application. I've tried a variety of c3p0 configurations to see if I can prevent this but to no avail. Our application is a database intensive app. We are not leaking connections. When it deadlocks, the last thing I see in the logs is that 24 out of 25 connections are available. I've tested with the default hibernate connection pool and it does not deadlock. (The reason we are trying c3p0 is because we want the app to transparently recover when the db goes down and comes back up.) Can someone recommend a c3p0 configuration for this environment? Our app will see up to 250 or more consecutive users so deadlocking at 20 is a non-starter. Can someone vouch that c3p0 can handle these kinds of loads? Thanks, Rich _________________________________________________________________ Need to know the score, the latest news, or you need your Hotmail®-get your "fix". http://www.msnmobilefix.com/Default.aspx |
From: Vincents <tko@GERMO.DE> - 2008-03-13 09:41:05
|
hi, i have a big problem with my java-app and c3p0 0.9.1.2. i use c3p0 without hibernate. when i use the connections from the pool they never return. in my source-code i make a stmt.close() and a connection.close() in a finally-block. i thought this is enough to send the connection back to the pool. but the number of connections increase everytime i check a connection out. how can i decrease the number of open connections that they will never reach my limit of maxPoolSize? thanks a lot -- View this message in context: http://www.nabble.com/connection-are-not-returned-to-the-pool-tp16024125p16024125.html Sent from the c3p0 - users mailing list archive at Nabble.com. |
From: chico c. <chi...@go...> - 2008-03-07 11:49:20
|
Hi, I am currently setting CP30 as the connection pooling framework for another open source project (mifos.org), and I would like to document a page on what settings should be used under different production environments. I googled around and reviewed previous mailing posts, but I couldn't find any suitable documentation on this subject. As anyone got any good references? I would also like to know what's the best approach in configuring C3P0? At the moment I'm setting it in hibernate.properties (e.g. hibernate.c3p0.max_size=20, etc), but would setting it as a datasource be a better approach? If so, what are the advantages? Cheers Chico |
From: blacksheep <egi...@gm...> - 2008-02-29 08:16:47
|
Hi I am using c3p0-0.9.1.2 with Oracle 10g. When db connection is lost, I need to restart my application because my app can not retrieve a connection from c3p0. Recently, one of my friend pointed me to testConnectionOnCheckout confiuration option that is availiable in c3p0. What's the final verdict about testConnectionOnCheckout on Oracle. I have read many contradictory statements about it. Some say c3p0.idleConnectionTestPeriod should be used instead and some say testConnectionOnCheckout can be used with a fast query set in like preferredTestQuery=SELECT 1 from dual . I need your advice. Thanks, Mustafa -- View this message in context: http://www.nabble.com/testConnectionOnCheckout-tp15753977p15753977.html Sent from the c3p0 - users mailing list archive at Nabble.com. |
From: smcardle <smc...@sp...> - 2008-02-07 11:17:40
|
Hi, I have configured c3p0 to work as a pool for Informix 10 connections. This all works OK until the DB is taken down for maintenance at night. After the DB is available again all my connections are dead and I cannot access the DB without restarting my server. I am using Spring to configure a data source and have set options for c3p0 to check the connections. Here is my Spring configuration <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:conf/ctmd/ctmd.properties</value> </property> </bean> <bean id="informixDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${standalone.dataSource.driverClassName}"/> <property name="jdbcUrl" value="${standalone.dataSource.url}"/> <property name="user" value="${standalone.dataSource.username}"/> <property name="password" value="${standalone.dataSource.password}"/> <property name="minPoolSize" value="10"/> <property name="acquireIncrement" value="5"/> <property name="maxPoolSize" value="50"/> <property name="maxStatementsPerConnection" value="12"/> <property name="testConnectionsOnCheckin" value="true"/> <property name="preferredTestQuery" value="SELECT COUNT(*) FROM wls_heartbeat"/> <property name="idleConnectionTestPeriod" value="10"/> </bean> </beans> And here is the stack trace when accessing the next day ####<Feb 7, 2008 11:45:29 AM CET> <Error> <ServletContext-/trademark> <oasv399> <devctm_s01> <[ACTIVE] ExecuteThread: '17' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1202381129888> <000000> <ctmd: System or internal error java.net.SocketException: Software caused connection abort: socket write error java.sql.SQLException: System or internal error java.net.SocketException: Software caused connection abort: socket write error at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:448) at com.informix.jdbc.IfxSqli.flip(IfxSqli.java:2491) at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2262) at com.informix.jdbc.IfxSqli.executeClose(IfxSqli.java:1851) at com.informix.jdbc.IfxResultSet.close(IfxResultSet.java:1589) at com.informix.jdbc.IfxPreparedStatement.executeQuery(IfxPreparedStatement.java:365) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76) at eu.ohim.ctmd.persistence.MarkDAO.findByPK(MarkDAO.java:34) at eu.ohim.ctmd.business.CtmdService.getTradeMarkVo(CtmdService.java:79) at eu.ohim.ctmd.business.CtmdService.getSingleMarkXml(CtmdService.java:54) at eu.ohim.ctmd.ui.CtmdController.getMark(CtmdController.java:94) at eu.ohim.ctmd.ui.CtmdController.service(CtmdController.java:58) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) > I thought maybe even if I cycled around the connections by making multiple requests they would eventualy leave the pool and be recreated as good connections, but even after 50 attemps this error still persists until I restart the server. Any help with resolving this would be great. Regards Steven McArdle -- View this message in context: http://www.nabble.com/java.sql.SQLException%3A-System-or-internal-error-java.net.SocketException%3A-Software-caused-connection-abort%3A-socket-write-error-tp15331769p15331769.html Sent from the c3p0 - users mailing list archive at Nabble.com. |
From: Jay W. <jw...@co...> - 2008-01-28 18:38:26
|
Regarding this error: WARN com.mchange.v2.c3p0.management.ActiveManagementCoordinator? - A C3P0Registry mbean is already registered. This probably means that an application using c3p0 was undeployed, but not all PooledDataSources? were closed prior to undeployment. This may lead to resource leaks over time. Please take care to close all PooledDataSources?. I've perused the forums and found a solution that involves setting the ActiveManagementCoordinater to a NullManagementCoordinate thru a c3p0.properties file. What wasn't clear was whether or not this solved the problem or hid the warning. We have three webapps deployed to the same tomcat server (5.0.28). Each uses hibernate with a c3p0 connection pool. So that's three different webapp classloaders within a VM. Is this a classloading issue within the connection pool itself or is it strictly isolated to the mbean? Depending on that answer, is there a fix on the way? Even in beta? Jay |
From: myarrow <ya...@be...> - 2008-01-22 18:48:12
|
Hello Steve and c3p0 community: This message appears persistenly: 02:49:21,102 DEBUG NewPooledConnection:566 - com.mchange.v2.c3p0.impl.NewPooledConnection@9c5167 closed by a client. java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:566) at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470) at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) I am using Hibenate 3.2 and c3p0-0.9.1.2. THE QUESTION: Is this significant or can this be ignored ? (i.e.: is connection pooling working properly ?) Note: Am using a basic c3p0 config in hibernate.cfg.xml: <property name="c3p0.acquire_increment">1</property> <property name="c3p0.min_size">5</property> <property name="c3p0.max_size">20</property> <property name="c3p0.timeout">300</property> <property name="c3p0.max_statements">50</property> <property name="c3p0.idle_test_period">3000</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> If indeed it is the case that these messages are debug only but do not indicate that pooling is not working, then the issue becomes one of: How to turn them off (evidently: "Logging-related parameters may be placed in your c3p0.properties file, in a file called mchange-log.properties" and "com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL" may be set to suppress these debug messages, according to the c3p0 documentation) or: How can I recompile c3p0 source (I tried under jdk1.6 but got errors) so that this particular message is suppressed, as I did find this message in the c3p0 source code. Right now I am using apache dbcp for the pooling, because the c3p0 DEBUG messages cast doubt on the integrity of c3p0's pooling. Am much obliged if you can help, Maurice Yarrow -- View this message in context: http://www.nabble.com/java.lang.Exception%3A-DEBUG----CLOSE-BY-CLIENT-STACK-TRACE-tp15025518p15025518.html Sent from the c3p0 - users mailing list archive at Nabble.com. |
From: William A. <wei...@gm...> - 2008-01-17 04:09:51
|
I got below messages when I compiled c3p0, even if I'm using JDK 1.5. All I want to do is have binary with debug option set to false and trace option set to 0. What should I do? Thanks. Buildfile: C:\Documents and Settings\cpu\workspace\c3p0\build.xml init: relproj: dist: init: compile: jar: init-debuggen: debuggen: subst: init-codegen: beangen: [echo] Some warnings are expected here. Don't worry about them. newproxygen: codegen: compile-common: [javac] Compiling 202 source files to C:\Documents and Settings\cpu\workspace\c3p0\build\classes [javac] C:\Documents and Settings\cpu\workspace\c3p0\build\codegen\com\mchange\v2\c3p0\impl\NewProxyConnection.java:1339: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] throw SqlUtils.toSQLException("You can't operate on a closed Connection!!!", exc); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\build\codegen\com\mchange\v2\c3p0\impl\NewProxyConnection.java:1347: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] throw parentPooledConnection.handleThrowable( exc ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\build\codegen\com\mchange\v2\c3p0\impl\NewProxyConnection.java:1349: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] else throw SqlUtils.toSQLException( exc ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\build\codegen\com\mchange\v2\c3p0\impl\NewProxyConnection.java:1365: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] throw SqlUtils.toSQLException("You can't operate on a closed Connection!!!", exc); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\build\codegen\com\mchange\v2\c3p0\impl\NewProxyConnection.java:1373: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] throw parentPooledConnection.handleThrowable( exc ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\build\codegen\com\mchange\v2\c3p0\impl\NewProxyConnection.java:1375: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] else throw SqlUtils.toSQLException( exc ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\NewPooledConnection.java:38: com.mchange.v2.c3p0.impl.NewPooledConnection is not abstract and does not override abstract method removeStatementEventListener( javax.sql.StatementEventListener) in javax.sql.PooledConnection [javac] public final class NewPooledConnection extends AbstractC3P0PooledConnection{ [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\async\ThreadPoolAsynchronousRunner.java:234: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Class<?> for a varargs call [javac] cast to java.lang.Class<?>[] for a non-varargs call and to suppress this warning [javac] Method m = Thread.class.getMethod("getStackTrace", null); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\async\ThreadPoolAsynchronousRunner.java:243: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call [javac] cast to java.lang.Object[] for a non-varargs call and to suppress this warning [javac] Object[] stackTraces = (Object[]) m.invoke( poolThread, null ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\ComboPooledDataSource.java:42: com.mchange.v2.c3p0.ComboPooledDataSource is not abstract and does not override abstract method isWrapperFor(java.lang.Class<?>) in java.sql.Wrapper [javac] public final class ComboPooledDataSource extends AbstractPoolBackedDataSource implements PooledDataSource, Serializable, Referenceable [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\DriverManagerDataSource.java:45: com.mchange.v2.c3p0.DriverManagerDataSource is not abstract and does not override abstract method isWrapperFor(java.lang.Class<?>) in java.sql.Wrapper [javac] public final class DriverManagerDataSource extends DriverManagerDataSourceBase implements DataSource [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnectionPoolManager.java:210: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call [javac] cast to java.lang.Object[] for a non-varargs call and to suppress this warning [javac] String uoas = (String) uom.invoke( cpds, null ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnectionPoolManager.java:375: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call [javac] cast to java.lang.Object[] for a non-varargs call and to suppress this warning [javac] Object readProp = m.invoke( cpds, null ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\JndiRefForwardingDataSource.java:47: com.mchange.v2.c3p0.JndiRefForwardingDataSource is not abstract and does not override abstract method isWrapperFor(java.lang.Class<?>) in java.sql.Wrapper [javac] final class JndiRefForwardingDataSource extends JndiRefDataSourceBase implements DataSource [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\PoolBackedDataSource.java:28: com.mchange.v2.c3p0.PoolBackedDataSource is not abstract and does not override abstract method isWrapperFor(java.lang.Class<?>) in java.sql.Wrapper [javac] public final class PoolBackedDataSource extends AbstractPoolBackedDataSource implements PooledDataSource [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\cfg\C3P0ConfigUtils.java:78: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call [javac] cast to java.lang.Object[] for a non-varargs call and to suppress this warning [javac] Object val = m.invoke( null, null ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\cfg\C3P0ConfigUtils.java:83: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call [javac] cast to java.lang.Object[] for a non-varargs call and to suppress this warning [javac] out.put( m.getName(), m.invoke( null, null ) ); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnection.java:39: com.mchange.v2.c3p0.impl.C3P0PooledConnection is not abstract and does not override abstract method removeStatementEventListener( javax.sql.StatementEventListener) in javax.sql.PooledConnection [javac] public final class C3P0PooledConnection extends AbstractC3P0PooledConnection [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnection.java:503: com.mchange.v2.c3p0.impl.C3P0PooledConnection.StatementProxyingSetManagedResultSetis not abstract and does not override abstract method updateNClob( java.lang.String,java.io.Reader) in java.sql.ResultSet [javac] private static class StatementProxyingSetManagedResultSet extends SetManagedResultSet [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnection.java:618: ProxyCallableStatement is not abstract and does not override abstract method setNClob(java.lang.String,java.io.Reader) in java.sql.CallableStatement [javac] class ProxyCallableStatement extends FilterCallableStatement implements C3P0ProxyStatement [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnection.java:655: ProxyPreparedStatement is not abstract and does not override abstract method setNClob(int,java.io.Reader) in java.sql.PreparedStatement [javac] class ProxyPreparedStatement extends FilterPreparedStatement implements C3P0ProxyStatement [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\C3P0PooledConnection.java:692: ProxyStatement is not abstract and does not override abstract method isPoolable() in java.sql.Statement [javac] class ProxyStatement extends FilterStatement implements C3P0ProxyStatement [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\NullStatementSetManagedResultSet.java:37: com.mchange.v2.c3p0.impl.NullStatementSetManagedResultSet is not abstract and does not override abstract method updateNClob(java.lang.String, java.io.Reader) in java.sql.ResultSet [javac] final class NullStatementSetManagedResultSet extends SetManagedResultSet [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\SetManagedDatabaseMetaData.java:30: com.mchange.v2.c3p0.impl.SetManagedDatabaseMetaData is not abstract and does not override abstract method getFunctionColumns(java.lang.String, java.lang.String,java.lang.String,java.lang.String) in java.sql.DatabaseMetaData [javac] final class SetManagedDatabaseMetaData extends FilterDatabaseMetaData [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\impl\SnatchFromSetResultSet.java:30: com.mchange.v2.c3p0.impl.SnatchFromSetResultSet is not abstract and does not override abstract method updateNClob(java.lang.String,java.io.Reader) in java.sql.ResultSet [javac] final class SnatchFromSetResultSet extends FilterResultSet [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\management\DynamicPooledDataSourceManagerMBean.java:343: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Class<?> for a varargs call [javac] cast to java.lang.Class<?>[] for a non-varargs call and to suppress this warning [javac] Method m = target.getClass().getMethod(mname, null); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\management\DynamicPooledDataSourceManagerMBean.java:344: warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call [javac] cast to java.lang.Object[] for a non-varargs call and to suppress this warning [javac] return m.invoke(target, null); [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\test\FreezableDriverManagerDataSource.java:49: com.mchange.v2.c3p0.test.FreezableDriverManagerDataSource is not abstract and does not override abstract method isWrapperFor(java.lang.Class<?>) in java.sql.Wrapper [javac] public final class FreezableDriverManagerDataSource extends DriverManagerDataSourceBase implements DataSource [javac] ^ [javac] C:\Documents and Settings\cpu\workspace\c3p0\src\classes\com\mchange\v2\c3p0\util\CloseReportingConnectionWrapper.java:29: com.mchange.v2.c3p0.util.CloseReportingConnectionWrapper is not abstract and does not override abstract method createStruct(java.lang.String, java.lang.Object[]) in java.sql.Connection [javac] public class CloseReportingConnectionWrapper extends FilterConnection [javac] ^ [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 21 errors [javac] 8 warnings BUILD FAILED C:\Documents and Settings\cpu\workspace\c3p0\build.xml:256: Compile failed; see the compiler error output for details. Total time: 5 seconds |