tomcat启动应用oracle连接超时

tomcat启动应用oracle连接超时,第1张

tomcat启动应用oracle连接超时

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.0

2. 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.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6937201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存