首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java 定时功课老是超过150S

2012-12-15 
java 定时作业老是超过150S数据库环境:postgresql连接池:proxool (连接池最长激活时间:150s)框架:spring2.

java 定时作业老是超过150S
数据库环境:postgresql
连接池:proxool (连接池最长激活时间:150s)
框架:spring2.5

定时作业执行
    public void summary() {
        result = (List) transactionTemplate.execute(new TransactionCallback() {
            @Override
            public Object doInTransaction(TransactionStatus status) {
              return (Object)baseDAO.getHibernateSession()
                    .createSQLQuery("select summary();").list();
            }
        });

        if (result != null) {
            LOGGER.info("操作成功 返回:\n" + result.get(0).toString());
        } else
            LOGGER.error("操作失败");
    }

transactionTemplate定义如下:


<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager" />
</bean>

summary()是postgresql数据库函数,我手动在PGSQL里执行时间大概是1S内能执行完,但为什么作业运行一段时间后,经常出现卡在那的现像导致作业未执行完,连接池已经关闭的情况,请问是什么原因?

异常提示如下:

2012-11-23 14:34:37 WARN org.logicalcobwebs.proxool.proxool.a2 | #0014 was active for 157406 milliseconds and has been removed automaticaly. The Thread responsible was named 'QuartzScheduler_Worker-9', but the last SQL it performed is unknown because the trace property is not enabled.
2012-11-23 14:34:37 WARN org.hibernate.util.JDBCExceptionReporter | SQL Error: 0, SQLState: 08006
2012-11-23 14:34:37 ERROR org.hibernate.util.JDBCExceptionReporter | 传送数据至后端时发生 I/O 错误。
2012-11-23 14:34:37 ERROR org.hibernate.transaction.JDBCTransaction | Could not toggle autocommit
java.sql.SQLException: Couldn't perform the operation setAutoCommit: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs).

[解决办法]
继续求答…………
[解决办法]
作业定时运行一段时间后,经常出现这个SUMMARY存储函数执行需要2分钟以上时间,很是纳闷,继续找高手回答!
[解决办法]
该回复于2012-11-26 10:07:24被管理员删除

热点排行