首頁  >  文章  >  資料庫  >  数据库连接超时问题(求解)

数据库连接超时问题(求解)

WBOY
WBOY原創
2016-06-07 15:41:361666瀏覽

问题出现的背景: APP框架,生产者和消费者模式,数据源配置包括mysql(mysql的分支maria DB)的数据源和oracle。 问题描述: 初始化时注册c3p0没有问题,在第一次使用数据库连接(此时创建c3p0连接池)时也没异常,但获取数据库连接时异常(如下): java.s

问题出现的背景:

APP框架,生产者和消费者模式,数据源配置包括mysql(mysql的分支maria DB)的数据源和oracle。

问题描述:

初始化时注册c3p0没有问题,在第一次使用数据库连接(此时创建c3p0连接池)时也没异常,但获取数据库连接时异常(如下):

java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.

......

Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@6bf51e5c -- timeout at awaitAvailable()

......

java.lang.IllegalArgumentException: Connection must not be null

......

问题出现的规律:

无规律可言,时不时的,有时候隔一次出现一次连接超时,有时候可能连续几次都会超时。但只要第一次连接成功,运行就没问题。

 

造成数据库连接超时问题的原因,网上解释很多,大都是和c3p0配置有关,但都不能解决上述问题。

 

可能的原因分析:

和数据源有关。

为什么这么说?

1、之前项目(只有oracle数据源)运行一直没问题,本次改动就是新增了mysql(mysql的分支maria DB)数据源。

2、把其中一个数据源配置去掉,运行也没问题。

综上,怀疑:

是不是不能同时引用多个不同数据源?但此理由好像完全站不住脚。

是不是有可能和网络(数据库服务器)有关?

=求解

 

 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn