Maison  >  Article  >  base de données  >  数据库连接超时问题(求解)

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

WBOY
WBOYoriginal
2016-06-07 15:41:361700parcourir

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

综上,怀疑:

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

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

=求解

 

 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:KNIME的数据库连接Article suivant:fmdb(FMDatabase) 数据库总结