最近把自己的一个项目发布运行,结果发现经常在操作过程中死掉,工程是ssh,配置方式是在hibernate配置,在spring中调用。以为是jdbc数据池的问题,网上查了下就换用了C3P0数据池。结果问题一样,
想想是不是hibernate问题有问题,就直接在spring中配置数据源配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close" abstract="false" singleton="true"
lazy-init="default" autowire="default" dependency-check="default">
<property name="driverClass">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:mysql://localhost:3306/db</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>123456</value>
</property>
<property name="minPoolSize">
<value>10</value>
</property>
<property name="maxPoolSize">
<value>20</value>
</property>
<property name="initialPoolSize">
<value>10</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">
true
</prop>
<prop key="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</prop>
<prop key="hibernate.query.substitutions">
true 1, false 0, yes 'Y', no 'N'
</prop>
<prop key="hibernate.bytecode.use_reflection_optimizer">
true
</prop>
<prop key="hibernate.use_outer_join">true</prop>
<prop key="hibernate.prepare_sql">true</prop>
<prop key="hibernate.query.factory_class">
org.hibernate.hql.ast.ASTQueryTranslatorFactory
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>xx/xx/xx/xx/xx.hbm.xml</value>
</list>
</property>
</bean>
</beans>
运行时报错:com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
网上查找了n久,都没解决。只是提到url不正确。于是想到以前IIS出现过只识别ip不识别locahost的bug 所以试用127.0.0.1,结果运行没有报错。success! 至于为什么还有待去研究。。