,大家好!
我要求在应用程序中使用多个数据库。在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秒...