我有一个可以正常运行的带有Spring Security的Spring MVC应用程序,但是只要服务器有一段时间没有处于活动状态并且有人尝试登录,就会出现以下错误:
HTTP状态500-请求处理失败;嵌套的异常是org.springframework.transaction.CannotCreateTransactionException:无法打开Hibernate Session进行事务处理。嵌套的异常是org.hibernate.TransactionException:JDBC开始事务失败
有时(大约5秒钟后)它开始正常工作。
我搜索并找到了this链接,但是我不知道如何在连接池配置中配置连接测试。
有什么建议吗?
编辑:
我发现this链接用于设置配置池,因此我尝试在dataSource
中实现它:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://192.168.254.45:3306/7jogos" />
<property name="password" value="..." />
<property name="username" value="..." />
<!-- Configuration pool -->
<property name="validationQuery" value="SELECT 1" />
<property name="validationInterval" value="34000" />
<property name="testOnBorrow" value="true" />
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="55" />
</bean>
但是我最终在validationInterval
上收到一个错误,说:
在此行找到多个注释:-在类“ org.apache.commons.dbcp.BasicDataSource”中找不到属性“ validationInterval”的设置器。
我有一个可以正常运行的带有Spring Security的Spring MVC应用程序,但是每隔一段时间服务器没有处于活动状态并且有人尝试登录时,就会出现以下错误:HTTP状态...
没有堆栈跟踪,很难确定,但是您很有可能处理过期的数据库连接。 Hibernate无法为您启动事务,因为它尝试运行的第一条语句(“ START TRANSACTION-通过JDBC”)失败。同样,我认为这是因为同时,基础数据库连接已失效
替换
答案是在我的编辑中,该编辑是在具有连接数据的bean中添加以下内容: