Personally, I'd just keep a reference to the datasource around maybe as
a class instance variable. It doesn't constitute a connection in and of
itself -- just a way of getting one from the pool. Connections on the
other hand should be explicitly closed as soon as they aren't needed
anymore in any method that get's one.
--David
Hyatt, Gordon wrote:
>Hello All,
>
>I'm a newbie to database pooling via JNDI and I have a JNDI/Tomcat question
>(more of a "best practices"/most scalable/fastest performance/least resource
>consumption type of question).
>
>Each time the JNDI resource (pooled database connection) is needed, should a
>complete JNDI lookup be performed or can part of the lookup be "cached"? For
>example, should the code be:
>
>
>Context initCtx = new InitialContext ();
>Context envCtx = (Context)initCtx.lookup ("java:comp/env");
>ds = (DataSource)envCtx.lookup ("jdbc/data_source_name");
>
>
>
>or can the java:comp/env Context be saved as an attribute in the servlet
>context and a (synchronized) code segment like the following be used to obtain
>the DataSource?
>
>
>Context ctx = (Context)ctxFromServletContext.lookup ("");
>ds = (DataSource)ctx.lookup ("jdbc/data_source_name");
>
>
>Thus far, I haven't read anything about which method is acceptable/preferred
>or if one method yields significant performance benefit.
>
>Since, according to the docs a Context is not guaranteed to be synchronized
>against concurrent access by multiple threads, I assume that the first code
>segment above should be synchronized, especially if it is in a static method.
>
>Thanks in advance,
>
>Gord
>
>-
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
===
David Smith
Network Operations Supervisor
Department of Entomology
College of Agriculture & Life Sciences
Cornell University
2132 Comstock Hall
Ithaca, NY 14853
Phone: 607.255.9571
Fax: 607.255.0939
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]