[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ojb-user
Subject:    Re: SQLExcpetion
From:       Armin Waibel <arminw () apache ! org>
Date:       2004-10-26 19:55:53
Message-ID: 417EABC9.5030705 () apache ! org
[Download RAW message or body]

Hi Daniel,

Daniel Perry wrote:
> I'm still getting these errors in my app.
> 
> Currently i'm using i've got ConnectionFactoryPooledImpl set in
> ojb.properties, and in the repository_database.xml i have the following in
> my jdbc-connection-descriptor:
> 
> <connection-pool
>   minActive="5"
>   maxActive="50"
>   whenExhaustedAction="2"
>   validationQuery="select count(*) from OJB_HL_SEQ"
> />
> 
> Is there a reason i would get these errors?  Surely the connection pool
> should be validating the connection before handing it out, and then it
> should be fine?
>

I doubt that the ConnectionFactory implementation cause this error, 
because it's the first time I heard about such a problem and the 
validation query is working AFAIK (did you check this by logging the sql 
statements e.g. with p6spy?)


> Is ConnectionFactoryDBCPImpl any better than the one i'm using?
> 

Both ConnectionFactory implementations use commons-pool, but DBCP is a 
JDBC/Pool/Datasource api build on top of commons-pool. If this 
implementation will work you found a bug in ConnectionFactoryPooledImpl ;-)


> I am considering switching to ConnectionFactoryNotPooledImpl, but it would
> mean a big performance hit!
> 

Is the error always caused by the same class

 >>>>at
 >>>>org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForE
 >>>
 >>>achIterator

or always caused when materialized a proxied collection?

Does the error occur when OJB materialize a class with clob/blob or 
binary/object field?


> Is there a way for me to clear the connection pool?

You can try 
ConnectionFactoryFactory.createConnectionFactory().releaseAllResources()
CFF is a singleton. This call clear the used pool and close all 
connections of the pool (connections in use will be ignored AFAIK)

Or extend ConnectionFactoryPooledImpl and add your own monitoring methods.

regards,
Armin


> As it's only when the
> system has been running for a while that i see these errors, i figure if i
> clear the pool every half hour, it should stop it!
> 
> Daniel.
> 
> 
> 
>>-----Original Message-----
>>From: Daniel Perry [mailto:d.perry@netcase.co.uk]
>>Sent: 11 October 2004 16:20
>>To: OJB Users List
>>Subject: RE: SQLExcpetion
>>
>>
>>Ah i forgot to mention - mysql and tomcat are on the same machine :) which
>>kinda counts out network problems.
>>
>>I cant see any reason why i'd get these errors (at least on a 1 machine
>>system).  The connection pool should prevent them happening due to
>>timeouts/etc.  If it doesnt, then i'd expect to find that mysql had died,
>>and the system to remain down until it had been started up again.
>>
>>Daniel.
>>
>>
>>
>>
>>>-----Original Message-----
>>>From: Edson Carlos Ericksson Richter
>>>[mailto:edson.richter@mgrinformatica.com.br]
>>>Sent: 11 October 2004 16:07
>>>To: OJB Users List
>>>Subject: Re: SQLExcpetion
>>>
>>>
>>>If you try to copy large files between machines, you get Connection
>>>Reset (or connection reset by peer, in some OSes)??? If so, you get a
>>>trahsed network card or network hub... I had this problem some time ago,
>>>and I had to exchange a hub with some ports "burned", sending trash in
>>>my network...
>>>
>>>Just my 2c,
>>>
>>>Richter
>>>
>>>Daniel Perry escreveu:
>>>
>>>
>>>>Hi all,
>>>>
>>>>One of our systems has been running fine (live) for the last few
>>>
>>>weeks until
>>>
>>>>yesterday when for about half an hour it started randomly
>>
>>crashing. Since
>>
>>>>then it has been fine!  The (partial) exception trace is below.
>>>
>>>From what i
>>>
>>>>can figure the problem is coming from dud mysql connections.
>>
>>However, i
>>
>>>>thought that OJB checked the connection before using it by using the
>>>>validation query?
>>>>
>>>>I'm using OJB 1.0.0, mysql-connector 3.0.10, and mysql 4.0.18.
>>>>
>>>>Any ideas about what would cause this?  Anyway i can prevent
>>
>>it occuring
>>
>>>>again?
>>>>
>>>>Thanks,
>>>>Daniel.
>>>>
>>>>
>>>>
>>>>
>>>>[org.apache.ojb.broker.accesslayer.StatementsForClassImpl] ERROR: No
>>>>operations allowed after connection closed.
>>>>
>>>>Connection was closed due to the following exception:
>>>>
>>>>** BEGIN NESTED EXCEPTION **
>>>>
>>>>java.sql.SQLException
>>>>MESSAGE: Communication link failure: java.io.IOException,
>>>
>>>underlying cause:
>>>
>>>>Unexpected end of input stream
>>>>
>>>>** BEGIN NESTED EXCEPTION **
>>>>
>>>>java.io.IOException
>>>>MESSAGE: Unexpected end of input stream
>>>>
>>>>STACKTRACE:
>>>>
>>>>java.io.IOException: Unexpected end of input stream
>>>>at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1455)
>>>>at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1826)
>>>>at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1098)
>>>>at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1192)
>>>>at com.mysql.jdbc.Connection.execSQL(Connection.java:2051)
>>>>at
>>>>com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.j
>>>
>>>ava:1496)
>>>
>>>>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.getRsIteratorFro
>>>
>>>mQuery(Unkn
>>>
>>>>own Source)
>>>>at
>>>>org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQ
>>>
>>>uery(Unknow
>>>
>>>>n Source)
>>>>at
>>>>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQu
>>>
>>>ery(Unknown
>>>
>>>>Source)
>>>>at
>>>>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQu
>>>
>>>ery(Unknown
>>>
>>>>Source)
>>>>at
>>>>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQ
>>>
>>>uery(Unknow
>>>
>>>>n Source)
>>>>at
>>>>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollect
>>>
>>>ionByQuery(
>>>
>>>>Unknown Source)
>>>>at
>>>>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollect
>>>
>>>ionByQuery(
>>>
>>>>Unknown Source)
>>>>at
>>>>org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.loadD
>>>
>>>ata(Unknown
>>>
>>>>Source)
>>>>at
>>>
>>>org.apache.ojb.broker.core.proxy.ListProxyDefaultImpl.loadData(Unknown
>>>
>>>>Source)
>>>>at
>>>>org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.getDa
>>>
>>>ta(Unknown
>>>
>>>>Source)
>>>>at
>>>>org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.itera
>>>
>>>tor(Unknown
>>>
>>>>Source)
>>>>at
>>>>org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForE
>>>
>>>achIterator
>>>
>>>>(ForEachSupport.java:329)
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic