tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David kerber <dcker...@verizon.net>
Subject Re: SQLNestedException in Connection Pooling With Tomcat 7.0.39
Date Fri, 04 Apr 2014 12:29:11 GMT
On 4/4/2014 8:22 AM, Saurabh Saraswat wrote:
> Dear Dan,
>
> Thanks for your response!
>
> I have cross checked the user / password configuration. All is correct. As
> i mentioned that initially i am getting the object of connection but after
> some time (After few hits to database from application) my web app goes to
> slow and than it stops working i i got the below exception-
> *org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection,
> pool error Timeout waiting for idle object*
>
> I searched for this and find that reason is "maxWait" ms then i set it to
> -1 i think which tends to unlimited time. Still i am facing the same
> problem.
>
> Can you please let me know what others reason can cause this exception.

Sounds to me like you're either leaking connection objects and 
eventually run out of available connections in the pool, or your queries 
are taking so long that you run out of connections before you get any of 
them back.



>
>
> *Best Regards,    *
>
> *Saurabh Sarasvat*
>
>
>
>
> On Fri, Apr 4, 2014 at 5:16 PM, Daniel Mikusa <dmikusa@gopivotal.com> wrote:
>
>> On Apr 4, 2014, at 1:19 AM, Saurabh Saraswat <ssaraswat@pivotalindia.com>
>> wrote:
>>
>>> Dear All,
>>>
>>> I am doing connection pooling with tomcat 7.0.39 and MySQL 5.5.After
>>> searching on google and with your help i have done the below things.
>>> Even i am able to get the connection successfully using this but getting
>>> some trouble and exception.
>>> I am explaining you all steps done by me-
>>>
>>> *1. Have created a context.xml*
>>>
>>> I have put this context.xml in the META-INF folder of my application. but
>>> when i am deploying the web app to the server then it is not creating its
>>> copy to ${CATALINA-BASE}/conf/Catalina/locathost. Why is that so ?
>>
>> There are a couple possibilities.
>>
>> 1.) Look at "deployXML" attribute of your <Host> tag.  If this is set to
>> false, it will disable parsing the context XML descriptor embedded inside
>> the application.  This defaults to true, unless you are running with a
>> security manager, then it defaults to false.
>>
>>
>> http://tomcat.apache.org/tomcat-7.0-doc/config/host.html#Standard_Implementation
>>
>> 2.) Look at the "copyXML" attribute of both your <Host> and <Context>
>> tags.  This needs to be set to true, because the default in Tomcat 7 is
>> false.
>>
>>
>> http://tomcat.apache.org/tomcat-7.0-doc/config/host.html#Standard_Implementation
>>
>> http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Standard_Implementation
>>
>> If both attributes are set properly, you should see the
>> META-INF/context.xml file from your application copied to
>> "$CATALINA_BASE/conf/Catalina/localhost".
>>
>>>
>>> But when i am putting this context.xml in ${CATALINA-BASE}/conf folder
>> then
>>> its working.
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>>
>>> <Context>
>>>   <Resource name="jdbc/MaxDB" auth="Container" type="javax.sql.DataSource"
>>>                maxActive="100" maxIdle="30" maxWait="-1"
>>>                username="root" password="root"
>>> driverClassName="com.mysql.jdbc.Driver"
>>>
>>>
>> url="jdbc:MySQL://localhost:3306/MaxDB?zeroDateTimeBehavior=convertToNull"/>
>>>
>>> </Context>
>>>
>>> *2. Mapping in web.xml*
>>>
>>> <resource-ref>
>>> <description>MySql DataSource</description>
>>> <res-ref-name>jdbc/MaxDB</res-ref-name>
>>> <res-type>javax.sql.DataSource</res-type>
>>> <res-auth>Container</res-auth>
>>> </resource-ref>
>>>
>>> *3. Then on my servlet i am getting the object of connection like this-*
>>>
>>>     private static InitialContext ic;
>>>     protected static DataSource datasource;
>>>     private static Context ctx;
>>>
>>> public void doSomeStuff() throws DatabaseException
>>> {
>>>        Connection conn = null;
>>>        try
>>>        {
>>>           conn= getConnection();
>>>
>>>           .....................................
>>>          // do the required stuff
>>>
>>>        }
>>>        catch (Exception ex)
>>>         {
>>>
>>>         }
>>>         finally
>>>         {
>>>           conn.close();
>>>         }
>>>
>>> }
>>>
>>> *4. This is the method in my DAO Class i am using this method to get the
>>> object of connection at all of my servlet.*
>>>
>>>    protected static Connection getConnection() throws DatabaseException
>>> {
>>>         Connection conn = null;
>>>         try
>>>         {
>>>             ctx = new InitialContext();
>>>             datasource = (DataSource)
>>> ctx.lookup("java:/comp/env/jdbc/MaxDB");
>>>             conn = datasource.getConnection();
>>>         }
>>>         catch (Exception ex)
>>>         {
>>>
>>>         }
>>>         return conn;
>>>     }
>>>
>>> Using all this i am able to get connection. But if number of hits
>> increases
>>> to the server and Initially i got the the below exception-
>>>
>>> *org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection,
>>> pool error Timeout waiting for idle object*
>>
>> This means it was unable to get a connection from the pool within
>> "maxWait" ms.  There are a few reasons this could happen, but I'd guess
>> it's because of the next error that you reported.
>>
>>>
>>> Then i got the exception-
>>>
>>> *org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
>>> PoolableConnectionFactory (Access denied for user 'root'@'localhost'
>> (using
>>> password: YES))*
>>
>> Seems like you can't connect to the database.  Have you double checked
>> your user / password / host configuration info?
>>
>> Dan
>>
>>>
>>> Please assist me to know the root cause of the problem. I have searched
>> it
>>> on google and have read lots of forum but did not get the satisfactory
>>> answer.
>>>
>>> Hope that you all are expert and your suggestion will be valuable for me.
>>>
>>> Thanking You!
>>>
>>> *Best Regards,    *
>>>
>>> *Saurabh Sarasvat*
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message