1、检查Oracle服务器是否正常,确认Oracle服务器可以正常连接;
2、检查Tomcat服务器的网络配置,确认Tomcat服务器可以正常连接Oracle服务器;
3、检查Tomcat服务器的数据库连接配置,确认数据库连接配置正确;
4、检查Tomcat服务器的连接超时时间,确认超时时间设置正确;
5、检查Tomcat服务器的网络负载,确认网络负载是否过大;
6、检查Tomcat服务器的系统资源,确认系统资源是否充足;
7、检查Oracle服务器的负载,确认Oracle服务器的负载是否过大;
8、检查Oracle服务器的系统资源,确认Oracle服务器的系统资源是否充足;
9、检查Oracle服务器的网络负载,确认网络负载是否过大;
10、检查Oracle服务器的连接超时时间,确认超时时间设置正确。
一、Tomcat6.0中配置数据源
1.在Tomcat根目录/conf/Catalina/localhost目录下新建一个XML文件,文件名称跟工程名称一致.文件中的内容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="E:\Eclipse3.4.2\workspace\mmis\WebContent" path="/mmis">
<Resource name="mmisds" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.2.250:1521:hmisb"
username="mtms" password="mtms"
validationQuery="select 1 from dual"
maxIdle="100" maxActive="500" maxWait="1000" defaultAutoCommit="true"
removeAbandoned="ture" removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
2.在tomcat的conf/context.xml中的<Context>标签中添加一个<Resource/>,内容如下:
<Resource name="jdbc/oa" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="100" maxIdle="500" maxWait="10000"
username="oa" password="oa" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@172.16.60.30:1521:HMIS" defaultAutoCommit="true"
removeAbandoned="ture" removeAbandonedTimeout="60" logAbandoned="true" />
然后在web.xml<web-app>中添加引用(tomcat5.5以上可以不用添加这一段)
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/oa</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
2.1.获取连接对象
public class ConnectionPool{
public static Connection getConn()throws Exception{
//初始化上下文
Context initContext=getInitContext()
Context envContext=(Context)initContext.lookup("java:/comp/env")
DataSource dataSource=(DataSource)envContext.lookup("jdbc/oa")
//获取连接对象
return ds.getConnection()
}
}
docBase是指Web工程所在的位置,path是工程的名称, name是指JNDI的名称,type是数据源的类型,driverClassName是驱动名称,url是驱动的连接字符串
username是指数据库的用户名,password是指数据库的密码,defaultAutoCommit是否自动提交
1.安装tomcat6.02. Tomcat 6.0的 conf\Catalina\localhost 目录下xx.xml文件内容。
xx名称与工程名一样。
<Context debug="1" docBase="C:\Tomcat 6.0\webapps\myweb" path="/myweb" reloadable="true" workDir="work\Catalina\localhost\myweb">
<Resource name="jdbc/openetdb" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@111.11.11.111:1521:openet"
username="newdao"
password="123"
maxActive="20"
maxIdle="3"
removeAbandoned="true"
maxWait="3000" />
</Context>
3.拷贝ojdbc14.jar 到 tomcat的lib下
oracle8i对应的为class12.jar,oracle9i为ojdbc14.jar
4.测试
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
<%
DataSource ds = null
try
{
InitialContext ctx = new InitialContext()
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/openetdb")
Connection conn = ds.getConnection()
String strSql = "SELECT field from TABLE "
Statement stmt = conn.createStatement()
ResultSet rs = stmt.executeQuery(strSql)
while(rs.next())
{
out.println("查出:"+rs.getObject("field"))
}
rs.close()
stmt.close()
conn.close()
}catch(Exception ex)
{
ex.printStackTrace()
out.println(ex)
}
%>
</body>
</html>
另外通过研究还有一种方法配置数据库 以oracle为例:
1.配置%TOMCAT_HOME%\conf\server.xml
<GlobalNamingResources>
<Resource name="jdbc/openetdb"
global="jdbc/openetdb"
auth="Container"
type="javax.sql.DataSource"
password="111"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="abc"
url="jdbc:oracle:thin:@111.11.11.111:1521:SID"
maxActive="4"/>
</GlobalNamingResources>
2.然后,在ROOT\WEB-INF\web.xml中<web-app>和</web-app>之间添加
<resource-ref>
<description>DataSource</description>
<res-ref-name>jdbc/openetdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.最后在%TOMCAT_HOME%\conf\content.xml里面配置当前应用程序的连接:
<ResourceLink
name="jdbc/openetdb"
type="javax.sql.DataSource"
global="jdbc/openetdb"/>
Tomcat 5 maintains a separate namespace of global resources for the entire server. These are configured in the <GlobalNameingResources>element of $CATALINA_HOME/conf/server.xml. You may expose these resources to web applications by using <ResourceLink>elements.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)