使用不同的数据源初始化c3p0池

时间:2011-02-07 10:48:59

标签: hibernate spring datasource c3p0

,大家好!

我要求在应用程序中使用多个数据库。在spring配置文件中,我为每个数据源配置了两个数据源。

<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">someproperties here<bean/>
<bean id="myDataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">someproperties here<bean/>

<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" /> 

<bean id="mySessionFactory2" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource2" ref="myDataSource2" /> 

所以我配置了所有数据源,然后我编写了一些简单的测试来检查spring应用程序上下文加载。我开始测试并且运行时间很长(110秒)。在日志中,我可以看到池已初始化4次。

INFO: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [parameters...

试图删除数据源 - 现在日志文件中有2个池初始化,第一次初始化需要4-6秒,第二次大约需要30-32 ......

有人可以给我一个提示,我该如何解决这个性能问题?

P.S。 Mysql db 5.1,c3p0版本0.9.1.2(我也试过0.9.2),Spring 3.0.4,Hibernate 3.6

编辑:我发现在我的测试中 - 应用程序上下文启动了2次,所以我建议这就是为什么池初始化4次而不是2次,但我仍然有一个第一个数据源的性能问题池初始化8秒,但第二个数据源初始化时间的池是30-32秒...

0 个答案:

没有答案