Hi, You could write your own ConnectionFactory http://db.apache.org/ojb/docu/guides/connection.html And execute the appropriate statement in the lookup method.
E.g. public class MyConnectionManager extends ConnectionFactoryDBCPImpl { public Connection lookupConnection(JdbcConnectionDescriptor jcd) throws LookupException { Connection con = super.lookupConnection(jcd); if(con != null){ /* Execute the ALTER stataement here */ } }; } This would be executed every time a new connection was requested for the Broker; this is probably overkill, but it is simple. The more "correct" way of doing it would be to execute the SQL statement when the connection is actually *created* - but where that is, depends on which connection factory you are using. Hope that's a pointer in the right direction for you... Cheers, Charles. > -----Original Message----- > From: Bruno CROS [mailto:[EMAIL PROTECTED] > Sent: 10 October 2006 09:34 > To: OJB Users List > Subject: Re: Monitoring DB cursor leaks > > http://oracleandy.blogspot.com/2006/03/vopencursor-find-cursor > s-that-are.html > > Perhaps i found something to detect bad code, but i don't > known how to set the session parameter in OJB connections. > The equivalent of : > alter session set "_close_cached_open_cursors" = TRUE > > Did someone already do ? > > Thanks > > > > > On 10/10/06, Bruno CROS <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > Here is my connector, Oracle9i yet... > > > > May be i have to set the jdbc-level at 3.0 ? > > > > Referring to this article, it seems that it is a hard to > resolve trouble. > > > > http://www.orafaq.com/node/758 > > > > Except looking into code, how to check "real" cursors leak > (if they are)? > > > > Regards > > > > <jdbc-connection-descriptor > > jcd-alias="default" > > default-connection="true" > > platform="Oracle9i" > > jdbc-level=" 2.0" > > driver="oracle.jdbc.driver.OracleDriver" > > protocol="jdbc" > > subprotocol="oracle" > > dbalias="thin:@XXXX:1521:ZZZZZ" > > username="uuuuuuuuu" > > password="pppppppp" > > batch-mode="false" > > useAutoCommit="1" > > ignoreAutoCommitExceptions="false" > > > > > > > > > > > ---------- Forwarded message ---------- > > From: Danilo Tommasina <[EMAIL PROTECTED] > > > Date: Oct 9, 2006 6:08 PM > > Subject: Re: Monitoring DB cursor leaks > > To: OJB Users List <ojb-user@db.apache.org> > > > > Hi, > > > > we were having that problem too, long time ago. You should use the > > 'Oracle9i' Platform setting in your > jdbc-connection-descriptor instead > > of the Oracle 'Platform', that should fix the problem. IIRC the > > 'Oracle' Platform does a caching of PreparedStatements, however the > > Oracle Driver has its own PreparedStatements cache, having > this double > > caching causes too many cursors to stay open. > > The Oracle9i Platform should not make use of the local > > PreparedStatements cache. > > Furhtermore the 'Oracle9i' offers better performance and correct > > handling for BLOBs > 4kB, for 9i or later Oracle versions. > > > > Good luck > > cheers > > Danilo > > > > Bruno CROS wrote: > > > Hi all, > > > > > > Experiencing some MAX OPEN CURSOR oracle errors (ORA > -01000) , i'm > > looking > > > for the cursors leaks ( unclosed ResultSet it seems) in code. > > > > > > I guess that broker queries well close the result set. So when > > > report queries results iteration are closed ? on > HasNext()==false ? > > > > > > Is it possible to check open cursors when releasing connections ? > > > and by > > > > > the > > > way, close them if needed ? > > > > > > Note : MAX_OPEN_CURSOR Oracle parameter is actually set at 500 by > > > connection ( and 1000 sooner ) > > > > > > Oracle 10, OJB 1.0.4 with some litle updates > > > > > > Regards. > > > > > > > > --------------------------------------------------------------------- > > 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]