我有hibernate 3.3,c3p0,MySql 5.1和Spring。 我的服务调用中的MySQL连接在约39分钟后一直关闭。我的服务电话的自然运行时间大约为5个小时。
我已经尝试更改各种c3p0配置等,以避免39分钟上限。没有运气。
是否有更直接,系统的方式来记录或排除故障?即,我可以找到为什么关闭连接,以及谁,在哪一层?
更新:堆栈跟踪
24 Oct 2010 02:22:12,262 [WARN] 012e323c-df4b-11df-89ed-97e9a9c1ac19 (Foobar Endpoint : 3) org.hibernate.util.JDBCExceptionReporter: SQL Error: 0, SQLState: 08003
24 Oct 2010 02:22:12,264 [ERROR] 012e323c-df4b-11df-89ed-97e9a9c1ac19 (Foobar Endpoint : 3) org.hibernate.util.JDBCExceptionReporter: No operations allowed after connection closed.
24 Oct 2010 02:22:12,266 [ERROR] 012e323c-df4b-11df-89ed-97e9a9c1ac19 (Foobar Endpoint : 3) org.hibernate.event.def.AbstractFlushingEventListener: Could not synchronize database state with session
答案 0 :(得分:1)
我有hibernate 3.3,c3p0,MySql 5.1和Spring。我的服务调用中的MySQL连接在约39分钟后一直关闭。我的服务电话的自然运行时间大约为5个小时。
我不确定我是否理解。你有进程应该运行5个小时,但目前在约3900万(或可能2400秒)后中止。你确定吗?什么以前工作?你有什么改变吗?
同时,这里有一些想法:
--log-warnings
选项启动服务器并检查日志中是否有可疑消息不要忘记使用Hibernate时C3P0的配置是very specific,并且某些设置必须放在c3p0.properties
文件中。
答案 1 :(得分:0)