You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by javanovice <gm...@yahoo.com> on 2012/10/24 23:37:20 UTC
Cannot create PoolableConnectionFactory error?
Hello Experts!
Can you please point me in the right direction? I am trying to simply get
the ConnectionPool to work. Below is my stack trace for error.
I am running: TomEE 1.5 on Solaris with mysql.
MySQL database is working fine. Ive checked the username/password several
times. Ive granted all privileges on the user of that table. I know the
username/password works - I am able to insert two records and error occurs.
I dont think it is a networking issue of any kind. I dont think it is a
login issue either.
I am confident I am closing the database objects properly. I followed a DAO
example provided by Bauke Scholtz
<http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html#DAOFactory>
. I create a connection, prepared statement, and resultset in that order.
Then I close them in reverse order: resultset, statement, and connection. I
am happy to post the specific methods if you like. Please advise on that.
*Do you have any suggestions on where I am going wrong?* I have full access
to my Tomcat server so I can retrieve any information you may need. Thank
you for your time and thoughts.
Here are my configuration snippets:
server.xml Resource Configuration
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/myNutrition"
auth="Container"
maxActive="100"
maxIdle="2"
maxWait="10000"
username="test"
password="password"
logAbandoned="true"
removeAbandoned="true"
removeAbandonedTimeout="60"
driverClassName="com.mysql.jdbc.Driver"
type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/myNutrition?autoReconnect=true"/>
</GlobalNamingResources>
web.xml
<resource-ref>
<description>Database Connection</description>
<res-ref-name>jdbc/myNutrition</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Stack Trace
Oct 24, 2012 9:13:35 PM com.corejsf.chapter3.QuizBean <init>
INFO: * * * * * QUIZ BEAN INITIATED * * * * *
Oct 24, 2012 9:13:35 PM com.nutrition.dao.tests.QuizQuestionTest logMe
INFO: DAOFactory successfully obtained:
com.nutrition.dao.DataSourceDAOFactory@a32dba
Oct 24, 2012 9:13:35 PM com.nutrition.dao.tests.QuizQuestionTest logMe
INFO: QuizQuestionDAO successfully obtained:
com.nutrition.dao.QuizQuestionDAOJDBC@10f2e76
Oct 24, 2012 9:13:39 PM com.corejsf.chapter3.QuizBean <init>
SEVERE: null
com.nutrition.dao.DAOException:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (Could not create connection to database server.
Attempted reconnect 3 times. Giving up.)
at
com.nutrition.dao.QuizQuestionDAOJDBC.create(QuizQuestionDAOJDBC.java:139)
at
com.nutrition.dao.tests.QuizQuestionTest.performTest(QuizQuestionTest.java:62)
at com.corejsf.chapter3.QuizBean.<init>(QuizBean.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at
org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableConstructor.java:89)
at
org.apache.webbeans.component.ManagedBean.createComponentInstance(ManagedBean.java:94)
at
org.apache.webbeans.component.AbstractInjectionTargetBean.createDefaultInstance(AbstractInjectionTargetBean.java:133)
at
org.apache.webbeans.component.AbstractInjectionTargetBean.createInstance(AbstractInjectionTargetBean.java:116)
at
org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:233)
at
org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:79)
at
org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:136)
at
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:180)
at
org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:81)
at
org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:167)
at
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:132)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:154)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
....
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (Could not create connection to database server.
Attempted reconnect 3 times. Giving up.)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at
com.nutrition.dao.DataSourceDAOFactory.getConnection(DAOFactory.java:188)
at
com.nutrition.dao.QuizQuestionDAOJDBC.create(QuizQuestionDAOJDBC.java:126)
... 63 more
Caused by:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could
not create connection to database server. Attempted reconnect 3 times.
Giving up.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at
com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2314)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2235)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at
org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at
org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
... 67 more
Caused by:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too
many connections
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
at
com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2412)
at
com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2253)
... 81 more
Oct 24, 2012 9:13:39 PM org.apache.catalina.core.ApplicationContext log
INFO: No state saving method defined, assuming default server state saving
--
View this message in context: http://openejb.979440.n4.nabble.com/Cannot-create-PoolableConnectionFactory-error-tp4658254.html
Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: Cannot create PoolableConnectionFactory error?
Posted by javanovice <gm...@yahoo.com>.
Thank you Romain,
You mentioned JTA, I am going to research that topic to learn its benefits
and purpose. If okay with you please keep thread open. I would like to
respond when I have more time.
Thanks again.
--
View this message in context: http://openejb.979440.n4.nabble.com/Cannot-create-PoolableConnectionFactory-error-tp4658254p4658275.html
Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: Cannot create PoolableConnectionFactory error?
Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi,
monitor your connections (Too many connections), maybe you badly manages
them (you used tomcat pool so you dont get JTA behavior == you have to
close them yourself)
*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*
2012/10/24 javanovice <gm...@yahoo.com>
> Hello Experts!
>
> Can you please point me in the right direction? I am trying to simply get
> the ConnectionPool to work. Below is my stack trace for error.
>
> I am running: TomEE 1.5 on Solaris with mysql.
>
> MySQL database is working fine. Ive checked the username/password several
> times. Ive granted all privileges on the user of that table. I know the
> username/password works - I am able to insert two records and error occurs.
> I dont think it is a networking issue of any kind. I dont think it is a
> login issue either.
>
> I am confident I am closing the database objects properly. I followed a DAO
> example provided by Bauke Scholtz
> <
> http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html#DAOFactory
> >
> . I create a connection, prepared statement, and resultset in that order.
> Then I close them in reverse order: resultset, statement, and connection. I
> am happy to post the specific methods if you like. Please advise on that.
>
> *Do you have any suggestions on where I am going wrong?* I have full access
> to my Tomcat server so I can retrieve any information you may need. Thank
> you for your time and thoughts.
>
>
> Here are my configuration snippets:
>
>
> server.xml Resource Configuration
>
> <GlobalNamingResources>
>
> <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase"
> description="User database that can be updated and saved"
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> pathname="conf/tomcat-users.xml" />
>
> <Resource name="jdbc/myNutrition"
> auth="Container"
> maxActive="100"
> maxIdle="2"
> maxWait="10000"
> username="test"
> password="password"
> logAbandoned="true"
> removeAbandoned="true"
> removeAbandonedTimeout="60"
> driverClassName="com.mysql.jdbc.Driver"
> type="javax.sql.DataSource"
>
> url="jdbc:mysql://localhost:3306/myNutrition?autoReconnect=true"/>
>
>
> </GlobalNamingResources>
>
> web.xml
>
> <resource-ref>
> <description>Database Connection</description>
> <res-ref-name>jdbc/myNutrition</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
>
>
>
> Stack Trace
>
> Oct 24, 2012 9:13:35 PM com.corejsf.chapter3.QuizBean <init>
> INFO: * * * * * QUIZ BEAN INITIATED * * * * *
> Oct 24, 2012 9:13:35 PM com.nutrition.dao.tests.QuizQuestionTest logMe
> INFO: DAOFactory successfully obtained:
> com.nutrition.dao.DataSourceDAOFactory@a32dba
> Oct 24, 2012 9:13:35 PM com.nutrition.dao.tests.QuizQuestionTest logMe
> INFO: QuizQuestionDAO successfully obtained:
> com.nutrition.dao.QuizQuestionDAOJDBC@10f2e76
> Oct 24, 2012 9:13:39 PM com.corejsf.chapter3.QuizBean <init>
> SEVERE: null
> com.nutrition.dao.DAOException:
> org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
> PoolableConnectionFactory (Could not create connection to database server.
> Attempted reconnect 3 times. Giving up.)
> at
> com.nutrition.dao.QuizQuestionDAOJDBC.create(QuizQuestionDAOJDBC.java:139)
> at
>
> com.nutrition.dao.tests.QuizQuestionTest.performTest(QuizQuestionTest.java:62)
> at com.corejsf.chapter3.QuizBean.<init>(QuizBean.java:37)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at
>
> org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableConstructor.java:89)
> at
>
> org.apache.webbeans.component.ManagedBean.createComponentInstance(ManagedBean.java:94)
> at
>
> org.apache.webbeans.component.AbstractInjectionTargetBean.createDefaultInstance(AbstractInjectionTargetBean.java:133)
> at
>
> org.apache.webbeans.component.AbstractInjectionTargetBean.createInstance(AbstractInjectionTargetBean.java:116)
> at
>
> org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:233)
> at
>
> org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:79)
> at
>
> org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:136)
> at
>
> org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:180)
> at
>
> org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:81)
> at
>
> org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:167)
> at
> org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:132)
> at
>
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:154)
> at
>
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
>
> ....
>
> Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
> PoolableConnectionFactory (Could not create connection to database server.
> Attempted reconnect 3 times. Giving up.)
> at
>
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
> at
>
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
> at
>
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
> at
> com.nutrition.dao.DataSourceDAOFactory.getConnection(DAOFactory.java:188)
> at
> com.nutrition.dao.QuizQuestionDAOJDBC.create(QuizQuestionDAOJDBC.java:126)
> ... 63 more
> Caused by:
> com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could
> not create connection to database server. Attempted reconnect 3 times.
> Giving up.
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
> at com.mysql.jdbc.Util.getInstance(Util.java:386)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
> at
> com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2314)
> at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2235)
> at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
> at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
> at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
> at
> com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
> at
>
> org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
> at
>
> org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
> at
>
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
> at
>
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
> ... 67 more
> Caused by:
> com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too
> many connections
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
> at com.mysql.jdbc.Util.getInstance(Util.java:386)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
> at
>
> com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
> at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)
> at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2412)
> at
> com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2253)
> ... 81 more
>
> Oct 24, 2012 9:13:39 PM org.apache.catalina.core.ApplicationContext log
> INFO: No state saving method defined, assuming default server state saving
>
>
>
>
>
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Cannot-create-PoolableConnectionFactory-error-tp4658254.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>