Re: DBCP abandoned trace - unable to understand the leak
Sorry for that. I changed it 300 seconds. On Wed, Nov 10, 2010 at 2:12 AM, Pid p...@pidster.com wrote: On 10/11/2010 06:51, sasidhar prabhakar wrote: After changing time out value now I am getting this problem org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object Shall we guess what you set it to? My guess is 7. Am I right? What else did you change? p On Tue, Nov 9, 2010 at 5:22 PM, Christopher Schultz ch...@christopherschultz.net wrote: Sasidhar, On 11/8/2010 12:31 AM, sasidhar prabhakar wrote: On Thu, Nov 4, 2010 at 9:10 PM, Christopher Schultz ch...@christopherschultz.net wrote: I have found that these exceptions can occur even when there is no leak. Specifically, if your SQL query takes a long time to run (that is, more than the ababdonedTimeout), another request to the connection pool complains about the connection and calls it abandoned. I think your right. Timeout I mentioned 30sec deafault is 300sec. This is my context.xml ?xml version=1.0 encoding=UTF-8? Context path= path is not allowed in context.xml: remove it. validationQuery=SELECT * from dual SELECT *? Wow. How about SELECT 1 FROM dual? testOnBorrow=true removeAbandoned=true removeAbandonedTimeout=30 That's a 30-second abandoned timeout. username=scott password=*** tiger, right? Technically speaking, the connection hasn't been leaked, but the connection pool can't really guess the reason why the connection hasn't been returned. Can you time your queries to see how long they take? Could you post your Resource configuration for your DataSource? For some queries it took more than 30 seconds, from getting data from ip_to_geo table, which has 3 million rows in it. That could be your problem: you should probably increase your removeAbandonedTimeout value to something more appropriate for your application. You might also want a dba to check out your queries and your database structure. 3 million rows isn't that much, even for Oracle :) Another note: I notice that you are using a DataSource object that survives for the life of the DAO object, and is even created by the object in its constructor. Every DAO has only one instance for the entire life of application. Is this correct approach. So Every thread accessing the same datasource object to get connection. It was just a recommendation which gives you flexibility: your webapp (or the container, etc.) has the freedom to discard and completely re-build the DataSource for your webapp if you always go to the JNDI context to get the DataSource. Otherwise, you will force a webapp restart just to get a new DataSource. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: DBCP abandoned trace - unable to understand the leak
On Wed, Nov 10, 2010 at 3:02 AM, Pid p...@pidster.com wrote: On 04/11/2010 12:04, sasidhar prabhakar wrote: dataSource = ConnectionUtil.getDataSource(); } Is the class you posted the only DAO? Could the leak be from another class? Some other DAOs are there. Which takes more than removeAbandonedTimeout. Except timeout I didn't find any unclosed connections, statements and results. Can you post ConnectionUtil.java? This is DAO class import java.sql.*; import javax.sql.*; import javax.naming.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class ConnectionUtil { private static Log log = LogFactory.getLog(ConnectionUtil.class); private static String dataSourceJNDIName = java:comp/env/jdbc/ds; private static DataSource dataSource; public static DataSource getDataSource() { if(dataSource == null) { try { log.info(In the ConnectionUtil:getDataSource():Befor calling lookup on context); Context ctx = new InitialContext(); dataSource = (DataSource)ctx.lookup(dataSourceJNDIName); ctx.close(); } catch(Exception e) { log.error(Can not create DataSource +e.getMessage()); throw new IllegalStateException(e.getMessage()); } } return dataSource; } public static void setDataSource(DataSource ds) { dataSource = ds; } public static Connection getConnection() throws SQLException { return getDataSource().getConnection(); } public static void beginTransaction(Connection conn) throws SQLException { conn.setAutoCommit(false); } public static void endTransaction(Connection conn) throws SQLException { conn.setAutoCommit(true); } public static void commit(Connection conn) throws SQLException { conn.commit(); } public static void rollback(Connection conn) throws SQLException { conn.rollback(); } public static void close(Connection conn) { if (conn != null) { try { if( !conn.isClosed() ) conn.close(); } catch(SQLException e) { log.error(SQL Exception caught while closing Connection :+ e.getMessage()); } } } public static void close(Statement stm) { if (stm != null) { try { stm.close(); } catch(SQLException e) { log.error(SQL Exception caught while closing Statement :+ e.getMessage()); } } } public static void close(ResultSet rs) { if (rs != null) { try { rs.close(); } catch(SQLException e) { log.error(SQL Exception caught while closing ResultSet :+ e.getMessage()); } } } } p
Re: DBCP abandoned trace - unable to understand the leak
When I get this problem, I tried the query in DB manually by this query *select count(*) from v$process;* * * The count some times very less, like if total connections are 200 it shows * * some times 60,40,162 like this. On Wed, Nov 10, 2010 at 3:20 AM, Mark Thomas ma...@apache.org wrote: On 10/11/2010 09:02, Pid wrote: On 04/11/2010 12:04, sasidhar prabhakar wrote: dataSource = ConnectionUtil.getDataSource(); } Is the class you posted the only DAO? Could the leak be from another class? Can you post ConnectionUtil.java? Given the SQL seen so far and that some queries take longer than 30s to complete, my money is on the the app trying to process more long running queries in parallel then the pool has connections available. With a low time-out (30s), the pool was abandoning the connections. With a long time-out (300s), the pool was becoming exhausted. If this analysis is correct, the fix is to address the root cause of the long running queries. Unless you are lucky and there is one poorly performing query, the chances are the application and/or database have architectural issues that will require significant work to put right. Web applications should not routinely be running queries as part of request processing that take in excess of a second or so to run. Mark - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: DBCP abandoned trace - unable to understand the leak
After changing time out value now I am getting this problem org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object On Tue, Nov 9, 2010 at 5:22 PM, Christopher Schultz ch...@christopherschultz.net wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Sasidhar, On 11/8/2010 12:31 AM, sasidhar prabhakar wrote: On Thu, Nov 4, 2010 at 9:10 PM, Christopher Schultz ch...@christopherschultz.net wrote: I have found that these exceptions can occur even when there is no leak. Specifically, if your SQL query takes a long time to run (that is, more than the ababdonedTimeout), another request to the connection pool complains about the connection and calls it abandoned. I think your right. Timeout I mentioned 30sec deafault is 300sec. This is my context.xml ?xml version=1.0 encoding=UTF-8? Context path= path is not allowed in context.xml: remove it. validationQuery=SELECT * from dual SELECT *? Wow. How about SELECT 1 FROM dual? testOnBorrow=true removeAbandoned=true removeAbandonedTimeout=30 That's a 30-second abandoned timeout. username=scott password=*** tiger, right? Technically speaking, the connection hasn't been leaked, but the connection pool can't really guess the reason why the connection hasn't been returned. Can you time your queries to see how long they take? Could you post your Resource configuration for your DataSource? For some queries it took more than 30 seconds, from getting data from ip_to_geo table, which has 3 million rows in it. That could be your problem: you should probably increase your removeAbandonedTimeout value to something more appropriate for your application. You might also want a dba to check out your queries and your database structure. 3 million rows isn't that much, even for Oracle :) Another note: I notice that you are using a DataSource object that survives for the life of the DAO object, and is even created by the object in its constructor. Every DAO has only one instance for the entire life of application. Is this correct approach. So Every thread accessing the same datasource object to get connection. It was just a recommendation which gives you flexibility: your webapp (or the container, etc.) has the freedom to discard and completely re-build the DataSource for your webapp if you always go to the JNDI context to get the DataSource. Otherwise, you will force a webapp restart just to get a new DataSource. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkzZ180ACgkQ9CaO5/Lv0PDicACfZ/rv+FN8cT8JATK2ZlGYgWUW CPoAn2/j0NO6af4RuL9t7j4yH9wXP+bW =l181 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: DBCP abandoned trace - unable to understand the leak
On Thu, Nov 4, 2010 at 9:10 PM, Christopher Schultz ch...@christopherschultz.net wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Sasidhar, On 11/4/2010 8:34 AM, sasidhar prabhakar wrote: The class is fine but in log it is showing this one. Here everything closed fine. Then why it is showing like this DBCP object created 2010-11-04 11:07:59 by the following code was never closed: I have found that these exceptions can occur even when there is no leak. Specifically, if your SQL query takes a long time to run (that is, more than the ababdonedTimeout), another request to the connection pool complains about the connection and calls it abandoned. I think your right. Timeout I mentioned 30sec deafault is 300sec. This is my context.xml ?xml version=1.0 encoding=UTF-8? Context path= Resource accessToUnderlyingConnectionAllowed=true auth=Container driverClassName=oracle.jdbc.OracleDriver maxActive=200 maxIdle=10 maxWait=8000 validationQuery=SELECT * from dual testOnBorrow=true removeAbandoned=true removeAbandonedTimeout=30 logAbandoned=true name=jdbc/ds password=*** type=javax.sql.DataSource url=jdbc:oracle:thin:@localhost.localdomain:1521:amulyam username=scott/ Resource auth=Container name=mail/Session type=javax.mail.Session mail.smtp.host=localhost/ /Context Technically speaking, the connection hasn't been leaked, but the connection pool can't really guess the reason why the connection hasn't been returned. Can you time your queries to see how long they take? Could you post your Resource configuration for your DataSource? For some queries it took more than 30 seconds, from getting data from ip_to_geo table, which has 3 million rows in it. Another note: I notice that you are using a DataSource object that survives for the life of the DAO object, and is even created by the object in its constructor. Every DAO has only one instance for the entire life of application. Is this correct approach. So Every thread accessing the same datasource object to get connection.
Re: DBCP abandoned trace - unable to understand the leak
We are using struts and following DAO pattern. This is the code public String getCountryName(long ipSum){ String name = null; Connection connection = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ connection = dataSource.getConnection(); pstmt = connection.prepareStatement(select country_name from ip_to_geo where ? between ip_from and ip_to); pstmt.setString(1, +ipSum); rs = pstmt.executeQuery(); if( rs.next() ){ name = rs.getString(1); } }catch(Exception ex){ ex.printStackTrace(); }finally{ try{if( rs!=null)rs.close();}catch(SQLException ex){ex.printStackTrace();} try {if( pstmt != null)pstmt.close();} catch (SQLException ex) {ex.printStackTrace();} try {if( connection != null)connection.close();} catch (SQLException ex) {ex.printStackTrace();} connection = null; pstmt = null; rs = null; } return name; }
Re: DBCP abandoned trace - unable to understand the leak
Yes it is. I have one doubt. Is abandoned trace really shows the code where the connection established and did not close it. Is remove abandoned, will close the connection after time out and places it back to pool. Is it really closes the connection? for example I configured pool with 200 connections. If 50 connections are leaked, now remove abandoned will places these 50 connections back to pool or pool left with 150 connections. please clarify my doubts.
Re: DBCP abandoned trace - unable to understand the leak
On Thu, Nov 4, 2010 at 4:24 PM, Mark Thomas ma...@apache.org wrote: On 04/11/2010 05:01, sasidhar prabhakar wrote: Is abandoned trace really shows the code where the connection established and did not close it. Yes. The code I posted above is clean and properly closed all of resources. Is there any problem with the code shown above. anybody help me to solve this problem.
Re: DBCP abandoned trace - unable to understand the leak
The complete class has only two methods. And class is import connection.ConnectionUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Calendar; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * * @author oracle */ public class SponserSummaryDAO { private Log log = LogFactory.getLog(SponserSummaryDAO.class); private static final String updateClicksQuery = update sponser_summary set sp_sum_clicks = sp_sum_clicks + 1 where sp_sum_sid = ? and sp_sum_date = trunc(sysdate); private static final String getCityIdQuery = select c_id from cities where lower(c_name) like lower(?); private static final String updateImpByCityQuery = update sponser_summ_by_cities set sp_sum_c_imp = sp_sum_c_imp + 1 where sp_sum_c_sid = ? and lower(sp_sum_c_city) = ?; private DataSource dataSource; public SponserSummaryDAO(){ log.info(^Cretion of SponserSummaryDAO : +Calendar.getInstance().getTime().toString()); dataSource = ConnectionUtil.getDataSource(); } public void updateClicks(int sid){ Connection connection = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ connection = dataSource.getConnection(); pstmt = connection.prepareStatement(updateClicksQuery); pstmt.setInt(1, sid ); int updated = pstmt.executeUpdate(); log.info( sponser clicks updated val : +updated); }catch(Exception ex){ ex.printStackTrace(); log.error(ex.getMessage()); }finally{ try {if( pstmt != null)pstmt.close();} catch (SQLException ex) {ex.printStackTrace();} try {if( connection != null)connection.close();} catch (SQLException ex) {ex.printStackTrace();} connection = null; pstmt = null; } } public void updateImpByCity(int sid, String city){ Connection connection = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ connection = dataSource.getConnection(); pstmt = connection.prepareStatement(updateImpByCityQuery); pstmt.setInt(1, sid ); pstmt.setString(2, city.toLowerCase()); int updated = pstmt.executeUpdate(); log.info( sponser imp by city updated val : +updated); }catch(Exception ex){ ex.printStackTrace(); log.error(ex.getMessage()); }finally{ try {if( pstmt != null)pstmt.close();} catch (SQLException ex) {ex.printStackTrace();} try {if( connection != null)connection.close();} catch (SQLException ex) {ex.printStackTrace();} connection = null; pstmt = null; } } public String getCityId(String city){ String cityID = null; Connection connection = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ connection = dataSource.getConnection(); pstmt = connection.prepareStatement(getCityIdQuery); pstmt.setString(1, %+city+%); rs = pstmt.executeQuery(); if( rs.next() ){ cityID = rs.getString(1); }else{ cityID = -1; } log.info( city ID : +cityID); }catch(Exception ex){ ex.printStackTrace(); log.error(ex.getMessage()); }finally{ try{if( rs!=null)rs.close();}catch(SQLException ex){ex.printStackTrace();} try {if( pstmt != null)pstmt.close();} catch (SQLException ex) {ex.printStackTrace();} try {if( connection != null)connection.close();} catch (SQLException ex) {ex.printStackTrace();} connection = null; pstmt = null; rs = null; } return cityID; } public String getCountryName(long ipSum){ String name = null; Connection connection = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ connection = dataSource.getConnection(); pstmt = connection.prepareStatement(select country_name from ip_to_geo where ? between ip_from and ip_to); pstmt.setString(1, +ipSum); rs = pstmt.executeQuery(); if( rs.next() ){ name = rs.getString(1); } }catch(Exception ex){ ex.printStackTrace(); }finally{ try{if( rs!=null)rs.close();}catch(SQLException ex){ex.printStackTrace();} try {if( pstmt != null)pstmt.close();} catch (SQLException ex) {ex.printStackTrace();} try {if( connection != null)connection.close();} catch (SQLException ex) {ex.printStackTrace();} connection = null; pstmt = null; rs = null; } return name; } protected void finalize() throws Throwable { log.info(^Finalize of SponserSummaryDAO : +Calendar.getInstance().getTime().toString()); } }
Re: DBCP abandoned trace - unable to understand the leak
The class is fine but in log it is showing this one. Here everything closed fine. Then why it is showing like this DBCP object created 2010-11-04 11:07:59 by the following code was never closed: java.lang.Exception at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java:160) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:86) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) *at SponserSummaryDAO.getCountryName(SponserSummaryDAO.java:304) at SponserSummaryBO.getCountryName(SponserSummaryBO.java:61) at SignUpAction.execute(SignUpAction.java:52)* at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at RedirectFilter.doFilter(RedirectFilter.java:56) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:595) If anything else, what are the possible connection leaks may occur in java.
DBCP abandoned trace - unable to understand the leak
hi, We are running application on Apache Tomcat Version 6.0.29 Java Version 1.5.0_22 CentOS 5 I didn't understand below, in DAO class everything fine. Connection,PreparedStatement,ResultSet are all declared method local, and closed properly. Please guide me to solve the problem. DBCP object created 2010-11-04 11:07:59 by the following code was never closed: java.lang.Exception at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java:160) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:86) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) *at SponserSummaryDAO.getCountryName(SponserSummaryDAO.java:304)* * at SponserSummaryBO.getCountryName(SponserSummaryBO.java:61) at SignUpAction.execute(SignUpAction.java:52)* at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at RedirectFilter.doFilter(RedirectFilter.java:56) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:595) Thanks.
pool error timeout waiting for idle object
My application sometimes responding very slow. When I observed the logs, it is showing these lines Cannot get a connection, pool error Timeout waiting for idle object. The maximum connections on oracle I set 150. When I query for present sessions or process it is showing 70 to 80 and decreasing to minimum of 52, sometimes it grows up to 100 above also and it decreasing back to minimum. In tomcat I configured max threads 300. context.xml is Context path= reloadable=true Resource accessToUnderlyingConnectionAllowed=true auth=Container driverClassName=oracle.jdbc.OracleDriver maxActive=200 maxIdle=10 maxWait=8000 validationQuery=SELECT * from dual testOnBorrow=true removeAbandoned=true removeAbandonedTimeout=30 logAbandoned=true name=jdbc/ds password= type=javax.sql.DataSource url= username=/ Resource auth=Container name=mail/Session type=javax.mail.Session mail.smtp.host=localhost/ /Context For few days I am getting this problem.
Re: pool error timeout waiting for idle object
yes I can get through SQLDeveloper. On Thu, Sep 9, 2010 at 12:32 PM, Wesley Acheson wesley.ache...@gmail.comwrote: On Thu, Sep 9, 2010 at 8:57 AM, sasidhar prabhakar sasidhar1...@gmail.com wrote: My application sometimes responding very slow. When I observed the logs, it is showing these lines Cannot get a connection, pool error Timeout waiting for idle object. The maximum connections on oracle I set 150. When I query for present sessions or process it is showing 70 to 80 and decreasing to minimum of 52, sometimes it grows up to 100 above also and it decreasing back to minimum. In tomcat I configured max threads 300. context.xml is Context path= reloadable=true Resource accessToUnderlyingConnectionAllowed=true auth=Container driverClassName=oracle.jdbc.OracleDriver maxActive=200 maxIdle=10 maxWait=8000 validationQuery=SELECT * from dual testOnBorrow=true removeAbandoned=true removeAbandonedTimeout=30 logAbandoned=true name=jdbc/ds password= type=javax.sql.DataSource url= username=/ Resource auth=Container name=mail/Session type=javax.mail.Session mail.smtp.host=localhost/ /Context For few days I am getting this problem. More than likely a problem with your Oracle. When you can't get the sessions are you able to get them through another means such as toad or SQLDeveloper. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: pool error timeout waiting for idle object
tomcat - 6 oracle 11g centos 5 jdbc type 4 the thread dump some of threads are http-80-262 daemon prio=1 tid=0x73048fd8 nid=0x268a waiting for monitor entry [0x6f975000..0x6f9760b0] at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) - waiting to lock 0x87287c00 (a org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:84) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at com.common.dao.LoginDAO.login(LoginDAO.java:87) at com.common.bo.LoginBO.login(LoginBO.java:28) at com.common.actionform.LoginForm.validate(LoginForm.java:54) at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:945) http-80-259 daemon prio=1 tid=0x71903f60 nid=0x2687 waiting for monitor entry [0x6fbfa000..0x6fbfb030] at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) - waiting to lock 0x87287c00 (a org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:84) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at com.cont.quiz.dao.QuizDAO.updateUserSelectionOfQOption(QuizDAO.java:320) at com.cont.quiz.bo.QuizBO.updateUserSelectionOfQOption(QuizBO.java:51) at com.cont.quiz.action.AnsOfQuizQuestionAction.execute(AnsOfQuizQuestionAction.java:61) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) http-80-257 daemon prio=1 tid=0x7aafeb68 nid=0x242b waiting for monitor entry [0x6fc7b000..0x6fc7beb0] at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) - waiting to lock 0x87287c00 (a org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:84) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at com.stat.dao.StatisticsDAO.updateVisitor(StatisticsDAO.java:75) at com.stat.bo.StatisticsBO.updateVisitor(StatisticsBO.java:27) at org.apache.jsp.jsp.common_jsp._jspService(main_jsp.java:650) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) On Thu, Sep 9, 2010 at 2:31 PM, Mark Thomas ma...@apache.org wrote: On 09/09/2010 07:57, sasidhar prabhakar wrote: My application sometimes responding very slow. When I observed the logs, it is showing these lines Cannot get a connection, pool error Timeout waiting for idle object. The maximum connections on oracle I set 150. snip/ maxActive=200 That doesn't look right. There are lots of things that could be going on here and you have provided very little in the way of information. Questions it would be helpful to have the answers to include: - Tomcat version - Oracle version - Oracle JDBC driver type and version - Number of connections from Tomcat reported by Oracle when this happens - What does a thread dump show those connections are doing Mark - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Tomcat hangs every few hours
Tomcat hangs ever few hours. In server.xml maxThreads are 300. In thread dump I observed every thread doing the same thing. In my code I sends sms to users by using HttpURLConnection. I am using this code for months I didn't get the problem earlier. For few days I am getting this problem consistently. Whenever tomcat hangs I takes the thread dump, every time it shows the same results. Here is my one of threads dump. this is common for all remaining threads. Somebody guide me to solve this problem. I am trying but unable to do this http-80-300 daemon prio=1 tid=0x76890ef0 nid=0x6bb6 runnable [0x6def..0x6def0db0] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) at java.io.BufferedInputStream.read(BufferedInputStream.java:313) - locked 0xb1332658 (a java.io.BufferedInputStream) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:681) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:983) - locked 0xb1332690 (a sun.net.www.protocol.http.HttpURLConnection) at SendSms.sendToSingleRecipientNoNpri(SendSms.java:89) at CreateAccountAction.execute(CreateAccountAction.java:86) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.amulyam.servlet.RedirectFilter.doFilter(RedirectFilter.java:56) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:595)
Re: Tomcat Thread BLOCKED due to JDBC getConnection
Post your JDBC code On Tue, Aug 17, 2010 at 4:23 PM, Sunil Sharma sunil.sharm...@hotmail.comwrote: Hi All, Kindly help me to resolve an issue in our production system, where tomcat is frequenctly getting hunged and axis request threads are been in BLOCKED state. Below is the snaphot of jstack during hunged state. Tomcat : 5.5 MySQL : 5 === jstack 12243 === Attaching to process ID 12243, please wait... Debugger attached successfully. Server compiler detected. JVM version is 1.5.0_05-b05 Thread 7767: (state = IN_NATIVE) - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame; information may be imprecise) - java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Compiled frame) - java.io.BufferedInputStream.fill() @bci=175, line=218 (Interpreted frame) - java.io.BufferedInputStream.read() @bci=12, line=235 (Interpreted frame) - java.io.FilterInputStream.read() @bci=4, line=66 (Interpreted frame) - sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean) @bci=25, line=442 (Interpreted frame) - sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run() @bci=685, line=701 (Interpreted frame) - java.lang.Thread.run() @bci=11, line=595 (Interpreted frame) Thread 2102: (state = BLOCKED) - java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, java.lang.String) @bci=0, line=158 (Interpreted frame) - com.zt.ebiz.util.DBUtil.getUnpooledConnection(java.lang.String, java.lang.String, java.lang.String, java.lang.String) @bci=15, line=465 (Interpreted frame) - com.zt.ebiz.util.DBUtil.getConnection(java.lang.String, java.lang.String, long, java.lang.String, java.lang.String, java.lang.String, boolean) @bci=123, line=351 (Interpreted frame) - com.zt.ebiz.handler.RTHandler.updateRTSchedule(long, long, int, int, int, java.util.LinkedHashMap) @bci=570, line=875 (Compiled frame) - com.zt.ebiz.handler.RTHandler.publishRealTimeCampaign(com.zt.ebiz.server.Campaign, long, int, java.util.LinkedHashMap) @bci=263, line=158 (Interpreted frame) - com.zt.ebiz.core.EbizServer.publishRealTimeCampaign(java.lang.String, long, int, java.util.LinkedHashMap) @bci=29, line=6927 (Interpreted frame) - com.zt.ebiz.ws.realtime.RealTimeServiceSoapBindingImpl.sendEbizMail(java.lang.String, java.lang.String, java.lang.String, com.zt.ebiz.ws.profile.ProfileDTO) @bci=214, line=132 (Interpreted frame) - sun.reflect.GeneratedMethodAccessor67.invoke(java.lang.Object, java.lang.Object[]) @bci=68 (Interpreted frame) - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame) - org.apache.axis.providers.java.RPCProvider.invokeMethod(org.apache.axis.MessageContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) @bci=4, line=397 (Interpreted frame) - org.apache.axis.providers.java.RPCProvider.processMessage(org.apache.axis.MessageContext, org.apache.axis.message.SOAPEnvelope, org.apache.axis.message.SOAPEnvelope, java.lang.Object) @bci=549, line=186 (Compiled frame) - org.apache.axis.providers.java.JavaProvider.invoke(org.apache.axis.MessageContext) @bci=248, line=323 (Interpreted frame) - org.apache.axis.strategies.InvocationStrategy.visit(org.apache.axis.Handler, org.apache.axis.MessageContext) @bci=2, line=32 (Interpreted frame) - org.apache.axis.SimpleChain.doVisiting(org.apache.axis.MessageContext, org.apache.axis.HandlerIterationStrategy) @bci=37, line=118 (Compiled frame) - org.apache.axis.SimpleChain.invoke(org.apache.axis.MessageContext) @bci=31, line=83 (Compiled frame) - org.apache.axis.handlers.soap.SOAPService.invoke(org.apache.axis.MessageContext) @bci=70, line=453 (Interpreted frame) - org.apache.axis.server.AxisServer.invoke(org.apache.axis.MessageContext) @bci=552, line=281 (Interpreted frame) - org.apache.axis.transport.http.AxisServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=450, line=699 (Compiled frame) - javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=139, line=709 (Interpreted frame) - org.apache.axis.transport.http.AxisServletBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=6, line=327 (Interpreted frame) - javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=802 (Interpreted frame) - org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=354, line=252 (Interpreted frame) - org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=173
Re: [OT] Re: Tomcat hangs every few hours
For months it is working properly. I tried that one also. Immediately after hangs I accessed the url directly several times it is working. Is that the only reason, I thought that but when accessed it is working. Is there any other reasons. On Tue, Aug 17, 2010 at 5:33 PM, Peter Crowther peter.crowt...@melandra.com wrote: On 17 August 2010 10:48, sasidhar prabhakar sasidhar1...@gmail.com wrote: In thread dump I observed every thread doing the same thing. In my code I sends sms to users by using HttpURLConnection. I am using this code for months I didn't get the problem earlier. For few days I am getting this problem consistently. Whenever tomcat hangs I takes the thread dump, every time it shows the same results. Here is my one of threads dump. this is common for all remaining threads. Somebody guide me to solve this problem. I am trying but unable to do this http-80-300 daemon prio=1 tid=0x76890ef0 nid=0x6bb6 runnable [0x6def..0x6def0db0] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) [...] at SendSms.sendToSingleRecipientNoNpri(SendSms.java:89) [...] The socket is hanging trying to read the response. Your SMS provider probably isn't responding to you on occasion. I assume you've written test code to do a SMS send; if not, write it and test the SMS send outside of Tomcat. This is not a Tomcat issue, so I've marked it [OT]. - Peter
Re: Tomcat hangs every few hours
Thanks I will follow that On Tue, Aug 17, 2010 at 6:12 PM, Pid p...@pidster.com wrote: On 17/08/2010 10:48, sasidhar prabhakar wrote: Tomcat hangs ever few hours. *Exact* Tomcat, JVM and OS versions? In server.xml maxThreads are 300. In thread dump I observed every thread doing the same thing. In my code I sends sms to users by using HttpURLConnection. I am using this code for months I didn't get the problem earlier. For few days I am getting this problem consistently. Whenever tomcat hangs I takes the thread dump, every time it shows the same results. Here is my one of threads dump. this is common for all remaining threads. Somebody guide me to solve this problem. I am trying but unable to do this If each request processor thread is dependent on an inline request to an external resource, and that resource is unavailable or otherwise slow to respond then your app will inevitably run out of threads. You should consider offloading the request to a thread pool (see the Java Concurrency API in recent JVMs) with appropriate timeouts. p http-80-300 daemon prio=1 tid=0x76890ef0 nid=0x6bb6 runnable [0x6def..0x6def0db0] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) at java.io.BufferedInputStream.read(BufferedInputStream.java:313) - locked 0xb1332658 (a java.io.BufferedInputStream) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:681) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:983) - locked 0xb1332690 (a sun.net.www.protocol.http.HttpURLConnection) at SendSms.sendToSingleRecipientNoNpri(SendSms.java:89) at CreateAccountAction.execute(CreateAccountAction.java:86) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.amulyam.servlet.RedirectFilter.doFilter(RedirectFilter.java:56) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:595)
Re: [OT] Re: Tomcat hangs every few hours
I don't know what wireshark is can we install it in production servers. If my webapp is not handling the responses what can I do. Could you please suggest that. On Tue, Aug 17, 2010 at 9:22 PM, Caldarale, Charles R chuck.caldar...@unisys.com wrote: From: sasidhar prabhakar [mailto:sasidhar1...@gmail.com] Subject: Re: [OT] Re: Tomcat hangs every few hours For months it is working properly. Then something must have changed, either on the Tomcat system, or the server your webapp is trying to communicate with. Try to find out what was altered. Is there any other reasons. Possible that the code in your webapp is not handling the responses it's getting from the mail server. Get Wireshark traces of the traffic between your webapp and the mail server and compare that with what the webapp is expecting. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: tomcat 6 not responding to any kind of request i.e. static and dynamic resources after some hours
I changed connectionTimeOut value 0 to 2 then It is working presently. What is problem in connectionTimeOut value 0. Could you explain me. On Fri, Dec 18, 2009 at 1:56 AM, Christopher Schultz ch...@christopherschultz.net wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Sasidhar, On 12/15/2009 11:17 PM, sasidhar prabhakar wrote: DDOS is definitely not the cause we are accurately monitoring the incoming traffic and all the mails we are sending from the application are user generated like friend requests. Ok. we are unable to identify the cause by seeing thread dump could any body tell us the problem by seeing thread dump. Maybe. Attaching the thread dump would certainly go a long way towards getting you some help. Also, more description of the symptoms other than Tomcat is not responding to requests. For instance, do you get connection refused by a client? Do the requests seem to just take forever? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAksqk+UACgkQ9CaO5/Lv0PDZqwCgk7MTQHnz0abxNfKWvBcYVVKJ RIMAnjd3IW6FsR7avJgqAGOOwGLzMayX =Xp8q -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
tomcat 6 not responding to any kind of request i.e. static and dynamic resources after some hours
hi, we are using tomcat 6, jdk1.5, CentOS 5, with 4gb of ram, data base is Oracle 11g. For the past one month we are getting this problem before that we don't. Tomcat hangs after running for several hours. Means initially it is taking around 24hr now it is hanging every 3 to 4 hr we can not say the exact time. When I see the graph using visualgc there is plenty of space and data sources are also sufficient I configured it 200. And http threads maxActive are 150. I am unable to find the problem. give suggestions to solve this problem. I didn't understand the thread dump. And we are sending per day nearly 5 mails to users using sendmail using java. The full thred dump as follows. Full thread dump Java HotSpot(TM) Server VM (1.5.0_19-b02 mixed mode): http-80-150 daemon prio=1 tid=0x093c4870 nid=0x37c2 runnable [0x7fb29000..0x7fb29db0] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:735) at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:366) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:808) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:595) http-80-149 daemon prio=1 tid=0x093c4160 nid=0x37c1 runnable [0x7fbaa000..0x7fbaaf30] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:735) at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:366) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:808) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:595) ... all http-80-xx threads are in runnable like above . . DefaultQuartzScheduler_QuartzSchedulerThread prio=1 tid=0x86244118 nid=0x371f sleeping[0x821f6000..0x821f70b0] at java.lang.Thread.sleep(Native Method) at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:272) DefaultQuartzScheduler_Worker-9 prio=1 tid=0x8620e088 nid=0x371e in Object.wait() [0x82277000..0x82277e30] at java.lang.Object.wait(Native Method) - waiting on 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) - locked 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) DefaultQuartzScheduler_Worker-8 prio=1 tid=0x86254488 nid=0x371d in Object.wait() [0x822f8000..0x822f8db0] at java.lang.Object.wait(Native Method) - waiting on 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) - locked 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) DefaultQuartzScheduler_Worker-7 prio=1 tid=0x862542e8 nid=0x371c in Object.wait() [0x82379000..0x82379f30] at java.lang.Object.wait(Native Method) - waiting on 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) - locked 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) DefaultQuartzScheduler_Worker-6 prio=1 tid=0x864c8018 nid=0x371b in Object.wait() [0x823fa000..0x823faeb0] at java.lang.Object.wait(Native Method) - waiting on 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) - locked 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) DefaultQuartzScheduler_Worker-5 prio=1 tid=0x864c7e90 nid=0x371a in Object.wait() [0x8247b000..0x8247c030] at java.lang.Object.wait(Native Method) - waiting on 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) - locked 0x92767810 (a java.lang.Object) at org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) DefaultQuartzScheduler_Worker-4 prio=1 tid=0x86685dd0 nid=0x3719 in Object.wait()
Re: tomcat 6 not responding to any kind of request i.e. static and dynamic resources after some hours
DDOS is definitely not the cause we are accurately monitoring the incoming traffic and all the mails we are sending from the application are user generated like friend requests. we are unable to identify the cause by seeing thread dump could any body tell us the problem by seeing thread dump. On Tue, Dec 15, 2009 at 9:48 PM, Christopher Schultz ch...@christopherschultz.net wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Sasidhar, On 12/15/2009 9:21 AM, sasidhar prabhakar wrote: Tomcat hangs after running for several hours. Means initially it is taking around 24hr now it is hanging every 3 to 4 hr we can not say the exact time. [snip] And we are sending per day nearly 5 mails to users using sendmail using java. [snip] Full thread dump Java HotSpot(TM) Server VM (1.5.0_19-b02 mixed mode): http-80-150 daemon prio=1 tid=0x093c4870 nid=0x37c2 runnable [0x7fb29000..0x7fb29db0] at java.net.SocketInputStream.socketRead0(Native Method) Maybe someone is DDOSing you because you are spamming them. shrug - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAksntuQACgkQ9CaO5/Lv0PD/ZACcCOuF68Y6WapPgfA+2Jsw/JDU ctcAn2RiUg6VS0ZbA8odIBjIFAmIRlyY =bi2K -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org