Hey all,

- I sent an e-mail detailing how to shut off PreparedStatement caching 
in JBoss 2.0-Final.  Please see the archives if you're interested.  It 
will work for JBoss 2.1 as well(minerva beta3?)

- I am re-writing the PreparedStatement caching for minerva.  Who 
maintains minerva and where is the CVS for it so I can submit it to 
them? Is Aaron Mulder the culprit?

Bill

Filip Hanik wrote:

>> Doesn't this defeat the purpose of caching and prepared statements? If you
>> close the prepared statement then the db connection goes away
>> right? So why
>> used a prepared statmenet at all, beacuse it is never really prepared? It
>> seems to me the cache would need to keep at least one of each prepared
>> statement used to be of any value.
> 
> 
> no, you should not cache statements. If you are using prepared statements,
> it is on the level of the driver to make sure that they are cached.
> 
> a prepared statement should give you the same performance even if you close
> them in your code, since it is handled by the driver, not by the programmer,
> or by jboss.
> 
> caching statements goes back to 1997 when the drivers did not do this for
> you. now a days, almost all of them do.
> 
> Filip
> 
> ~
> Namaste - I bow to the divine in you
> ~
> Filip Hanik
> Software Architect
> [EMAIL PROTECTED]
> www.filip.net
> 
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED]]On Behalf Of Hansen,
>> Richard
>> Sent: Thursday, March 22, 2001 1:53 PM
>> To: '[EMAIL PROTECTED]'
>> Subject: RE: [JBoss-user] A little BMP philosophy/understanding
>> 
>> 
>> Rick Hansen
>> 
>> -----Original Message-----
>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>> Sent: Thursday, March 22, 2001 1:25 PM
>> To: [EMAIL PROTECTED]
>> Subject: RE: [JBoss-user] A little BMP philosophy/understanding
>> 
>> 
>> 
>> 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
>> 
>> _______________________________________________
>> 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
> 
> 
> 



_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to