It should *not* look the same, because the syntax of the <Resource> element changed after 5.0. Look for <ResourceParam> in the 5.0 documentation. -- Len
On 4/13/07, Fargusson.Alan <[EMAIL PROTECTED]> wrote:
Thanks. I am using 5.0.28, but what I have looks like what you have. I will take a closer look to make sure I didn't miss something. -----Original Message----- From: Rashmi Rubdi [mailto:[EMAIL PROTECTED] Sent: Thursday, April 12, 2007 5:59 PM To: Tomcat Users List Subject: Re: DB2 DataSource. Your Tomcat version is not known, so I'm assuming the latest version 6.0.10. Here's what should go in: ------------------------------------------------------ ...../MyProject/WEB-INF/web.xml ------------------------------------------------------ <?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-app_2_5.xsd" version="2.5"> <description>MySQL Test App</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> ----------------------------------------------------------------------------------------- According to the HOW-TO document I gave earlier the JAR for the JDBC driver must be placed in Tomcat's lib folder, so .......\apache-tomcat-6.0.10_bak_20070410\lib\ ----------------------------------------------------------------------------------------- mysql-connector-java-5.0.5-bin.jar ----------------------------------------------------------------------------------------- Add the connection pooling configuration to your application's Context definition ----------------------------------------------------------------------------------------- <Context path="" docBase="C:/dev/projects/ConnectionPooling" reloadable="true" debug="true"> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/> </Context> ----------------------------------------------------------------------------------------- And finally, here's the sample working code: /WEB-INF/classes/com/connectionpooltest/ConnectionPoolTest.java ---------------------------------------------------------------------------------------- package com.connectionpooltest; import java.sql.*; import javax.naming.*; import javax.sql.DataSource; public class ConnectionPoolTest { public void testConnection() throws SQLException, NamingException{ Connection conn = null; Statement stmt = null; ResultSet rs = null; try{ //conn = ... get connection from connection pool ... Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB"); conn = ds.getConnection(); //stmt = conn.createStatement("select ..."); stmt = conn.createStatement(); //rs = stmt.executeQuery(); rs = stmt.executeQuery("SELECT 'Java Connection Pooling Test' as a FROM dual"); //... iterate through the result set ... while (rs.next()) { String s = rs.getString("a"); System.out.println(" s is : " + s); } rs.close(); rs = null; stmt.close(); stmt = null; conn.close(); // Return to connection pool conn = null; // Make sure we don't close it twice }catch(SQLException e){ e.printStackTrace(); }finally{ // Always make sure result sets and statements are closed, // and the connection is returned to the pool if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } stmt = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } } } } Since Connection Pooling is handled by the Container, the above code must be called from within the context of the Container --- so it must be called from either a Servlet or a JSP page --- it cannot be called from the command line alone using a main method. -Rashmi --------------------------------------------------------------------- To start a new topic, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To start a new topic, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]