, Добрый день всем!
У меня было требование использовать несколько баз данных в приложении.В весеннем конфигурационном файле я настраиваю два источника данных каждый для отдельной базы данных.
<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...
Может ли кто-нибудь дать мне подсказку, как я могу решить эту проблему производительности?
PS 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 секунды....