В настоящее время я использую BoneCP в качестве диспетчера пула соединений, поскольку реальной альтернативы нет (c3p0 не работает). Я использую Hibernate 4 и Spring 3.1, и все работает нормально. Единственное, что меня беспокоит, это регистрация нестандартного драйвера, например oracle.jdbc.driver.OracleDriver
.
Когда приложение запускается и некоторая информация загружается из базы данных, я получаю следующее сообщение:
java.sql.SQLException: не найден подходящий драйвер для jdbc: oracle: thin: @localhost: xxx: xxxx
Источник данных зарегистрирован следующим образом:
<bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy method="close">
<property name="driverClass" ref="hibernate.connection.driver_class" />
<property name="jdbcUrl" ref="hibernate.connection.url" />
<property name="username" ref="hibernate.connection.username" />
<property name="password" ref="hibernate.connection.password" />
<property name="poolName" ref="hibernate.connection.username"/>
...
</bean>
Этот источник данных затем внедряется в сессионную фабрику.
При запуске этого приложения в пристани в затмении оно работает отлично. При развертывании в Tomcat 6.x или Websphere 8.x не удается найти указанный драйвер.
Я пытался добавить этот драйвер в источник данных источника:
<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" ref="hibernate.connection.driver_class"/>
<property name="url" ref="hibernate.connection.url"/>
<property name="username" ref="hibernate.connection.username"/>
<property name="password" ref="hibernate.connection.password"/>
</bean>
Это «исправило» мою проблему, но теперь я получаю исключение при закрытии соединения при загрузке данных из базы данных. (при запуске). Я могу использовать свое приложение, но иногда эта ошибка соединения закрывается снова в случайные моменты.
Я видел, что команда BoneCP подтвердила первую проблему как ошибка BoneCP , но она еще не была исправлена. Я попытался реализовать предложенное решение с этого сайта для отслеживания ошибок, но снова получаю сообщение об ошибке закрытия соединения.
Есть предложения?