hmm, that's really strange I can't find a "OJB usage bug", your code seems ok to me.
'getCollection' lookup a PB instance and close it after use. This guarantee the cleanup of all used resources. Maybe there is a bug in the Oracle platform classes (org.apache.ojb.broker.platforms).
regards, Armin
Mindy Pereira wrote:
Method "number at target" is called from a loop: for(int i=0;i<200;i++) { Long size = numberAtTarget(i,2005,1,0,0); }
public Long numberAtTarget(Long programId, Long year, Long qtr, Long value, Long type) throws FHYSPException { Query q = new QueryBySQL(ActualBean.class, "select * from actual where year = "+year+" and cat = "+qtr+" and actual_info="+value+" and type = "+type+" and perf_id in (select id from perf_desc where program_id="+programId+")"); Collection c = getCollection(q); if(c==null) return new Long(0); else { debug("got some"+c.size()); return new Long(c.size()); } }
public static Collection getCollection(Query q) throws FHYSPException{
PersistenceBroker broker = null;
Collection c = null;
try{
broker =
PersistenceBrokerFactory.defaultPersistenceBroker();
c = broker.getCollectionByQuery(q);
}catch(Exception e){
LogUtils.logError(":"+e);
if (broker != null) broker.close();
throw new FHYSPException("error.database");
}finally{
//System.out.println("CLOSING THE BROKER");
if (broker != null) broker.close(); }
return c;
}
-----Original Message-----
From: Armin Waibel [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 05, 2004 11:24 AM
To: OJB Users List
Subject: Re: Maximum open cursors exceeded
Hi Mindy,
cleanup of used resources should be done by OJB itself.
I assume you use PB.getCollectionByQuery, do you use the same PB instance for both queries?
Can you post the complete test code?
regards, Armin
Ribi Roland wrote:
I'm not a OJB Guru, perhaps anyone else here can help?
It could be a bug in OJB. But I don't know the Ojb very well.
Roland Ribi
-----Original Message----- From: Mindy Pereira [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 05, 2004 5:10 PM To: OJB Users List Subject: RE: Maximum open cursors exceeded
If that's the problem, how do I force OJB to close the statement?
-----Original Message----- From: Ribi Roland [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 05, 2004 11:08 AM To: 'OJB Users List' Subject: RE: Maximum open cursors exceeded
This is'nt the problem of the query, this is because the close() Method of a java.sql.Statement-Object is'nt called after the query.
Oracle needs to close all open cursers after the query is finished. This occurs after too many SQL-Calls to the database without closing the cursor. You can also create this behavior whith stored procedures in Oracle.
Perhaps ojb does'nt closes the Statements in this QueryBySQL ?
Roland Ribi
-----Original Message----- From: Mindy Pereira [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 05, 2004 5:02 PM To: OJB Users List Subject: Maximum open cursors exceeded
I'm getting a collection beans using a QueryBySQL.
Previously, it worked with no problems, however, when I
added another
filter to the data set ("where X = Y and Z = 2 and W = 3"),
I got the
following error:
[org.apache.ojb.broker.accesslayer.StatementsForClassImpl] ERROR: ORA-01000: max imum open cursors exceeded
Any help would be appreciated. Mindy
---------------------------------------------------------------------
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]
--------------------------------------------------------------------- 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]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
