此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【yan518】截止到2008-07-10 17:30:49的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:40 每贴平均分数:13
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:2 结贴的总分数:20
无满意结贴数:1 无满意结贴分:20
未结的帖子数:1 未结的总分数:20
结贴的百分比:66.67 % 结分的百分比:50.00 %
无满意结贴率:50.00 % 无满意结分率:100.00%
楼主加油
楼主【yan518】截止到2008-07-10 17:30:49的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:40 每贴平均分数:13
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:2 结贴的总分数:20
无满意结贴数:1 无满意结贴分:20
未结的帖子数:1 未结的总分数:20
结贴的百分比:66.67 % 结分的百分比:50.00 %
无满意结贴率:50.00 % 无满意结分率:100.00%
楼主加油
问题在于hibernate连接MSSQL2000大概10个小时后出现
StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
org.hibernate.exception.JDBCConnectionException: Cannot open connection
c3p0 sqlserver2000连接池试一下,其中特别注意的是''driverClass' , 'jdbcUrl', 'user' , 'password'区分大小写 ,并且要把c3p0-0.9.1-pre6.jar放到classpath中;1.sqlserver2000<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>com/oy/image/model/LoginUser.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.connection.release_mode">auto</prop>
<prop key="hibernate.autoReconnect">true</prop>
</props>
</property>
</bean> <bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=users</value>
</property>
<property name="user">
<value>bruce</value>
</property>
<property name="password">
<value>bruce</value>
</property>
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements">
<value>0</value>
</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
<bean id="imageDao" name="imageDao"
class="com.oy.image.dao.hibernate.ImageDaoHibernate" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="imageManager" name="imageManager"
class="com.oy.image.service.impl.ImageManagerImpl" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="imageDao">
<ref bean="imageDao" />
</property>
</bean>
</beans>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!-- driver for Derby-->
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://192.168.18.234:1433;databasename=CY</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>123</value>
</property>
<!-- 初始化连接 -->
<property name="initialSize">
<value>20</value>
</property>
<!-- 最大连接数量 -->
<property name="maxActive">
<value>100</value>
</property>
<!-- 最大空闲连接 -->
<property name="maxIdle">
<value>30</value>
</property>
<!-- 最小空闲连接 -->
<property name="minIdle">
<value>10</value>
</property>
<!-- 是否在自动回收超时连接的时候打印连接的超时错误 -->
<property name="logAbandoned">
<value>true</value>
</property>
<!-- 是否自动回收超时连接 -->
<property name="removeAbandoned">
<value>true</value>
</property>
<!-- 超时时间(以s为单位) -->
<property name="removeAbandonedTimeout">
<value>20</value>
</property>
<!-- 超时等待时间(以ms为单位) -->
<property name="maxWait">
<value>1000</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<!--
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
-->
</props>
</property>
<property name="mappingResources">
<list>
<value>com/ssh/model/Tmodule.hbm.xml</value>
<value>com/ssh/model/Tuser.hbm.xml</value>
<value>com/ssh/model/Tarticle.hbm.xml</value></list>
</property>
</bean>
<bean name="userdao" class="com.ssh.dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
</beans>
这样配置有什么不对的地方 吗
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver </value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://192.168.18.234:1433;databasename=CY </value>
</property>
<property name="username">
<value>sa </value>
</property>
<property name="password">
<value>123 </value>
</property>
<!-- 初始化连接 -->
<property name="initialSize">
<value>20 </value>
</property>
<!-- 最大连接数量 -->
<property name="maxActive">
<value>100 </value>
</property>
<!-- 最大空闲连接 -->
<property name="maxIdle">
<value>30 </value>
</property>
<!-- 最小空闲连接 -->
<property name="minIdle">
<value>10 </value> 你这后面都有空格 空格去掉试下
不过这次是大概两三天后不能连接数据库。
问下this.getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery()
这句有什么问题没有。。
java.sql.SQLException: An SQLException was provoked by the following failure: com.mchange.v2.resourcepool.ResourcePoolException: Attempted to use a closed or broken resource pool
com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:531)
com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
org.hibernate.loader.Loader.doQuery(Loader.java:673)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
com.ssh.dao.UserDAO.login(UserDAO.java:34)
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:72)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.ssh.API.EncodingFilter.doFilter(EncodingFilter.java:26)
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://192.168.18.234:1433;databasename=CY</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>123</value>
如果有子配置文件,你把数据库表名改到子培植文件中,我以前SQL遇到过就那样解决了