First try with WHEN_EXHAUSTED_BLOCK and maxWait=10000
I still haven't seen the place where the pool exception is catched and ignored causing a nullpointer. Maybe in the constructor of DBConnection or in the executeQuery method?
-- Dirk
raj wrote:
We are using commons-pool-1.1.jar and
commons-dbcp-1.1.jar
Do you think I have to change MAX Active to some more
number like 300 or some thing and add
MAXIdle
MInIdle
WHEN_EXHAUSTED_GROW
and also connectionPool.setNumTestsPerEvictionRun(20);
connectionPool.setMinEvictableIdleTimeMillis(600000);
connectionPool.setTimeBetweenEvictionRunsMillis(10000);
// 10 sec
Please let me know... Here are the files.. this jsp calls DBConnection which inturn call datasourcefactory function to initialize connection. frmTestConnectionPool.jsp START **********----------- <%@ page import="java.sql.*" %> <%@ page import="javax.naming.*" %> <%@ page import="javax.sql.*" %> <%@ page import="***.***.***.jdbc.*" %> <%@ page import="***.***.***.DBConnection" %> <%@ page import="org.apache.commons.dbcp.PoolingDataSource" %> <%@ page import="org.apache.commons.dbcp.PoolingDriver" %> <%@ page import="org.apache.commons.pool.ObjectPool" %>
<title>Support: Connection Pool</title>
<% try {
// start Application
applicationStart( globalContext, log, literal,
profiler); } catch (Exception e) {
logger.writeError(e.toString());
}
%>
<br><br>
<table cellSpacing="0" cellPadding="0" border="0">
<tbody>
<tr>
<td>
<table border="0" cellpadding="2" cellspacing="0">
<tr><td><font class="pageheader"> Connection
Pooling Test</td></tr>
</table>
</td>
</tr>
<tr>
<td valign="top" align="left" width="533"
class="largebody">
<table border="0" cellpadding="2" cellspacing="0">
<tr><td><img src="/images/2.0/main.jpg" width="533"
height="150"></td></tr>
<tr><td> </td></tr>
</table>
<%-- Begin body content --%> <%
DBConnection objCase = null;
ResultSet objCaseRs = null;
try {
objCase = new DBConnection();
int id = 0;
objCaseRs = objCase.executeQuery("select count(*)
from sw_case");
if(objCaseRs != null) {
if(objCaseRs.next()){
id = objCaseRs.getInt(1);
%>
<%="CASE COUNT: " + id %>
<%
}
}
} catch (Exception e) {
StackTraceElement[] st = e.getStackTrace();
StackTraceElement st2 = null;
log.addEntry(" frmTestConnectionPool.jsp ",
Log.LOG_SEVERITY_ERROR, e.toString());
for(int i=0; i< st.length; i++) {
st2 = st[i];
log.addEntry(" frmTestConnectionPool.jsp ",
st2.toString());
}
throw e;
} finally {
objCase.closeAllIgnoreExceptions();
}
%> <%-- End body content --%>
</td>
<td width="20"><img height=3 alt=""
src="/images/2.0/px_transparent.gif" width=20
border=0></td>
<td width=162 align=left valign="top">
<[EMAIL PROTECTED] file="/include/promos/incExtPromos.jsp"%>
</td>
</tr>
<tr><td colspan="3" height="1"
valign="top"> </td></tr>
<tr><td colspan="3" height="1" valign="top"><spacer
type="block" width="1" height="1"/></td></tr>
<tr><td colspan="3" height="4"><img
src="/images/2.0/clearpixel.gif" width="1"
height="4"></td></tr>
</table>
<%@ include file="/include/layout/endLayout.jsp" %>
****** frmTestConnectionPool.jsp END -----
***** DBConnection setup ---- private void setupEnvironment() throws Exception { context = new InitialContext(); ds = ***.***.****.jdbc.DataSourceFactory.getDataSource(); con = ds.getConnection(); } *******-----
DATASOURCEFACTORY java
public class DataSourceFactory {
private static DataSource ds = null;
public static synchronized DataSource
getDataSource() {
if (ds == null) {
setup();
}
return ds;
}
static void setup() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
throw new LoggedError(e);
}
// read defaults from properties file
Properties p =
PropertiesManager.getProperties("jdbc");
String driver =
p.getProperty("**.***.***.jdbc.driver");
String auth =
p.getProperty("**.***.***.jdbc.auth");
String server =
p.getProperty("**.***.***.jdbc.db");
String connectURI = driver + ":" + auth + "@"
+ server;
// setup data source
ds = setupDataSource(connectURI);
}
private static DataSource setupDataSource(String
connectURI) {
String testStr = "SELECT COUNT(*) FROM DUAL";
GenericObjectPool connectionPool = new
GenericObjectPool(null);
ConnectionFactory connectionFactory = new
DriverManagerConnectionFactory(connectURI,null);
new
PoolableConnectionFactory(connectionFactory,connectionPool,null,testStr,false,true);
// set up pool options
connectionPool.setTestOnBorrow(true);
connectionPool.setTestOnReturn(true);
connectionPool.setMaxActive(50);
connectionPool.setWhenExhaustedAction(connectionPool.WHEN_EXHAUSTED_FAIL);
PoolingDataSource dataSource = new
PoolingDataSource(connectionPool);
return dataSource;
}
}
*****************************END DATASOURCEFACTORY
------------
DIrk...Thanks very much for your help in advance. Regards..RAJ
--- Dirk Verbeeck <[EMAIL PROTECTED]> wrote:
DBCP version? (1.0, 1.1, nightly)PoolableConnectionFactory(connectionFactory,connectionPool,null,testStr,false,true);
Normally you should get a SQLException even when the pool is empty. Can you post your frmTestConnectionPool.jsp?
-- Dirk
raj wrote:
Hello, We have been using jakarta pool implementation
with
JRUN for past 6 months and worked fine until last week. Started giving this error.
Works fine for couple of hours and starts crashing
and
had to restart JRUN every time.
Explanation from our admin --> Load on database causing delay in getting
connection
from connection pool which is becoming stale after trying to get connection for long time. I did not like this explanation as nothing changed
and
started suddenly. ANY HELP WILL BE REALLY APPRECIATED and THANKS FOR YOUR TIME.
These are the parameters for connection pool
GenericObjectPool connectionPool = new GenericObjectPool(null); ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,null); new
connectionPool.setWhenExhaustedAction(connectionPool.WHEN_EXHAUSTED_FAIL);// set up pool options
connectionPool.setTestOnBorrow(true);
connectionPool.setTestOnReturn(true);
connectionPool.setMaxActive(50);
com.nokia.support.DBConnection.printStackTraceToLog(DBConnection.java:925)PoolingDataSource dataSource = new PoolingDataSource(connectionPool);
--> This is stacktrace from the JSP -->
05/04/2004 06:03:06 PM /temp/frmTestConnectionPool.jsp Error 0
Testing 05/04/2004 06:03:06 PM /temp/frmTestConnectionPool.jsp Error 0
Testing 2 05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Error 0 java.lang.NullPointerException
05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
com.nokia.support.DBConnection.<init>(DBConnection.java:349)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
jrun__temp__frmTestConnectionPool2ejsp1f._jspService(jrun__temp__frmTestConnectionPool2ejsp1f.java:807)-----> 05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.jsp.HttpJSPServlet.service(HttpJSPServlet.java:39)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.jsp.JSPServlet.service(JSPServlet.java:228)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.jsp.JSPServlet.service(JSPServlet.java:196)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.servlet.JRunSE.service(JRunSE.java:1417)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.session.JRunSessionService.service(JRunSessionService.java:1088)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:1271)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.java:89)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.servlet.JRunSE.service(JRunSE.java:1557)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.servlet.JRunSE.service(JRunSE.java:1547)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.servlet.JvmContext.dispatch(JvmContext.java:364)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.jrpp.ProxyEndpoint.run(ProxyEndpoint.java:388)05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
---------------------------------------------------------------------05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0 allaire.jrun.ThreadPool.run(ThreadPool.java:272)
05/04/2004 06:03:06 PM frmTestConnectionPool.jsp
Information 0
allaire.jrun.WorkerThread.run(WorkerThread.java:75)
05/04/2004 06:03:06 PM /temp/frmTestConnectionPool.jsp Error 0
Testing 7
THANKS very much-- RAJ
__________________________________
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs
http://hotjobs.sweepstakes.yahoo.com/careermakeover
---------------------------------------------------------------------To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
__________________________________
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
