用到tomcat连oracle数据库配连接池了,搞了一天,终于搞好了,其中也遇到了几个很棘手的问题,现在贴出来,以备后人学习,少走些弯路;(手工配置连接池)
环境:tomcat5.5,oracle9i;(tomcat5.5和tomcat5.0的在server.xml中的写法有些区别)
首先,在tomcat的xml文件中创建数据源;
%tomcat_root%/conf/server.xml
中:
在<host>...</host>中添加一下代码:
<!--pool-->
<Context path="/solarcn
" docBase="solarcn
" debug="5" reloadable="true" crossContext="true">
<Resource name="solar_ds
"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.0.25:1521:ora
"
username="solarcn
"
password="solarcn
"
maxActive="5"
maxIdle="10"
maxWait="5000"/>
</Context>
<!--//pool-->
--红色部分是需要你怎么更改的,现在挨个来解释下:
1.path="/solarcn" :这个是你的工程名的访问路径;
2.docBase="solarcn
":工程名;
3.Resource name="solar_ds
" :数据源的名;
4.url="jdbc:oracle:thin:@192.168.0.25:1521:ora
":数据库连接路径;
下面的数据库用户名密码就不用说了....
其次,在%tomcat_root%/conf/web.xml中引用数据源;
在最后的</webapp>前加入以下代码:
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>solar_ds
</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
红色部分就是数据源的名称,和上面server.xml中的 Resource name="solar_ds
"
相对应;
然后就是在程序中获得数据源了;
public static Connection getConn(){
Connection conn = null;
DataSource ds = null;
try {
Context ctx = new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env");
ds =(DataSource)envCtx.lookup("solar_ds
"); //获得数据源,红色名字与上面server.xml中的数据源名字对应
conn = ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
这样就获得了Connection...
这里要注意一点,数据源的名字要统一了,我在server.xml、web.xml和程序中都是用的"solar_ds"作为我的数据源名称;
=================================================================================
下面说一下在配置过程中遇到的几个比较棘手的问题,这几个问题是在配置连接池时的主要拦路虎,我百度了大半天,终于一一搞定了````
...
1.
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
--这是在初始化context时(Context envCtx = (Context)
ctx.lookup("java:comp/env");)抛出的异常;解决方法是把工程/WEB-INF/lib下面naming-
common.jar,naming-factory.jar,naming-resources.jar三个jar包删除;
2。
org.apache.tomcat.dbcp.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (Io 异常: Connection
refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))))
--这是
在获得Connection的时候抛出的异常,前提是已经获得了数据源DataSource;出现这种情况是
无法创建连接池工厂对象,原因是连接被拒绝。
解决办法:检查建立数据源时(server.xml中)
url
字符串,可能服务器地址、端口、数据库名或者数据库实例名等信息错误。修改。
尤其着重检查url中url="jdbc:oracle:thin:@192.168.0.25:1521:ora
" 的ora,这个地方是数据库的实例名,而不是表空间的名字;
3。
Caused
by: java.sql.SQLException: Io 异常: Connection
refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
--出现这种异常一般是和第2种关联一块出现的,按第2步的方法一般就能解决;
对了,还有别忘了把oracle数据库的驱动classes12.jar放到tomcat下去...
到此,应该就会成功的配置好连接池了,可以自己建个jsp测试一下拉...
分享到:
相关推荐
《Tomcat配置Oracle连接池详解》 在Java Web应用中,Tomcat作为流行的Servlet容器,其性能优化和资源管理是关键环节之一。Oracle数据库作为企业级的数据库管理系统,经常被用于存储大量数据。本文将深入探讨如何在...
6. **检查连接池配置**: 除了上述手动配置外,你还可以通过修改`context.xml`文件(位于Tomcat的`conf/Catalina/localhost`目录下,对应于你的应用上下文)来配置数据源。在`<Context>`标签内,添加`<Resource>`...
在Tomcat这样的应用服务器中配置Oracle连接池,可以有效地管理数据库连接,提高系统资源利用率,减少数据库的开销。下面我们将详细介绍如何在Tomcat下配置Oracle的连接池,包括局部和全局的配置。 首先,我们需要...
-- 新增的数据库连接池配置 --> driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ora" maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select * ...
【描述】:本话题主要涉及Tomcat 6.0版本的配置,包括虚拟目录的设置以及解决不能列出目录的问题,并介绍了Tomcat 6.0的连接池配置。 【标签】:“Tomcat 6.0” 【正文】: Tomcat 6.0配置虚拟目录是一项基本操作...
**标题**: Tomcat连接池配置 **描述**: Tomcat连接池配置涉及到在Apache Tomcat服务器中设置数据源,以便高效地管理和复用数据库连接。这包括对Oracle和MSSQL Server这两种不同类型的数据库进行配置,并在Java应用...
本文将详细讲解如何在Tomcat 6.0中配置Oracle数据库连接池。 首先,我们要明白连接池的基本原理。数据库连接池管理数据库连接,避免每次需要连接时都创建新的连接,而是复用已存在的连接,这样可以显著减少数据库...
### 二、Tomcat连接池配置详解 #### 1. 修改server.xml文件 Tomcat的server.xml文件位于conf目录下,是Tomcat的核心配置文件,控制着Tomcat的启动、停止以及主要服务的配置。在该文件中,我们可以通过添加`...
配置DBCP连接池需要添加相应的依赖库,包括`commons-dbcp.jar`、`commons-pool.jar`和`commons-collections.jar`,以及相应的数据库驱动包,如Oracle的`classes12.jar`,这些库文件需要放在Tomcat的`lib`目录下。...
Java 配置 Oracle 连接池 Java 配置 Oracle 连接池是指在 Java 应用程序中...在配置 Oracle 连接池时,需要在 Tomcat 的配置文件中添加相应的配置信息。在 conf 目录下的 context.xml 文件中添加以下配置: ```xml ...
总结来说,配置Tomcat连接池是提升Web应用性能的关键步骤,它涉及到管理界面的操作和配置文件的修改。理解这些参数的意义并根据实际情况进行调整,能够帮助你更好地管理和优化你的数据库连接,提升应用的整体性能。
本文将详细介绍如何在Tomcat环境中配置Oracle数据库连接池,并给出相应的配置示例。 #### 二、配置步骤 ##### 1. 在 `server.xml` 文件中配置数据源 首先,需要在Tomcat服务器的 `server.xml` 文件中的 `...
Tomcat6在连接池配置方面进行了重大改进,不再依赖于server.xml文件进行全局配置,而是允许每个应用程序独立地配置其所需的连接池。这种变化带来了更灵活的部署策略,同时也要求开发者更加细致地管理每个应用的资源...
- **maxIdle/maxWait/maxActive**: 连接池配置参数,分别代表空闲连接的最大数量、获取连接时的最大等待时间(毫秒)、活动连接的最大数量。 #### 1.2 在`web.xml`中引用数据源 接下来,在`web.xml`中通过`...
通过以上配置,我们可以在 Tomcat 6 中成功设置一个 Oracle 数据库的连接池数据源。合理的配置不仅能提升应用性能,还能保证系统的稳定性和安全性。开发者应根据实际需求灵活调整各项参数,并密切关注应用运行时的...
本文档主要讲述的是tomcat 6.0配置oracle数据库连接池;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
### Tomcat6连接池配置详解(自动重连) #### 一、引言 在现代Web应用开发中,数据库连接管理是非常重要的一环。为了提高应用性能并确保资源的有效利用,通常采用连接池技术来管理数据库连接。Apache Tomcat作为一...