Re: DBCP abandoned trace - unable to understand the leak

2010-11-10 Thread sasidhar prabhakar
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

2010-11-10 Thread sasidhar prabhakar
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

2010-11-10 Thread sasidhar prabhakar
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

2010-11-09 Thread sasidhar prabhakar
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

2010-11-07 Thread sasidhar prabhakar
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

2010-11-04 Thread sasidhar prabhakar
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

2010-11-04 Thread sasidhar prabhakar
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

2010-11-04 Thread sasidhar prabhakar
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

2010-11-04 Thread sasidhar prabhakar
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

2010-11-04 Thread sasidhar prabhakar
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

2010-11-03 Thread sasidhar prabhakar
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

2010-09-09 Thread sasidhar prabhakar
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

2010-09-09 Thread sasidhar prabhakar
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

2010-09-09 Thread sasidhar prabhakar
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

2010-08-17 Thread sasidhar prabhakar
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

2010-08-17 Thread sasidhar prabhakar
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

2010-08-17 Thread sasidhar prabhakar
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

2010-08-17 Thread sasidhar prabhakar
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

2010-08-17 Thread sasidhar prabhakar
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

2009-12-17 Thread sasidhar prabhakar
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

2009-12-15 Thread sasidhar prabhakar
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

2009-12-15 Thread sasidhar prabhakar
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