at [EMAIL PROTECTED]
(www.yorku.ca)
Tom
> -----Original Message-----
> From: Ashwath Narayan A [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, August 05, 1999 11:12 AM
> To: [EMAIL PROTECTED]
> Subject: Java Language Mailing List
>
>
> Hi all,
>
> Is there a similar mailing list on Java language features?
> Could somebody point me there?
>
> Thanks.
> --Ashwath
>
>
> -----Original Message-----
> From: Craig McClanahan <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> Date: Thursday, August 05, 1999 1:21 PM
> Subject: Re: Thread safe JDBC connection
>
>
> >Nitin Kulkarni wrote:
> >
> >> HI Chris
> >>
> >> Could you please elaborate a bit on this. I was/am under
> the impression
> that
> >> since init() is going to get called only once in a
> servlets life time
> anything
> >> we write in that is going to be thread safe. But your
> mails seems to say
> that it
> >> is/may not be so always.
> >> Also what does ' the diff types of JDBC implementations'
> mean. Here
> again I am
> >> under the impression that JDBC since it is provided by sun
> it has to be
> same
> >> only we need diff drivers to connect to diff databases.
> >> Please throw some light on this
> >>
> >
> >The init() method indeed "thread safe" in the manner you are
> talking about.
> In
> >other words, the servlet engine guarantees that there will
> be only one
> thread in the
> >init() method, and that no calls to the service() method
> will occur until
> init()
> >returns.
> >
> >The place where you are still not necessarily safe is that, once the
> service() calls
> >start happening, the various calls will be sharing the single JDBC
> connection that
> >you created in the init() method. Some JDBC drivers will handle this
> correctly, in
> >the sense that you can have multiple statements and result
> sets open on the
> same
> >connection at the same time. However, you are almost
> certain to run into
> >transaction problems if your database supports transactions
> (MySQL doesn't,
> for
> >example, but Oracle/Sybase/Postgres/etc. do). If you do a COMMIT or
> ROLLBACK in the
> >thread of one service() call, it will affect the statements currently
> executing in
> >*all* of them.
> >
> >The solution is to use a "connection pool" instead of a
> single connection.
> As the
> >name implies, you open a set of connections in the init()
> method, instead
> of just
> >one. Whenever a service() method call needs to access the
> database, it
> does
> >essentially this:
> >* Allocates one of the connections from the pool
> >* Does its JDBC calls on the connection that
> > is, for the moment, dedicated to that thread.
> >* Returns the connection to the pool.
> >
> >A good analogy to this is checking books out of a library --
> the book is
> available
> >to everyone, but can be checked out and read by only one
> person at a time.
> >
> >There has been substantial discussion about connection
> pools, including
> suggestions
> >on some freely available ones, on this list. I suggest you
> peruse the
> archives
> >(http://archives.java.sun.com) and look for messages that
> have "connection
> pool" or
> >"connection broker" in their subjects.
> >
> >>
> >> Thanks
> >>
> >> Nitin
> >>
> >
> >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