I believe that Bill Burke is going through the cache and making this right
at the moment (Bill, you listening in case I'm wrong?)
On Thu, 22 Mar 2001 [EMAIL PROTECTED] wrote:
> In the original JBoss 2.0 version the PreparedStatement cache was not
> discarded after the connection was returned to the pool because more than
> likely you might want to issue that one of these PreparedStatements again.
> To make matters worse there wasn't an upper limit on the number of
> PreparedStatement objects in the cache so things would continue to grow as
> you prepared new SQL statements. If you happened to prepare the same exact
> SQL statement then you received the previously cached PreparedStatement
> object but otherwise you got a new PreparedStatement that was also added
> to the cache. This would continue until either a) the database complained
> or b) you ran out of memory which ever came first. On Oracle, for example,
> each PreparedStatement takes memory on the database and once you hit 100
> or so the database throws an exception when you try to get another one.
>
> I patched the code by releasing the PreparedStatement cache when the
> Connection was released and submitted that fix but I'm not sure it was
> accepted. What really needs to happen is that the PreparedStatement cache
> needs to be enhanced so that an upper bound can be established via a
> configuration variable so that after x PreparedStatements have been cached
> new PreparedStatements will push one of the old ones out of the cache.
>
> - Jon Harvie
>
>
>
>
>
> Mike Jau <[EMAIL PROTECTED]>
> Sent by: [EMAIL PROTECTED]
> 03/22/2001 12:42 PM
> Please respond to jboss-user
>
>
> To: "'[EMAIL PROTECTED]'"
><[EMAIL PROTECTED]>
> cc:
> Subject: RE: [JBoss-user] A little BMP philosophy/understanding
>
>
> Could you give me some background information about the Preparedstaement
> caching on the EJB container side?
>
> Since the connection get from pool need to return to pool once the
> transaction done. I assumed that the resouce associate to this connection
> should be released and the released resoure include the preparedstatement.
> Later on, the create preparedstatement will be invoked again from
> different
> connection. How the preparedstatement cached is my question?
>
>
> - Mike
>
> -----Original Message-----
> From: Bill Burke [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, March 22, 2001 12:10 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [JBoss-user] A little BMP philosophy/understanding
>
>
>
>
> Dan Christopherson wrote:
>
> > On Fri, 23 Mar 2001, Peter Routtier-Wone wrote:
> >
> >>> Someone from this discussion group indicate that container might cache
> the
> >>> PreparedStatement.
> >>
> >> I can't speak with authority on this, but that rings true. I'm guessing
> that
> >> interception doesn't happen for the setEntityContext() method and
> therefore
> >> you actually create a PreparedStatement rather than receiving one from
> the
> >> pool.
> >>
> >>> Just for kicks, I gave it a try but transactions weren't completed and
> >>> they'd just hang out there forever, blocking every other persistence
> and
> >>> finder method until they timed out.
> >>
> >> That would bollox lifecycle management, and the described behaviour
> wouldn't
> >> be at all surprising.
> >
> > This is also a common bean bug: 'close()' should be called on every
> > resultset, statement, and connection in a finally clause so that you
> know
> > it happens every time.
> >
> >> On the other hand, I'd have thought that PreparedStatements would be
> far
> >> less costly to manufacture than Connections, and therefore not worth
> the
> >> overhead of managing a pool. I think I'll poke my nose into the source
> and
> >> see what's there.
> >
> > There's often communication with the database to create the
> > PreparedStatement. That way it can pre-compile a query plan. There is a
> > prepared statement cache in JBoss: in JBoss 2.0, it caused problems with
> > Oracle's cursor limit (fixed in 2.1).
>
>
> I'm re-writing the minerva PreparedStatement caching so it handles
> cursor limit better. I'll submit the code tomorrow after I test it.
>
> Bill
>
>
>
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user
>
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user
>
>
>
--
Dan Christopherson (danch)
nVisia Technical Architect (www.nvisia.com)
Opinions expressed are mine and do not neccessarily reflect any
position or opinion of nVISIA.
---------------------------------------------------------------------------
If you're a capitalist and you have the best goods and they're
free, you don't have to proselytize, you just have to wait.
-Eben Moglen
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user