BoneCP 数据库连接池连接报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

BoneCP 数据库连接池连接报错

2016-03-23 17:58:18 3631 1

请教 Bonecp 连接池经常报

[com.jolbox.bonecp.ConnectionHandle(229)] [ERROR] Failed to acquire connection. Sleeping for 7000ms. Attempts left: 5
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:256)
at com.jolbox.bonecp.ConnectionHandle.obtainInternalConnection(ConnectionHandle.java:211)
at com.jolbox.bonecp.ConnectionHandle.(ConnectionHandle.java:170)
at com.jolbox.bonecp.PoolWatchThread.fillConnections(PoolWatchThread.java:101)
at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:82)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[com.jolbox.bonecp.ConnectionHandle(215)] [INFO ] Successfully re-established connection to DB
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:11:38

    猜测原因应该是:防火墙的长连接和短连接 ,所以数据库老是超时。
    网上查了下防火墙:
    TCP是有状态的连接,状态检测的防火墙能根据该IP包所属的连接是新的还是旧的,决定该IP包是否符合防火墙的政策约定。因此
    ,防火墙必须在内存中保留这一记录,每一个连接,就是一个会话。防火墙支持多少会话连接,取决于防火墙的内存多少,系统会自动使用
    所有内存,直至内存用光,系统崩溃为止。因此,许多防火墙都会设定一个会话连接最大值,一旦系统记录的会话达到这个数值,系统就不
    再建立新的会话。同时,为了保证防火墙的会话连接不会过多,防火墙提出的长连接和短连接的概念,针对不同的网络应用协议调整会话连
    接保持的时间。
    防火墙长连接和短连接的概念
    1、长连接的概念
    长连接功能用于设置特定数据流的超长保持时间,让数据流的会话连接保持时间不受全局老化时间限制。其实这项特殊业务与目前业
    界的状态防火墙的实现机制是存在矛盾的。
    为保证内部网络的安全,防火墙上的各会话缺省保持时间都相对较短,例如:缺省情况下,TCP的保持时间为1200s,UDP的保持时间
    为120s。
    正常情况下,当一个TCP会话的两个连续报文到达防火墙的时间间隔大于该会话的保持时间时,为保证网络的安全性,防火墙将从会
    话表中删除相应会话信息。后续报文到达防火墙后,防火墙根据自身的转发机制,丢弃该报文,导致连接中断。在实际应用中,用户需要查
    询服务器上的数据,这些查询时间间隔远大于TCP/UDP默认的会话保持时间。此时需要在防火墙上保持TCP连接一段相对较长的时间。当某会
    话的报文长时间没有到达防火墙后再次到达时,仍然能够通过防火墙。这种技术就是长连接。
    2、短连接的概念
    某些应用频繁发起连接,如果不缩短其会话保持时间,则会使防火墙的会话数爆涨,进而拖垮防火墙。保持太多的会话对防火墙没有
    必要,相反,当系统资源过多地用在会话保持的话,会相应损害每秒生成会话的能力,这是一个同样重要的性能指标。设定过高的会话数量
    ,却降低了每秒生成会话的能力,其结果,只能是保留一些永远用不到的会话虚数而已。
    因此,我们可以根据网络应用环境的实际需求,缩短某些会话的保持时间,从而减少防火墙的工作负荷,提高网络性能。

    0 0
相关问答

1

回答

无法连接数据库

2017-12-13 03:16:23 553浏览量 回答数 1

1

回答

数据库无法连接

2018-06-03 18:42:00 474浏览量 回答数 1

1

回答

无法连接数据库

2018-02-12 19:00:46 577浏览量 回答数 1

1

回答

数据库无法连接

2018-03-24 22:35:56 633浏览量 回答数 1

3

回答

数据库无法连接

2016-05-28 23:17:49 2196浏览量 回答数 3

0

回答

40数据库无法连接

2013-05-07 14:23:42 4967浏览量 回答数 0

2

回答

mysq数据库连接问题

2014-09-13 13:00:39 9320浏览量 回答数 2

6

回答

数据库连接

2015-07-11 19:32:52 4844浏览量 回答数 6

5

回答

无法连接数据库

2015-08-22 12:38:45 6592浏览量 回答数 5

1

回答

数据库连接 报错 急~?报错

2020-06-22 21:38:04 258浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载