jboss中的石英值太大

时间:2016-03-21 17:58:01

标签: quartz-scheduler

我在服务器日志中收到以下错误。我想知道哪个查询(插入或更新)在石英表的列上进行了更改。

 ERROR [org.quartz.impl.jdbcjobstore.JobStoreTX] MisfireHandler: Error
 handling misfires: Couldn't store trigger: ORA-01438: value larger
 than specified precision allowed for this column
 org.quartz.JobPersistenceException: Couldn't store trigger: ORA-01438:
 value larger than specified precision allowed for this column  [See
 nested exception: org.quartz.JobPersistenceException: Couldn't store
 trigger: ORA-01438: value larger than specified precision allowed for
 this column  [See nested exception: java.sql.SQLException: ORA-01438:
 value larger than specified precision allowed for this column ]]   at
 org.quartz.impl.jdbcjobstore.JobStoreTX.doRecoverMisfires(JobStoreTX.java:1354)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:2449)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:2468)
 * Nested Exception (Underlying Cause) --------------- org.quartz.JobPersistenceException: Couldn't store trigger: ORA-01438:
 value larger than specified precision allowed for this column  [See
 nested exception: java.sql.SQLException: ORA-01438: value larger than
 specified precision allowed for this column ]  at
 org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:964)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:780)
    at
 org.quartz.impl.jdbcjobstore.JobStoreTX.doRecoverMisfires(JobStoreTX.java:1352)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:2449)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:2468)
 * Nested Exception (Underlying Cause) --------------- java.sql.SQLException: ORA-01438: value larger than specified
 precision allowed for this column

    at
 oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)    at
 oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)  at
 oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)     at
 oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at
 oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
    at
 oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
    at
 oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
    at
 oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
    at
 org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:365)
    at
 org.quartz.impl.jdbcjobstore.StdJDBCDelegate.updateSimpleTrigger(StdJDBCDelegate.java:1440)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:942)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:780)
    at
 org.quartz.impl.jdbcjobstore.JobStoreTX.doRecoverMisfires(JobStoreTX.java:1352)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:2449)
    at
 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:2468)

你可以请任何人帮忙吗?是否有任何配置参数可以在日志中查看插入/更新查询?

1 个答案:

答案 0 :(得分:1)

由于TIMES_TRIGGERED表中的SIMPLE_TRIGGERS列变得太大而无法存储在列中,我发现此错误,通常定义为NUMBER(7)(即最大值为9999999) )。

通常,您只需将此列设置为0,错误就会消失(直到TIMES_TRIGGERED再次变大)。看起来石英会查看触发器的开始时间和配置的频率并确定值应该是什么并覆盖您的更新,但根据我的经验,它已将其设置为远低于最大值。

有关详细信息,请参阅Couldn't store trigger