我使用Spring Batch的3.0.5和Spring啓動,與作業啓動以來,但每當我跑我的工作,我得到以下錯誤:Spring Batch的+ HSQL DB錯誤 - 用戶沒有previlage
org.springframework.jdbc.BadSqlGrammarException:
PreparedStatementCallback; bad SQL grammar [SELECT VERSION FROM BATCH_JOB_EXECUTION WHERE JOB_EXECUTION_ID=?];
nested exception is java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: BATCH_JOB_EXECUTION
Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: BATCH_JOB_EXECUTION
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
at org.springframework.jdbc.core.JdbcTemplate$SimplePreparedStatementCreator.createPreparedStatement(JdbcTemplate.java:1557)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:638)
Caused by: org.springframework.dao.ConcurrencyFailureException:
PreparedStatementCallback; SQL [INSERT into BATCH_JOB_INSTANCE(JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION) values (?, ?, ?, ?)];
transaction rollback: serialization failure; nested exception is java.sql.SQLTransactionRollbackException: transaction rollback: serialization failure
編輯: 當我從版本4.0.0發佈更新到4.2.3版本時,錯誤自行解決。
現在該批處理正在運行,但它在第一次運行後沒有執行這些步驟。
在第一次運行時,我得到了以下錯誤:
ERROR 8442 --- o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task.
org.springframework.dao.ConcurrencyFailureException: PreparedStatementCallback; SQL [INSERT into BATCH_JOB_INSTANCE(JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION) values (?, ?, ?, ?)]; transaction rollback: serialization failure; nested exception is java.sql.SQLTransactionRollbackException: transaction rollback: serialization failure
和批量我得到下面的命令行輸出的每次運行後。
INFO 8442 --- com.capitalone.schduler.BatchScheduler : sendMailToCustomers Job ran at 11/10/2016 10:37:06
INFO 8442 --- com.capitalone.schduler.BatchScheduler : triggering BatchConfiguration at time {}11/10/2016 10:37:06
INFO 8442 --- o.s.b.c.l.support.SimpleJobLauncher : Job: [FlowJob: [name=queueInfoStep]] launched with the following parameters: [{JOB_START_DATE=Thu Nov 10 10:37:06 EST 2016}]
INFO 8442 --- o.s.batch.core.job.SimpleStepHandler : Executing step: [queueInfoStep]
INFO 8442 --- o.s.b.c.l.support.SimpleJobLauncher : Job: [FlowJob: [name=queueInfoStep]] completed with the following parameters: [{JOB_START_DATE=Thu Nov 10 10:37:06 EST 2016}] and the following status: [COMPLETED]
你好Dean,我使用java配置不是xml版本,有沒有辦法在java配置中做同樣的事情。我正在尋找一種方法來告訴spring不要將HSQLDB數據存儲到一定限度以上,因爲隨着時間的推移,它會增長並造成麻煩。 – ppmohapatra