当数据库连接断开时,Quartz JobStoreTX会不断记录异常

时间:2016-03-08 10:28:00

标签: java postgresql quartz-scheduler

我的java quartz调度程序配置了以下属性。

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX

在数据源配置类

    dataSource.setTestOnBorrow(true);
    dataSource.setTestWhileIdle(true);
    dataSource.setTestOnReturn(true);
    dataSource.setRollbackOnReturn(true);
    dataSource.setValidationQuery("SELECT 1");
    dataSource.setRemoveAbandoned(true);
    dataSource.setRemoveAbandonedTimeout(30);

这就是我的石英触发器的样子

return newTrigger()
            .withIdentity("run_on_every_hour_trigger", "group1")
            .startAt(evenHourDateAfterNow())
            .withSchedule(repeatHourlyForever().withMisfireHandlingInstructionFireNow())
            .forJob(batchJobDetail)
            .build();

数据库重启时出现以下错误。

[SchedulerThread] o.s.s.quartz.LocalDataSourceJobStore:无法回滚jdbc连接。此连接已关闭。

  

org.postgresql.util.PSQLException:此连接已关闭。       在org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:820)〜[postgresql-9.4-1201-jdbc41.jar:9.4]       at org.postgresql.jdbc2.AbstractJdbc2Connection.rollback(AbstractJdbc2Connection.java:837)~ [postgresql-9.4-1201-jdbc41.jar:9.4]       at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)〜[na:na]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_45]       在java.lang.reflect.Method.invoke(Method.java:497)〜[na:1.8.0_45]       at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)〜[springloaded-1.2.4.RELEASE.jar:1.2.4.RELEASE]       在org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126)〜[tomcat-jdbc-8.0.28.jar:na]       在org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108)〜[tomcat-jdbc-8.0.28.jar:na]       在org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81)〜[tomcat-jdbc-8.0.28.jar:na]       在com.sun.proxy。$ Proxy36.rollback(未知来源)〜[na:na]       at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)〜[na:na]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_45]       在java.lang.reflect.Method.invoke(Method.java:497)〜[na:1.8.0_45]       at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)〜[springloaded-1.2.4.RELEASE.jar:1.2.4.RELEASE]       在org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:73)〜[quartz-2.2.2.jar:na]       在com.sun.proxy。$ Proxy37.rollback(未知来源)〜[na:na]       在org.quartz.impl.jdbcjobstore.JobStoreSupport.rollbackConnection(JobStoreSupport.java:3662)[quartz-2.2.2.jar:na]       在org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3821)[quartz-2.2.2.jar:na]       在org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTriggers(JobStoreSupport.java:2756)[quartz-2.2.2.jar:na]       在org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:272)[quartz-2.2.2.jar:na]

我遇到的问题是在非常短的时间内(当服务器重新启动时)连续超过10,000次打印此错误然后停止。

欣赏是否有人可以指导我找到原因/纠正问题

提前致谢

0 个答案:

没有答案