起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 141|回复: 9

【搞定】请教关于tomcat的连接池问题**

[复制链接]
发表于 2007-12-14 17:19:07 | 显示全部楼层 |阅读模式
用toad连接数据库时提示ora-00200错误
ORA-00020: maximum number of processes (150) exceeded
buisness.exe可以运行。
后来停掉tomcat,使用toad用system登录,查看session,发现java.exe创建了很多session,其状态都是killed。在网上查了查,说是killed并没有释放。这些session从12.4开始创建的。请问这是为什么?tomcat创建了会话不会自己释放吗?在这些连接池中的连接什么时候会释放?

由于前些日子出现闲置一段时间就会出断开与数据库连接的错误,修改了tomcat的server.xml,增加了连接检查的选项,会不会和这个有关呢?
        <Context path="/x3" docBase="x3" debug="5" reloadable="true" crossContext="true">
          <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_justep_log." suffix=".txt" timestamp="true"/>  
          <Resource name="EDI" url="jdbcraclecijustep" username="EDI_CLIENT" password="ok" driverClassName="oracle.jdbc.driver.OracleDriver" auth="Container" type="javax.sql.DataSource" validationQuery="select count(*) from c_edi_msg" testOnBorrow="true" testOnReturn="true" testWhileIdle="true"/>  
          <Resource name="Justep" url="jdbcracleciJustep" username="justep" password="ok" driverClassName="oracle.jdbc.driver.OracleDriver" auth="Container" type="javax.sql.DataSource" validationQuery="select count(*) from Tperson" testOnBorrow="true" testOnReturn="true" testWhileIdle="true"/>  
          <Resource name="EDIDB" url="jdbcracleciEDIDB" username="edi" password="ok" driverClassName="oracle.jdbc.driver.OracleDriver" auth="Container" type="javax.sql.DataSource" validationQuery="select count(*) from EC_COMMUNICATION" testOnBorrow="true" testOnReturn="true" testWhileIdle="true"/>
        </Context>
      </Host>

急啊,盼回复
回复

使用道具 举报

 楼主| 发表于 2007-12-14 18:02:33 | 显示全部楼层
补充:现在我们的Juste服务器与数据库服务器之间有一个防火墙,会不会是防火墙造成的将空闲的连接Kill掉的呢?由于配置连接池的设置,所以再次使用的时候就会创建新的连接,而以前kill掉的也没有释放,时间长了就会出现到达最大的连接的情况了呢?

另:象这种tomcat服务器与数据库服务器之间有防火墙的,该怎么配置呢?有没有什么特殊要求啊?
回复 支持 反对

使用道具 举报

发表于 2007-12-15 09:52:42 | 显示全部楼层
这个问题比较复杂,需要确认,周一给你反馈结果吧,见谅
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-15 09:55:08 | 显示全部楼层
ok,谢谢
回复 支持 反对

使用道具 举报

发表于 2007-12-17 09:02:25 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-17 16:35:26 | 显示全部楼层
看了,很好的帖子,不过理解起来有的地方有些费力,麻烦给解释一下成么?
maxIdle和removeAbandoned 这两个参数我理解起来有些迷糊,朗兄能否再给解释一下?

1.maxIdle  数据库连接的最大空闲时间。超过此空闲时间,数据库连接将被标记为不可用,然后被释放。
这里指的是放在数据库连接池中的连接的最大空闲时间么?当超过这个时间被tomcat标记为不可用么?然后释放指什么?这个连接在连接池中就没有了么?会不会重新再创建一个?

2. removeAbandoned 回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。
回收被遗弃的数据库连接到连接池中是什么意思?这些连接不是都在连接池中么?
removeAbandonedTimeout参数必须和removeAbandoned参数一起用么?
按我现在这里的情况,我该使用maxIdle 参数呢还是removeAbandoned 参数?
回复 支持 反对

使用道具 举报

发表于 2007-12-17 16:39:44 | 显示全部楼层
你只要设置 http://bbs.justep.com/forum.php?mod=viewthread&tid=17612
1楼红色部分就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-17 16:43:12 | 显示全部楼层
哦。谢谢,能不能顺便给解释一下我上面的疑问啊?菜鸟,别见怪

哪些被Kill掉的session不在连接池中么?
回复 支持 反对

使用道具 举报

发表于 2007-12-17 17:06:29 | 显示全部楼层
这些参数我也是一知半解的,怕说错了,你到网上查查看吧,有很多这方面的资料呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-17 17:14:35 | 显示全部楼层
呵呵,我查过了,不过没有找到我满意的答案。好吧,谢谢朗兄了,我再查查看吧。这个帖子可以结了,有问题再开新贴吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-2 15:42 , Processed in 0.045841 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表