zoukankan      html  css  js  c++  java
  • java.sql.SQLException: Io 异常: Connection reset

    当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLException: Io 异常: Connection reset” 或“java.sql.SQLException 关闭的连接”异常。

    在配置数据源后面加上

    <property name="validationQuery" value="select * from dual"/>


    配置后,客户端在使用一个无效的连接时会先对该连接进行测试,如果发现该连接已经无效,则重新从连接池获取有效数据库连接来使用。

    在tomcat的context.xml里面设置数据源时候可参考:

     <Resource auth="Container"
      driverClassName="oracle.jdbc.OracleDriver"
      type="javax.sql.DataSource" 
      url="jdbc:oracle:thin:@11.11.11.45:1521:orcl"
      name="jdbc/login"
      username="login"
      password="login"
      maxActive="15"
      maxIdle="10"
      maxWait="-1"
      minIdle="2"
      removeAbandonedTimeout="5"
      testOnBorrow="true"
      testWhileIdle="true"
      testOnReturn="true"
      removeAbandoned="true"
      logAbandoned="true"
      validationQuery="select 1 from dual"
     /> 
     
     <Resource auth="Container"
      driverClassName="oracle.jdbc.OracleDriver"
      type="javax.sql.DataSource" 
      url="jdbc:oracle:thin:@11.11.11.44:1521:orcl"
      name="jdbc/intraweb"
      username="intraweb"
      password="intraweb"
      maxActive="15"
      maxIdle="10"
      maxWait="-1"
      minIdle="2"
      removeAbandonedTimeout="5"
      testOnBorrow="true"
      testWhileIdle="true"
      testOnReturn="true"
      removeAbandoned="true"
      logAbandoned="true"
      validationQuery="select 1 from dual"
     />

    使用ALTER SYSTEM KILL SESSION终止一个会话。下面的例句sid 7,serial# 15:
        ALTER SYSTEM KILL SESSION '7,15';

  • 相关阅读:
    1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛
    2577 医院设置
    2488 绿豆蛙的归宿
    3315 时空跳跃者的魔法
    1079 回家
    1365 浴火银河星际跳跃
    1074 食物链 2001年NOI全国竞赛
    2596 售货员的难题
    wetask.cn领度任务全新试用体验
    多线程--生产者消费者--简单例子
  • 原文地址:https://www.cnblogs.com/jifeng/p/4738077.html
Copyright © 2011-2022 走看看