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.
>