[ Team LiB ] |
![]() ![]() |
Recipe 21.2 Configuring a DataSource in TomcatProblemYou want to configure a javax.sql.DataSource for use in a servlet with the Tomcat web container. SolutionCreate a resource element in Tomcat's server.xml file and an associated resource-ref element in the web.xml deployment descriptor. DiscussionTomcat makes it easy to set up a connection pool so that servlets and JSPs can efficiently share database connections. In web sites that have many simultaneous users, a connection pool improves efficiency by sharing existing database connections, rather than creating a new connection and tearing it down every time an application has to use the database. Another benefit of configuring a connection pool is that you can change the database system that a servlet or JSP is using without touching the Java code, because the database resource is configured outside of the servlet or JSP. Here are the steps for configuring a DataSource with Tomcat:
Example 21-2 shows the Resource and a ResourceParams elements in server.xml. This example describes a DataSource that connects with an Oracle 8i database. Example 21-2. The resource element in server.xml<Resource name="jdbc/oracle-8i-athletes" scope= "Shareable" type="javax.sql.DataSource" auth= "Container" description="Home Oracle 8i Personal Edition"/> <ResourceParams name="jdbc/oracle-8i-athletes"> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@192.168.0.2:1521:ORCL</value> </parameter> <parameter> <name>username</name> <value>scott</value> </parameter> <parameter> <name>password</name> <value>tiger</value> </parameter> </ResourceParams> Create a Resource and ResourceParams element for each database that your application uses. Example 21-3 shows the resource-ref element associated with the Resource specified by Example 21-2. Example 21-3. A resource-ref element specifies a DataSource in web.xml<!-- top of web.xml file --> <resource-ref> <res-ref-name>jdbc/oracle-8i-athletes</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <!-- rest of web.xml file --> The JNDI path to this DataSource, which you use in a JNDI lookup (see the next recipe), is jdbc/oracle-8i-athletes.
See AlsoThe JDBC specification: http://java.sun.com/products/jdbc/download.html; Recipe 21.3 on using a DataSource in a servlet with Tomcat; Recipe 21.4-Recipe 21.6 on configuring and using DataSources with servlets and JSPs on WebLogic; Recipe 21.7 and Recipe 21.8 on calling stored procedures from servlets and JSPs; Recipe 21.9 on converting a java.sql.ResultSet object to a javax.servlet.jsp.jstl.sql Result; Recipe 21.10 and Recipe 21.11 on using transactions in servlets and JSPs; Recipe 21.12 on finding out information about a ResultSet. |
[ Team LiB ] |
![]() ![]() |