Rumah  >  Artikel  >  pangkalan data  >  数据库连接超时问题(求解)

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

WBOY
WBOYasal
2016-06-07 15:41:361666semak imbas

问题出现的背景: 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、把其中一个数据源配置去掉,运行也没问题。

综上,怀疑:

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

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

=求解

 

 

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:KNIME的数据库连接Artikel seterusnya:fmdb(FMDatabase) 数据库总结