我在服务器日志中收到以下错误。我想知道哪个查询(插入或更新)在石英表的列上进行了更改。
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)
你可以请任何人帮忙吗?是否有任何配置参数可以在日志中查看插入/更新查询?
答案 0 :(得分:1)
由于TIMES_TRIGGERED
表中的SIMPLE_TRIGGERS
列变得太大而无法存储在列中,我发现此错误,通常定义为NUMBER(7)(即最大值为9999999) )。
通常,您只需将此列设置为0
,错误就会消失(直到TIMES_TRIGGERED
再次变大)。看起来石英会查看触发器的开始时间和配置的频率并确定值应该是什么并覆盖您的更新,但根据我的经验,它已将其设置为远低于最大值。
有关详细信息,请参阅Couldn't store trigger。