Hi,
I have recently had a couple of instances where the Jetspeed database
connections appear to have been lost, either timed out from inactivity, or
there has been a network interruption, or not quite sure what. I believe it
is the timeout, but I'm not certain. In any case, over the weekend,
catalina.out filled up with 145k SQLExceptions of:
java.sql.SQLException: Io exception: Connection reset
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at
oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:1224
)
at
org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnect
ion.java:331)
at
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAuto
Commit(PoolingDataSource.java:317)
at
org.apache.jetspeed.statistics.impl.BatchedStatistics.flush(BatchedStatistic
s.java:162)
at
org.apache.jetspeed.statistics.impl.BatchedStatistics.checkAndDoFlush(Batche
dStatistics.java:87)
at
org.apache.jetspeed.statistics.impl.BatchedStatistics.run(BatchedStatistics.
java:133)
at java.lang.Thread.run(Thread.java:619)
java.sql.SQLException: Io exception: Broken pipe
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at
oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:1224
)
at
org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnect
ion.java:331)
at
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAuto
Commit(PoolingDataSource.java:317)
at
org.apache.jetspeed.statistics.impl.BatchedStatistics.flush(BatchedStatistic
s.java:162)
at
org.apache.jetspeed.statistics.impl.BatchedStatistics.checkAndDoFlush(Batche
dStatistics.java:87)
at
org.apache.jetspeed.statistics.impl.BatchedStatistics.run(BatchedStatistics.
java:133)
at java.lang.Thread.run(Thread.java:619)
java.sql.SQLException: Io exception: Broken pipe
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
[.]
Is the DataSource configured, or configurable, to check that the connection
is still valid before returning it? I know such a thing is, in general,
possible for the Apache PoolingDataSource, but I don't see it in the
Jetspeed configuration.
I'm running Jetspeed 2.1.3 on Linux, talking to Oracle 10, and looking in
[JetspeedInstall]/database/database.properites
The datasource.xml file (from both database/assembly. and
webapps/Jetspeed/WEB-INF/assembly.) seems to be default configuration using
Spring JNDI.
thanks,
Linus