You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Reinhard Dunst <re...@tub.at> on 2003/05/28 13:13:44 UTC
Handle broken database connections
Hi,
how can I handle broken database connections. If I shut down the database
and restart it,
I get following errormessage occure:
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
PersistenceBrokerException during
the execution of the query:
Io exception: Connection reset by peer: socket write error Io exception:
Connection reset by peer: socket write error
java.sql.SQLException: Io exception: Connection reset by peer: socket write
error
My current configuration is
java 1.4.1
ojb 1.0 rc2
Thanks in advance
Reinhard
============================================================================
==========
Reinhard Dunst
T.U.B. Technologie- & Unternehmensberatung GmbH
mobile: +43.664 - 2525928
email: mailto:reinhard.dunst@tub.at
============================================================================
==========
Re: Handle broken database connections
Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Reinhard,
in rc2 the 'validationQuery' feature should be working
and it does something similar to your 'checkConnection'
method.
regards,
Armin
----- Original Message -----
From: "Reinhard Dunst" <re...@tub.at>
To: "'OJB Users List'" <oj...@db.apache.org>
Sent: Thursday, May 29, 2003 4:50 PM
Subject: RE: Handle broken database connections
> Hi Armin
>
> currently I use OBJ in Version 1.0 rc2
>
> Reinhard
>
> -----Original Message-----
> From: Armin Waibel [mailto:armin@code-au-lait.de]
> Sent: Thursday, May 29, 2003 3:16 PM
> To: OJB Users List
> Subject: Re: Handle broken database connections
>
>
> Hi Reinhard,
>
> don't know which version of OJB you use (think
> it's an older version), but in current version something
> similar done when using 'validationQuery' attribute.
> See
>
http://cvs.apache.org/viewcvs.cgi/db-ojb/src/java/org/apache/ojb/broker/
> accesslayer/ConnectionFactoryPooledImpl.java
>
> What I mean is that we don't have a method
> to clean/refresh the connection-pool at runtime.
>
> PersistenceBrokerFactory.releaseAllInstances();
> clean the PB-pool but does NOT affect the connection
> pool. So do you think we need a method to clean/refresh
> the used ConnectionFactory instance too (e.g. enhance
> PBF.releaseAllInstances to refresh ConnectionFactory too)
> - or does 'validationQuery' feature suffice?
>
> regards,
> Armin
>
> ----- Original Message -----
> From: "Reinhard Dunst" <re...@tub.at>
> To: "'OJB Users List'" <oj...@db.apache.org>
> Sent: Thursday, May 29, 2003 2:41 PM
> Subject: RE: Handle broken database connections
>
>
> > Hi Armin,
> >
> > yes I think so. A 'refresh()' would make sense. Because there are a
> lot of
> > situations where the connection to the database can be lost. And
when
> I look
> > in archive for similar situations, there are some of them. I saw,
> there is
> > just a 'connection.isClosed()' in
> > ConnectionFactoryConPooledImpl.validateObject() and a lost
connection
> is
> > already open. And additionaly the connection will be checked only if
a
> > broker will be borrowed.
> >
> > What do you think about my actual workaround?
> >
> > public void checkConnection()
> > throws MyConnectionFailException
> > {
> > try
> > {
> > // try a fast testquery like 'select 1 from dual' in oracle
> > ....
> > Object obj = broker.getObjectByQuery(query);
> > }
> > catch (Exception ex)
> > {
> > try
> > {
> > PersistenceBrokerFactory.releaseAllInstances();
> > broker =
PersistenceBrokerFactory.createPersistenceBroker(...);
> > }
> > catch (Exception ex)
> > {
> > throw new MyConnectionFailException();
> > }
> > }
> > }
> >
> > Thanks in advance,
> > Reinhard
> >
> >
> > -----Original Message-----
> > From: Armin Waibel [mailto:armin@code-au-lait.de]
> > Sent: Wednesday, May 28, 2003 3:13 PM
> > To: OJB Users List
> > Subject: Re: Handle broken database connections
> >
> >
> > Hi Reinhard,
> >
> > ----- Original Message -----
> > From: "Reinhard Dunst" <re...@tub.at>
> > To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
> > Sent: Wednesday, May 28, 2003 1:13 PM
> > Subject: Handle broken database connections
> >
> >
> > > Hi,
> > >
> > > how can I handle broken database connections. If I shut down the
> > database
> > > and restart it,
> >
> > you could use the 'validationQuery' attribute within the
> connection-pool
> > element to check connection before it could be obtained from pool.
> >
> > currently we don't have a 'refresh()' method on ConnectionFactory
> > level to allow the implementation class to refresh their connection
> > pool - if con-pooling was supported.
> > Would such a 'refresh' method make sense?
> >
> > regards,
> > Armin
> >
> > > I get following errormessage occure:
> > >
> > > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> > > PersistenceBrokerException during
> > > the execution of the query:
> > > Io exception: Connection reset by peer: socket write error Io
> > exception:
> > > Connection reset by peer: socket write error
> > > java.sql.SQLException: Io exception: Connection reset by peer:
> socket
> > write
> > > error
> > >
> > > My current configuration is
> > > java 1.4.1
> > > ojb 1.0 rc2
> > >
> > > Thanks in advance
> > > Reinhard
> > >
> > >
> > >
> > >
> >
>
========================================================================
> > ====
> > > ==========
> > > Reinhard Dunst
> > > T.U.B. Technologie- & Unternehmensberatung GmbH
> > >
> > > mobile: +43.664 - 2525928
> > > email: mailto:reinhard.dunst@tub.at
> > >
> >
>
========================================================================
> > ====
> > > ==========
> > >
> > >
> >
> >
> >
>
> ---------------------------------------------------------------------
> > 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
>
RE: Handle broken database connections
Posted by Reinhard Dunst <re...@tub.at>.
Hi Armin
currently I use OBJ in Version 1.0 rc2
Reinhard
-----Original Message-----
From: Armin Waibel [mailto:armin@code-au-lait.de]
Sent: Thursday, May 29, 2003 3:16 PM
To: OJB Users List
Subject: Re: Handle broken database connections
Hi Reinhard,
don't know which version of OJB you use (think
it's an older version), but in current version something
similar done when using 'validationQuery' attribute.
See
http://cvs.apache.org/viewcvs.cgi/db-ojb/src/java/org/apache/ojb/broker/
accesslayer/ConnectionFactoryPooledImpl.java
What I mean is that we don't have a method
to clean/refresh the connection-pool at runtime.
PersistenceBrokerFactory.releaseAllInstances();
clean the PB-pool but does NOT affect the connection
pool. So do you think we need a method to clean/refresh
the used ConnectionFactory instance too (e.g. enhance
PBF.releaseAllInstances to refresh ConnectionFactory too)
- or does 'validationQuery' feature suffice?
regards,
Armin
----- Original Message -----
From: "Reinhard Dunst" <re...@tub.at>
To: "'OJB Users List'" <oj...@db.apache.org>
Sent: Thursday, May 29, 2003 2:41 PM
Subject: RE: Handle broken database connections
> Hi Armin,
>
> yes I think so. A 'refresh()' would make sense. Because there are a
lot of
> situations where the connection to the database can be lost. And when
I look
> in archive for similar situations, there are some of them. I saw,
there is
> just a 'connection.isClosed()' in
> ConnectionFactoryConPooledImpl.validateObject() and a lost connection
is
> already open. And additionaly the connection will be checked only if a
> broker will be borrowed.
>
> What do you think about my actual workaround?
>
> public void checkConnection()
> throws MyConnectionFailException
> {
> try
> {
> // try a fast testquery like 'select 1 from dual' in oracle
> ....
> Object obj = broker.getObjectByQuery(query);
> }
> catch (Exception ex)
> {
> try
> {
> PersistenceBrokerFactory.releaseAllInstances();
> broker = PersistenceBrokerFactory.createPersistenceBroker(...);
> }
> catch (Exception ex)
> {
> throw new MyConnectionFailException();
> }
> }
> }
>
> Thanks in advance,
> Reinhard
>
>
> -----Original Message-----
> From: Armin Waibel [mailto:armin@code-au-lait.de]
> Sent: Wednesday, May 28, 2003 3:13 PM
> To: OJB Users List
> Subject: Re: Handle broken database connections
>
>
> Hi Reinhard,
>
> ----- Original Message -----
> From: "Reinhard Dunst" <re...@tub.at>
> To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
> Sent: Wednesday, May 28, 2003 1:13 PM
> Subject: Handle broken database connections
>
>
> > Hi,
> >
> > how can I handle broken database connections. If I shut down the
> database
> > and restart it,
>
> you could use the 'validationQuery' attribute within the
connection-pool
> element to check connection before it could be obtained from pool.
>
> currently we don't have a 'refresh()' method on ConnectionFactory
> level to allow the implementation class to refresh their connection
> pool - if con-pooling was supported.
> Would such a 'refresh' method make sense?
>
> regards,
> Armin
>
> > I get following errormessage occure:
> >
> > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> > PersistenceBrokerException during
> > the execution of the query:
> > Io exception: Connection reset by peer: socket write error Io
> exception:
> > Connection reset by peer: socket write error
> > java.sql.SQLException: Io exception: Connection reset by peer:
socket
> write
> > error
> >
> > My current configuration is
> > java 1.4.1
> > ojb 1.0 rc2
> >
> > Thanks in advance
> > Reinhard
> >
> >
> >
> >
>
========================================================================
> ====
> > ==========
> > Reinhard Dunst
> > T.U.B. Technologie- & Unternehmensberatung GmbH
> >
> > mobile: +43.664 - 2525928
> > email: mailto:reinhard.dunst@tub.at
> >
>
========================================================================
> ====
> > ==========
> >
> >
>
>
>
> ---------------------------------------------------------------------
> 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
Re: Handle broken database connections
Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Reinhard,
> I think that 'validationQuery' is not enough, because this method is
only
> called if a broker will be borrowed from pool. In my current
implementation
> I create a PB during servlet startup and save it in a
MyDatabaseServiceImpl
> in ServletContext. So I only can catch exceptions from broker if
> databaseaccess fails. If this exception occures, there should be a way
to
> reinitialize ConnectionFactory, maybe with
PersistenceBrokerFactory.reset()
> or .refresh(). If the problem still exists after 'reset()', ok, then
there
> is no connection to the database.
I will put this to my (long) todo-list.
Till this will be fixed in CVS is there a way
in MyDatabaseServiceImpl to implement
a refresh() method which close the current
PB instance and get a new one from
PBF? This should solve your problem.
regards,
Armin
----- Original Message -----
From: "Reinhard Dunst" <re...@tub.at>
To: "'OJB Users List'" <oj...@db.apache.org>
Sent: Thursday, May 29, 2003 5:57 PM
Subject: RE: Handle broken database connections
> Hi Armin,
>
> now I changed to current version from OBJ 1.0 rc2 to rc3.
> The problem after restart the connected database still exists.
>
> This is my configuration for connection-pool
> <connection-pool
> maxActive="21"
> maxIdle="5"
> testWhileIdle="true"
> testOnBorrow="true"
> whenExhaustedAction="2"
> timeBetweenEvictionRunsMillis="10000"
> minEvictableIdleTimeMillis="10000"
> numTestsPerEvictionRun="5"
> validationQuery="select 1 from dual"
> />
>
> I got following errormessage:
>
> [org.apache.ojb.broker.accesslayer.StatementsForClassImpl] ERROR: Io
> exception: Connection reset by peer: socket write error
> java.sql.SQLException: Io exception: Connection reset by peer: socket
write
> error
> ....
>
> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> PersistenceBrokerException during the execution of the query: Io
exception:
> Connection reset by peer: socket write error Io exception: Connection
reset
> by peer: socket write error java.sql.SQLException: Io exception:
Connection
> reset by peer: socket write error
> ....
>
> I think that 'validationQuery' is not enough, because this method is
only
> called if a broker will be borrowed from pool. In my current
implementation
> I create a PB during servlet startup and save it in a
MyDatabaseServiceImpl
> in ServletContext. So I only can catch exceptions from broker if
> databaseaccess fails. If this exception occures, there should be a way
to
> reinitialize ConnectionFactory, maybe with
PersistenceBrokerFactory.reset()
> or .refresh(). If the problem still exists after 'reset()', ok, then
there
> is no connection to the database.
>
> Reinhard
>
> > -----Original Message-----
> > From: Armin Waibel [mailto:armin@code-au-lait.de]
> > Sent: Thursday, May 29, 2003 3:16 PM
> > To: OJB Users List
> > Subject: Re: Handle broken database connections
> >
> >
> > Hi Reinhard,
> >
> > don't know which version of OJB you use (think
> > it's an older version), but in current version something
> > similar done when using 'validationQuery' attribute.
> > See
> > http://cvs.apache.org/viewcvs.cgi/db-ojb/src/java/org/apache/o
> > jb/broker/
> > accesslayer/ConnectionFactoryPooledImpl.java
> >
> > What I mean is that we don't have a method
> > to clean/refresh the connection-pool at runtime.
> >
> > PersistenceBrokerFactory.releaseAllInstances();
> > clean the PB-pool but does NOT affect the connection
> > pool. So do you think we need a method to clean/refresh
> > the used ConnectionFactory instance too (e.g. enhance
> > PBF.releaseAllInstances to refresh ConnectionFactory too)
> > - or does 'validationQuery' feature suffice?
> >
> > regards,
> > Armin
> >
> > ----- Original Message -----
> > From: "Reinhard Dunst" <re...@tub.at>
> > To: "'OJB Users List'" <oj...@db.apache.org>
> > Sent: Thursday, May 29, 2003 2:41 PM
> > Subject: RE: Handle broken database connections
> >
> >
> > > Hi Armin,
> > >
> > > yes I think so. A 'refresh()' would make sense. Because there are
a
> > lot of
> > > situations where the connection to the database can be
> > lost. And when
> > I look
> > > in archive for similar situations, there are some of them. I saw,
> > there is
> > > just a 'connection.isClosed()' in
> > > ConnectionFactoryConPooledImpl.validateObject() and a lost
> > connection
> > is
> > > already open. And additionaly the connection will be
> > checked only if a
> > > broker will be borrowed.
> > >
> > > What do you think about my actual workaround?
> > >
> > > public void checkConnection()
> > > throws MyConnectionFailException
> > > {
> > > try
> > > {
> > > // try a fast testquery like 'select 1 from dual' in oracle
> > > ....
> > > Object obj = broker.getObjectByQuery(query);
> > > }
> > > catch (Exception ex)
> > > {
> > > try
> > > {
> > > PersistenceBrokerFactory.releaseAllInstances();
> > > broker =
> > PersistenceBrokerFactory.createPersistenceBroker(...);
> > > }
> > > catch (Exception ex)
> > > {
> > > throw new MyConnectionFailException();
> > > }
> > > }
> > > }
> > >
> > > Thanks in advance,
> > > Reinhard
> > >
> > >
> > > -----Original Message-----
> > > From: Armin Waibel [mailto:armin@code-au-lait.de]
> > > Sent: Wednesday, May 28, 2003 3:13 PM
> > > To: OJB Users List
> > > Subject: Re: Handle broken database connections
> > >
> > >
> > > Hi Reinhard,
> > >
> > > ----- Original Message -----
> > > From: "Reinhard Dunst" <re...@tub.at>
> > > To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
> > > Sent: Wednesday, May 28, 2003 1:13 PM
> > > Subject: Handle broken database connections
> > >
> > >
> > > > Hi,
> > > >
> > > > how can I handle broken database connections. If I shut down the
> > > database
> > > > and restart it,
> > >
> > > you could use the 'validationQuery' attribute within the
> > connection-pool
> > > element to check connection before it could be obtained from pool.
> > >
> > > currently we don't have a 'refresh()' method on ConnectionFactory
> > > level to allow the implementation class to refresh their
connection
> > > pool - if con-pooling was supported.
> > > Would such a 'refresh' method make sense?
> > >
> > > regards,
> > > Armin
> > >
> > > > I get following errormessage occure:
> > > >
> > > > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> > > > PersistenceBrokerException during
> > > > the execution of the query:
> > > > Io exception: Connection reset by peer: socket write error Io
> > > exception:
> > > > Connection reset by peer: socket write error
> > > > java.sql.SQLException: Io exception: Connection reset by peer:
> > socket
> > > write
> > > > error
> > > >
> > > > My current configuration is
> > > > java 1.4.1
> > > > ojb 1.0 rc2
> > > >
> > > > Thanks in advance
> > > > Reinhard
> > > >
> > > >
> > > >
> > > >
> > >
> > ==============================================================
> > ==========
> > > ====
> > > > ==========
> > > > Reinhard Dunst
> > > > T.U.B. Technologie- & Unternehmensberatung GmbH
> > > >
> > > > mobile: +43.664 - 2525928
> > > > email: mailto:reinhard.dunst@tub.at
> > > >
> > >
> > ==============================================================
> > ==========
> > > ====
> > > > ==========
> > > >
> > > >
> > >
> > >
> > >
> > >
>
> ---------------------------------------------------------------------
> > > 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
> >
>
RE: Handle broken database connections
Posted by Reinhard Dunst <re...@tub.at>.
Hi Armin,
now I changed to current version from OBJ 1.0 rc2 to rc3.
The problem after restart the connected database still exists.
This is my configuration for connection-pool
<connection-pool
maxActive="21"
maxIdle="5"
testWhileIdle="true"
testOnBorrow="true"
whenExhaustedAction="2"
timeBetweenEvictionRunsMillis="10000"
minEvictableIdleTimeMillis="10000"
numTestsPerEvictionRun="5"
validationQuery="select 1 from dual"
/>
I got following errormessage:
[org.apache.ojb.broker.accesslayer.StatementsForClassImpl] ERROR: Io
exception: Connection reset by peer: socket write error
java.sql.SQLException: Io exception: Connection reset by peer: socket write
error
....
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
PersistenceBrokerException during the execution of the query: Io exception:
Connection reset by peer: socket write error Io exception: Connection reset
by peer: socket write error java.sql.SQLException: Io exception: Connection
reset by peer: socket write error
....
I think that 'validationQuery' is not enough, because this method is only
called if a broker will be borrowed from pool. In my current implementation
I create a PB during servlet startup and save it in a MyDatabaseServiceImpl
in ServletContext. So I only can catch exceptions from broker if
databaseaccess fails. If this exception occures, there should be a way to
reinitialize ConnectionFactory, maybe with PersistenceBrokerFactory.reset()
or .refresh(). If the problem still exists after 'reset()', ok, then there
is no connection to the database.
Reinhard
> -----Original Message-----
> From: Armin Waibel [mailto:armin@code-au-lait.de]
> Sent: Thursday, May 29, 2003 3:16 PM
> To: OJB Users List
> Subject: Re: Handle broken database connections
>
>
> Hi Reinhard,
>
> don't know which version of OJB you use (think
> it's an older version), but in current version something
> similar done when using 'validationQuery' attribute.
> See
> http://cvs.apache.org/viewcvs.cgi/db-ojb/src/java/org/apache/o
> jb/broker/
> accesslayer/ConnectionFactoryPooledImpl.java
>
> What I mean is that we don't have a method
> to clean/refresh the connection-pool at runtime.
>
> PersistenceBrokerFactory.releaseAllInstances();
> clean the PB-pool but does NOT affect the connection
> pool. So do you think we need a method to clean/refresh
> the used ConnectionFactory instance too (e.g. enhance
> PBF.releaseAllInstances to refresh ConnectionFactory too)
> - or does 'validationQuery' feature suffice?
>
> regards,
> Armin
>
> ----- Original Message -----
> From: "Reinhard Dunst" <re...@tub.at>
> To: "'OJB Users List'" <oj...@db.apache.org>
> Sent: Thursday, May 29, 2003 2:41 PM
> Subject: RE: Handle broken database connections
>
>
> > Hi Armin,
> >
> > yes I think so. A 'refresh()' would make sense. Because there are a
> lot of
> > situations where the connection to the database can be
> lost. And when
> I look
> > in archive for similar situations, there are some of them. I saw,
> there is
> > just a 'connection.isClosed()' in
> > ConnectionFactoryConPooledImpl.validateObject() and a lost
> connection
> is
> > already open. And additionaly the connection will be
> checked only if a
> > broker will be borrowed.
> >
> > What do you think about my actual workaround?
> >
> > public void checkConnection()
> > throws MyConnectionFailException
> > {
> > try
> > {
> > // try a fast testquery like 'select 1 from dual' in oracle
> > ....
> > Object obj = broker.getObjectByQuery(query);
> > }
> > catch (Exception ex)
> > {
> > try
> > {
> > PersistenceBrokerFactory.releaseAllInstances();
> > broker =
> PersistenceBrokerFactory.createPersistenceBroker(...);
> > }
> > catch (Exception ex)
> > {
> > throw new MyConnectionFailException();
> > }
> > }
> > }
> >
> > Thanks in advance,
> > Reinhard
> >
> >
> > -----Original Message-----
> > From: Armin Waibel [mailto:armin@code-au-lait.de]
> > Sent: Wednesday, May 28, 2003 3:13 PM
> > To: OJB Users List
> > Subject: Re: Handle broken database connections
> >
> >
> > Hi Reinhard,
> >
> > ----- Original Message -----
> > From: "Reinhard Dunst" <re...@tub.at>
> > To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
> > Sent: Wednesday, May 28, 2003 1:13 PM
> > Subject: Handle broken database connections
> >
> >
> > > Hi,
> > >
> > > how can I handle broken database connections. If I shut down the
> > database
> > > and restart it,
> >
> > you could use the 'validationQuery' attribute within the
> connection-pool
> > element to check connection before it could be obtained from pool.
> >
> > currently we don't have a 'refresh()' method on ConnectionFactory
> > level to allow the implementation class to refresh their connection
> > pool - if con-pooling was supported.
> > Would such a 'refresh' method make sense?
> >
> > regards,
> > Armin
> >
> > > I get following errormessage occure:
> > >
> > > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> > > PersistenceBrokerException during
> > > the execution of the query:
> > > Io exception: Connection reset by peer: socket write error Io
> > exception:
> > > Connection reset by peer: socket write error
> > > java.sql.SQLException: Io exception: Connection reset by peer:
> socket
> > write
> > > error
> > >
> > > My current configuration is
> > > java 1.4.1
> > > ojb 1.0 rc2
> > >
> > > Thanks in advance
> > > Reinhard
> > >
> > >
> > >
> > >
> >
> ==============================================================
> ==========
> > ====
> > > ==========
> > > Reinhard Dunst
> > > T.U.B. Technologie- & Unternehmensberatung GmbH
> > >
> > > mobile: +43.664 - 2525928
> > > email: mailto:reinhard.dunst@tub.at
> > >
> >
> ==============================================================
> ==========
> > ====
> > > ==========
> > >
> > >
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > 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
>
Re: Handle broken database connections
Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Reinhard,
don't know which version of OJB you use (think
it's an older version), but in current version something
similar done when using 'validationQuery' attribute.
See
http://cvs.apache.org/viewcvs.cgi/db-ojb/src/java/org/apache/ojb/broker/
accesslayer/ConnectionFactoryPooledImpl.java
What I mean is that we don't have a method
to clean/refresh the connection-pool at runtime.
PersistenceBrokerFactory.releaseAllInstances();
clean the PB-pool but does NOT affect the connection
pool. So do you think we need a method to clean/refresh
the used ConnectionFactory instance too (e.g. enhance
PBF.releaseAllInstances to refresh ConnectionFactory too)
- or does 'validationQuery' feature suffice?
regards,
Armin
----- Original Message -----
From: "Reinhard Dunst" <re...@tub.at>
To: "'OJB Users List'" <oj...@db.apache.org>
Sent: Thursday, May 29, 2003 2:41 PM
Subject: RE: Handle broken database connections
> Hi Armin,
>
> yes I think so. A 'refresh()' would make sense. Because there are a
lot of
> situations where the connection to the database can be lost. And when
I look
> in archive for similar situations, there are some of them. I saw,
there is
> just a 'connection.isClosed()' in
> ConnectionFactoryConPooledImpl.validateObject() and a lost connection
is
> already open. And additionaly the connection will be checked only if a
> broker will be borrowed.
>
> What do you think about my actual workaround?
>
> public void checkConnection()
> throws MyConnectionFailException
> {
> try
> {
> // try a fast testquery like 'select 1 from dual' in oracle
> ....
> Object obj = broker.getObjectByQuery(query);
> }
> catch (Exception ex)
> {
> try
> {
> PersistenceBrokerFactory.releaseAllInstances();
> broker = PersistenceBrokerFactory.createPersistenceBroker(...);
> }
> catch (Exception ex)
> {
> throw new MyConnectionFailException();
> }
> }
> }
>
> Thanks in advance,
> Reinhard
>
>
> -----Original Message-----
> From: Armin Waibel [mailto:armin@code-au-lait.de]
> Sent: Wednesday, May 28, 2003 3:13 PM
> To: OJB Users List
> Subject: Re: Handle broken database connections
>
>
> Hi Reinhard,
>
> ----- Original Message -----
> From: "Reinhard Dunst" <re...@tub.at>
> To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
> Sent: Wednesday, May 28, 2003 1:13 PM
> Subject: Handle broken database connections
>
>
> > Hi,
> >
> > how can I handle broken database connections. If I shut down the
> database
> > and restart it,
>
> you could use the 'validationQuery' attribute within the
connection-pool
> element to check connection before it could be obtained from pool.
>
> currently we don't have a 'refresh()' method on ConnectionFactory
> level to allow the implementation class to refresh their connection
> pool - if con-pooling was supported.
> Would such a 'refresh' method make sense?
>
> regards,
> Armin
>
> > I get following errormessage occure:
> >
> > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> > PersistenceBrokerException during
> > the execution of the query:
> > Io exception: Connection reset by peer: socket write error Io
> exception:
> > Connection reset by peer: socket write error
> > java.sql.SQLException: Io exception: Connection reset by peer:
socket
> write
> > error
> >
> > My current configuration is
> > java 1.4.1
> > ojb 1.0 rc2
> >
> > Thanks in advance
> > Reinhard
> >
> >
> >
> >
>
========================================================================
> ====
> > ==========
> > Reinhard Dunst
> > T.U.B. Technologie- & Unternehmensberatung GmbH
> >
> > mobile: +43.664 - 2525928
> > email: mailto:reinhard.dunst@tub.at
> >
>
========================================================================
> ====
> > ==========
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
RE: Handle broken database connections
Posted by Reinhard Dunst <re...@tub.at>.
Hi Armin,
yes I think so. A 'refresh()' would make sense. Because there are a lot of
situations where the connection to the database can be lost. And when I look
in archive for similar situations, there are some of them. I saw, there is
just a 'connection.isClosed()' in
ConnectionFactoryConPooledImpl.validateObject() and a lost connection is
already open. And additionaly the connection will be checked only if a
broker will be borrowed.
What do you think about my actual workaround?
public void checkConnection()
throws MyConnectionFailException
{
try
{
// try a fast testquery like 'select 1 from dual' in oracle
....
Object obj = broker.getObjectByQuery(query);
}
catch (Exception ex)
{
try
{
PersistenceBrokerFactory.releaseAllInstances();
broker = PersistenceBrokerFactory.createPersistenceBroker(...);
}
catch (Exception ex)
{
throw new MyConnectionFailException();
}
}
}
Thanks in advance,
Reinhard
-----Original Message-----
From: Armin Waibel [mailto:armin@code-au-lait.de]
Sent: Wednesday, May 28, 2003 3:13 PM
To: OJB Users List
Subject: Re: Handle broken database connections
Hi Reinhard,
----- Original Message -----
From: "Reinhard Dunst" <re...@tub.at>
To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
Sent: Wednesday, May 28, 2003 1:13 PM
Subject: Handle broken database connections
> Hi,
>
> how can I handle broken database connections. If I shut down the
database
> and restart it,
you could use the 'validationQuery' attribute within the connection-pool
element to check connection before it could be obtained from pool.
currently we don't have a 'refresh()' method on ConnectionFactory
level to allow the implementation class to refresh their connection
pool - if con-pooling was supported.
Would such a 'refresh' method make sense?
regards,
Armin
> I get following errormessage occure:
>
> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> PersistenceBrokerException during
> the execution of the query:
> Io exception: Connection reset by peer: socket write error Io
exception:
> Connection reset by peer: socket write error
> java.sql.SQLException: Io exception: Connection reset by peer: socket
write
> error
>
> My current configuration is
> java 1.4.1
> ojb 1.0 rc2
>
> Thanks in advance
> Reinhard
>
>
>
>
========================================================================
====
> ==========
> Reinhard Dunst
> T.U.B. Technologie- & Unternehmensberatung GmbH
>
> mobile: +43.664 - 2525928
> email: mailto:reinhard.dunst@tub.at
>
========================================================================
====
> ==========
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Handle broken database connections
Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Reinhard,
----- Original Message -----
From: "Reinhard Dunst" <re...@tub.at>
To: "OJB-Users-List (E-mail)" <oj...@db.apache.org>
Sent: Wednesday, May 28, 2003 1:13 PM
Subject: Handle broken database connections
> Hi,
>
> how can I handle broken database connections. If I shut down the
database
> and restart it,
you could use the 'validationQuery' attribute within the connection-pool
element to check connection before it could be obtained from pool.
currently we don't have a 'refresh()' method on ConnectionFactory
level to allow the implementation class to refresh their connection
pool - if con-pooling was supported.
Would such a 'refresh' method make sense?
regards,
Armin
> I get following errormessage occure:
>
> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
> PersistenceBrokerException during
> the execution of the query:
> Io exception: Connection reset by peer: socket write error Io
exception:
> Connection reset by peer: socket write error
> java.sql.SQLException: Io exception: Connection reset by peer: socket
write
> error
>
> My current configuration is
> java 1.4.1
> ojb 1.0 rc2
>
> Thanks in advance
> Reinhard
>
>
>
>
========================================================================
====
> ==========
> Reinhard Dunst
> T.U.B. Technologie- & Unternehmensberatung GmbH
>
> mobile: +43.664 - 2525928
> email: mailto:reinhard.dunst@tub.at
>
========================================================================
====
> ==========
>
>