1


こんにちは、Spring バッチ アプリケーションで休止状態エラーが発生しました

ERROR: org.springframework.batch.core.job.AbstractJob - Encountered fatal error executing job
org.springframework.dao.OptimisticLockingFailureException: Attempt to update job execution id=33 with wrong version (0), where current version is 1
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.updateJobExecution(JdbcJobExecutionDao.java:210)
    at org.springframework.batch.core.repository.support.SimpleJobRepository.update(SimpleJobRepository.java:155)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy54.update(Unknown Source)
    at org.springframework.batch.core.job.AbstractJob.updateStatus(AbstractJob.java:383)
    at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:276)
    at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:120)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)


エラー ログによると、(Spring Batch が提供する) Abstract Job Class でプロキシ エラーが発生しました
。Abstract Job Class には非パラメータ コンストラクタがないため、CGLIB はプロキシ クラスを提供できないと思います..
どうすればこれを解決できますか?問題?

私は今、春のバッチ管理者を使用しています

4

1 に答える 1

0

その例外

org.springframework.dao.OptimisticLockingFailureException: Attempt to update job execution id=33 with wrong version (0), where current version is 1

何らかの理由でステップ トランザクションのロックが失敗したことを意味します。

ビジネス ロジック トランザクションが RollbackOnly モードに設定されている可能性があります。これにより、スプリング テーブルも一貫性のない状態になります => オプティミスティック ロックが発生します。

休止状態のログと実際の sql の表示を追加してみてください。これは、問題が実際にどこにあるかを把握するのに役立ちます。

于 2012-08-31T06:42:59.537 に答える