因为你用了连接池,所以数据库连接使用完毕后只是被放回连接池,而不是立即被释放。
但是你可以设置连接池的最大连接数,这样就不会达到oracle的最大session了。

解决方案 »

  1.   

    因为你用了连接池,所以数据库连接使用完毕后只是被放回连接池,而不是立即被释放。
    但是你可以设置连接池的最大连接数,这样就不会达到oracle的最大session了。
      

  2.   

    配置的连接数目前是可以的。应该没有问题
    现在点击查询后,按理说oracle中的session应该可以立即释放,这一点我写了一个jsp直接使用连接池的连接测试的时候是可以做到立即释放的。但是在我们做的这个系统中,查看oracle的会话session,发现点击一次就多一个session,状态都是inactive。虽然在代码中释放了连接,然而这里却不能看到被释放了。而是等到3分钟后才能释放(前提是配置文件中使用default)。问题不在配置,而是请求后为什么oracle中没有关闭连接?这个和连接池有什么关系?
      

  3.   

    是不是自己写的连接池?如果是,肯定是connection的管理有问题;
    如果使用第三方的连接池,就仔细阅读配置文档吧。
      

  4.   

    你用的是啥连接池?? dbcp?? 如果用的是dbcp, 那把idle数调低
      

  5.   

    <?xml version="1.0" encoding="UTF-8"?>
     <something-else-entirely>
      <proxool>
        <alias>pool1</alias>
        <driver-url>jdbc:oracle:thin:@192.168.1.220:1521:test</driver-url>
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
        <driver-properties>
          <property name="user" value="test"/>
          <property name="password" value="test"/>
        </driver-properties>
        <house-keeping-test-sql>select CURRENT_DATE from dual</house-keeping-test-sql>
      
        <house-keeping-sleep-time>10000</house-keeping-sleep-time>    <maximum-new-connections>20</maximum-new-connections>    <prototype-count>5</prototype-count>    <maximum-connection-count>300</maximum-connection-count>    <minimum-connection-count>10</minimum-connection-count>
      </proxool>
    </something-else-entirely>
    请各位大侠看看
      

  6.   

    最终找到问题的答案,和大家共享一下。
    我们使用的是hibernate3.1版本,出现上述问题。
    更新为hibernate3.0版本,问题得到解决。看来这个问题是否是3.1版本的bug???
    希望其他使用者注意。