Kenneth:
There's a number of good connection pool implementations out there in open
source, perhaps you can start from one of them first to save some effort -
the connection pool we use in Expresso has some of the features you're
looking for though. You can set a limit on the number of connections and say
how long they can be held (with auto release, handling your timeout issue).
We've used it in a number of situations where the number of connections is
limited (either by memory or by the hosting company) and it scales well.
You're welcome to a copy at our site (http://www.javacorporate.com) - hope
it's helpful.
Mike
Javacorporate Ltd
> -----Original Message-----
> From: A mailing list for discussion about Sun Microsystem's
> Java Servlet
> API Technology. [mailto:[EMAIL PROTECTED]]On
> Behalf Of Kwan,
> Kenneth Y
> Sent: Thursday, December 02, 1999 10:34 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Two simultaneous statements in the same connection.
>
>
> Thanks Graig and I��m now have more confidence on sharing
> connections among
> servlets
>
> The reasons behind why I have to build my connection pool
> instead of using
> common ones are:
> - The hit rate of my app will be very large and all
> servlet operations
> (doGet/doPost) require many database queries and updates
> - each connection in Oracle requires around 70M memory
> and so seems
> difficult to built a large pool
> - all updates are auto-commit
> - heard that connection will hold resources in Oracle
> if connection
> keep open for sometime, so I have to refresh (release and re-connect)
> connections periodically and I don��t known whether existing
> connection pool
> implementations have taken care about that
> - heard that connection will timeout if not used for
> long time, so I
> have to set periodic task to do dummy operation
>
> I really don��t want to write my own connection pool but can
> anyone help to
> clear my concerns.
>
> Thanks in advance
>
> Kenneth
>
> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Sent: Friday, December 03, 1999 12:38 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Two simultaneous statements in the same
> connection.
>
> "Kwan, Kenneth Y" wrote:
>
> > So, does anyone know that Oracle 8i JDBC OCI driver
> can support
> concurrent
> > statements on the same connection, e.g. connection
> which is shared
> by many
> > servlets ?
> >
>
> There are really two issues here.
>
> Yes, the Oracle drivers support multiple active statements per
> connection. The
> connection can be shared by many servlets -- a very
> convenient way
> is to store
> the open connection as a servlet context attribute
> (ServletContext.setAttribute()).
>
> However, you need to consider what happens when more
> than one person
> is using
> your servlet-based application. If they are all
> using the same
> connection, the
> fact that you have multiple statements works fine, up
> until the
> point where you
> do a COMMIT or ROLLBACK for a user. At that point,
> the database
> transaction
> which is running is completed -- and this affects *all* of the
> users, whether
> they are through or not! Database transactions are
> global to a
> connection.
>
> This is one of the reasons that connection pools were
> created. The
> idea is
> that, within a single response, you follow this kind
> of a design
> pattern:
> * Allocate a connection from the pool
> * Do all the database work you need
> * Do a COMMIT or ROLLBACK
> * Return the connection to the pool
>
> In this way, the database accesses from different
> simultaneous users
> do not
> interfere with each other, because they are running
> in different
> transactions.
> Within a particular transaction, you can still have multiple
> statements open if
> you need them (because Oracle supports this), but
> they will all be
> aimed at
> performing part of a single overall process.
>
> There have been tons of discussions about connection
> pools on this
> list, along
> with sources for several versions of them. See the
> list archives
> (http://archives.java.sun.com) for details, or check
> some of the FAQ
> sites.
>
> >
> > Kenneth
> >
>
> Craig McClanahan
>
>
> ______________________________________________________________
> _____________
> To unsubscribe, send email to [EMAIL PROTECTED]
> and include in
> the body
> of the message "signoff SERVLET-INTEREST".
>
> Archives:
> http://archives.java.sun.com/archives/servlet-interest.html
> Resources:
> http://java.sun.com/products/servlet/external-resources.html
> LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
>
> ______________________________________________________________
> _____________
> To unsubscribe, send email to [EMAIL PROTECTED] and
> include in the body
> of the message "signoff SERVLET-INTEREST".
>
> Archives: http://archives.java.sun.com/archives/servlet-interest.html
> Resources:
> http://java.sun.com/products/servlet/external-resources.html
> LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
>
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html