|
<Resource name="jdbc/AS400" auth="Container" type="javax.sql.DataSource" /> <ResourceParams name="jdbc/AS400"> <!-- Parameter factory --> <parameter> <name>factory</name> <value> org.apache.commons.dbcp.BasicDataSourceFactory </value> </parameter> <!-- dB username and password for dB connections --> <parameter> <name>maxActive</name> <value>40</value> </parameter> <parameter> <name>maxIdle</name> <value>4</value> </parameter> <parameter> <name>username</name> <value>userid</value> </parameter> <parameter> <name>password</name> <value>password</value> </parameter> <parameter> <name>driverClassName</name> <value>com.ibm.as400.access.AS400JDBCDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:as400://Nameofas400here;naming=system;errors=full;access=all;translate binary=true;extended dynamic=true;package=CSI;package cache=true;</value> </parameter> <parameter> <name>removeAbandoned</name> <value>true</value> </parameter> <parameter> <name>removeAbandonedTimeout</name> <value>6000</value> </parameter> <parameter> <name>logAbandoned</name> <value>true</value> </parameter> <parameter> <name>testWhileIdle</name> <value>true</value> </parameter> <parameter> <name>timeBetweenEvictionRunsMillis</name> <value>1800000</value> </parameter> <parameter> <name>numTestsPerEvictionRun</name> <value>4</value> </parameter> <parameter> <name>validationQuery</name> <value>select current date from sysibm/sysdummy1</value> </parameter> Now this can be accessed from within an application, like so: Context initCtx = new InitialContext(); Context envCtx = ( Context ) initCtx.lookup( "java:comp/env" ); DataSource dataSource = = (DataSource)envCtx.lookup( "jdbc/AS400" ); Now a connection is just: Connection conn = dataSource.getConnection();If you do a conn.close(); the connection is returned to the datasource pool.
ps: Most of this technique is a straight lift from the Tomcat JNDI/Howto ( http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html ).
Regards, Narayanan R Pillai RPower@xxxxxxxxxx wrote:
I'm trying to figure out if I should be creating and closing my connections to the JDBC each time a servlet is called or should I just open it once and leave it open? ie: public void performTask(HttpServletRequest req, HttpServletResponse resp) {sess = req.getSession(true); customer = (Customer) sess.getAttribute("customer"); createAuditTrail = false; try { //!---New code put in Jun 2, 2005 if (ds == null) getDS(); conn = ds.getConnection(); dmd = conn.getMetaData(); code here..... conn.close(); is this efficient or am I wasting valuable resources? Thanks, Ron Power Programmer Information Services City Of St. John's, NL P.O. Box 908 St. John's, NL A1C 5M2 709-576-8132 rpower@xxxxxxxxxx http://www.stjohns.ca/ ___________________________________________________________________________Success is going from failure to failure without a loss of enthusiasm. - Sir Winston ChurchillThis email communication and accompanying documents is intended only for the individual or entity to which it is addressed and may contain information that is confidential, privileged or exempt from disclosure under applicable law. Any use of this information by individuals or entities other than the intended recipient is strictly prohibited. If you have received this in error, please notify the sender and delete all the copies (electronic or otherwise) immediately.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.