美文网首页
oracle主动断开连接

oracle主动断开连接

作者: 念䋛 | 来源:发表于2021-06-30 13:38 被阅读0次

当项目运行的时候,会有数据库断开连接的情况,java报错信息如下
org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 17008, SQLState: 08003
org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 关闭的连接
oracle主动的关闭了连接,这样做可以防止长连接过多导致性能下降,这也是一把双刃剑,如果项目长时间没有访问,oracle就可能主动的断开连接。而且oracle断开连接,客户端是没有感知的,导致客户端访问oracle发生关闭连接的异常。
那如何保证oracle不主动的关闭连接呢
oracle配置方面两个关键的参数

connect time:连接会话的最长连接时间分钟数,当用户会话时间超过指定的时间,Oracle将回滚当前事务,并且结束sesion
idle time:连接会话的最长空闲时间分钟数,当用户空闲时间超过指定的时间,Oracle将回滚当前事务,并且结束他的会话

--查看配置文件 有default和其他的profiles
select t.* from dba_profiles t; 
--查看用户使用的是哪个配置文件
select username,profile from dba_users where username='PHIS_UNIEAP';
--修改配置文件 单位是分钟
alter profile DEFAULT limit idle_time UNLIMITED;

客户端方面可以配置数据库的保活机制,这里用tomcat数据源举例

      validation-query: SELECT 1 from dual #保活机制发送的sql
      max-wait: 10000 #空闲连接的最大等待事件
      initial-size: 1 #初始化1个连接
      max-idle: 2   #最大两个连接,最大连接数建议是核心数+1,防止多连接导致的线程上下文切换
      time-between-eviction-runs-millis: 5000 #每隔多久向数据库发送心跳,单位是毫秒
      test-while-idle: true  #开启保活机制

相关文章

  • oracle主动断开连接

    当项目运行的时候,会有数据库断开连接的情况,java报错信息如下org.hibernate.engine.jdbc...

  • TCP 三次握手四次挥手

    四次挥手: Client: 主动断开连接Server: 被动断开连接 Client完成数据发送之后, 发送FIN给...

  • muduo网络库初识

    一、前言 关于网络编程的几个核心: 连接的建立:服务端的accept和客户端的connect 连接的断开:主动断开...

  • TCP四次挥手

    A:FIN+ACK(发起断开连接)B:ACK(对断开连接进行确认)B:FIN+ACK(发起断开连接)A:ACK(对...

  • 连接断开

  • 断开连接

    今天是我在岗的最后一天,明天我就要离职了。准确地说,是公司通知我项目到期了,我被迫离开了。我一直自诩自己是...

  • TCP中的TIME_WAIT

    为什么要有TIME_WAIT? TIME_WAIT是TCP主动关闭连接一方的一个状态,TCP断开连接的时序图如下:...

  • tcp连接的断开

    TCP的断开就是经过四次挥手: 这是正常的情况,客户端主动tcp连接断开的过程。客户端先是发送一个FIN为一的报文...

  • Linux下tcp连接断开后,端口释放问题

    Linux系统下,TCP/IP连接断开 如果客户端先断开连接,server端再断开,那么server端占用的端口号...

  • iOS—XMPP重连以及其他问题(完结)

    在实际应用场景中,会遇到各种连接的问题,比如网络差导致socket断开连接、发了ping包服务器无响应、服务器主动...

网友评论

      本文标题:oracle主动断开连接

      本文链接:https://www.haomeiwen.com/subject/tdlrultx.html