Lance, thanks for answer. Seems my post (this morning) was lost in space ;-)

regards,
Armin

Lance Eason wrote:

The only way OJB can know whether the connection has been closed is if you set it up 
to test the connections in the pool.  Your connection descriptor is set up halfway to 
do that, it specifies testOnBorrow, testOnReturn and testWhileIdle but you haven't 
provided a validationQuery for it to test with.  I'd make the following changes:
    validationQuery="SELECT 1 FROM dual"
    testOnReturn="false"
(Having the pool test both when the connection is returned and when it's borrowed is 
just way overkill.)

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 17, 2003 9:57 AM
To: [EMAIL PROTECTED]
Subject: SQLException Socket Closed with Oracle 9 and RC5


For some reason, it looks like OJB doesn't know when a connection has been closed, or there is something wrong with my setup. I'm using OJB rc5, with Oracle 9.2.0, and ojdbc4.jar (for JDK 1.4.x). It seems that when the app is not used and left idle, that connections are closed, but then when it is hit again, it tries to use the connections, throws the exception, and then notes the socket as closed.

here is my repository_database entry:


<!-- Datasource for Acronyms --> <jdbc-connection-descriptor jcd-alias="acronyms" default-connection="true" platform="Oracle" jdbc-level="2.0" driver="oracle.jdbc.OracleDriver" protocol="jdbc" subprotocol="oracle" dbalias="thin:@hpspdb1:1521:HPSPDB" username="uname" password="upass" eager-release="true" batch-mode="false" useAutoCommit="0" ignoreAutoCommitExceptions="true"> <connection-pool maxActive="1" maxIdle="2" maxWait="3" minEvictableIdleTimeMillis="4" numTestsPerEvictionRun="5" testOnBorrow="true" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="6" whenExhaustedAction="2" validationQuery="" logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="8"/> <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl"> <attribute attribute-name="grabSize" attribute-value="100"/> <attribute attribute-name="autoNaming" attribute-value="true"/> <attribute attribute-name="globalSequenceId" attribute-value="false"/> <attribute attribute-name="globalSequenceStart" attribute-value="10000"/> </sequence-manager> </jdbc-connection-descriptor>

here is the exception:

java.sql.SQLException: Io exception: Socket closed
        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.OracleStatement.<init>(OracleStatement.java:389)
        at
oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:413)
        at
oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:119)
        at
oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:92)
        at
oracle.jdbc.driver.OracleConnection.privatePrepareStatement(OracleConnection.java:950)
        at
oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection.java:802)
        at
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.prepareStatement(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.prepareStatement(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.getPreparedStmt(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown
Source)
        at gov.hhs.acronyms.sql.AcronymDAO.selectAcronyms(AcronymDAO.java:80)
        at
gov.hhs.acronyms.actions.SearchAction.execute(SearchAction.java:68)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
        at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:113)
        at
com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:190)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:305)
        at com.caucho.util.ThreadPool.run(ThreadPool.java:273)
        at java.lang.Thread.run(Thread.java:534)
org.apache.ojb.broker.PersistenceBrokerSQLException:
java.sql.SQLException: Io exception: Socket closed
        at
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.getPreparedStmt(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown
Source)
        at gov.hhs.acronyms.sql.AcronymDAO.selectAcronyms(AcronymDAO.java:80)
        at
gov.hhs.acronyms.actions.SearchAction.execute(SearchAction.java:68)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
        at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:113)
        at
com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:190)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:305)
        at com.caucho.util.ThreadPool.run(ThreadPool.java:273)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: Io exception: Socket closed
        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.OracleStatement.<init>(OracleStatement.java:389)
        at
oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:413)
        at
oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:119)
        at
oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:92)
        at
oracle.jdbc.driver.OracleConnection.privatePrepareStatement(OracleConnection.java:950)
        at
oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection.java:802)
        at
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.prepareStatement(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.prepareStatement(Unknown
Source)
        ... 30 more

---------------------------------------------------------------------
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]






--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to