Spring Batch предоставляет все байты для записи не были успешно записаны ошибка - PullRequest
0 голосов
/ 20 февраля 2019

Я написал весеннее пакетное задание, которое использует flatFileItemWriter для записи огромного количества данных в файл.Работа периодически прерывается со следующей ошибкой org.springframework.batch.support.transaction.FlushFailedException: Could not write to output buffer.Я заглянул в исходный код и обнаружил, что он конкретно терпит неудачу в в этом месте , что означает, что bytesWritten не равен байту, который он прочитал.Кто-нибудь здесь знает, почему он терпит неудачу на этом этапе.Спасибо.

Вот полный след ошибки стека:

Encountered an error executing step step in job exportDataJob; org.springframework.batch.support.transaction.FlushFailedException: Could not write to output buffer 
   at org.springframework.batch.support.transaction.TransactionAwareBufferedWriter$1.beforeCommit(TransactionAwareBufferedWriter.java:111)
   at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:932)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:744)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
   at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:150) 
   at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:271) 
   at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81) 
   at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:374) 
   at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) 
   at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144) 
   at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257) 
   at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:200) 
   at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148) 
   at org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:392) 
   at org.springframework.batch.core.job.SimpleJob.doExecute(SimpleJob.java:135) 
   at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:306) 
   at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135) 
   at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) 
   at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.execute(JobLauncherCommandLineRunner.java:214) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.executeLocalJobs(JobLauncherCommandLineRunner.java:231) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.launchJobFromProperties(JobLauncherCommandLineRunner.java:123) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.run(JobLauncherCommandLineRunner.java:117) 
   at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:732) 
   at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:716) 
   at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:703) 
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:304) 
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) 
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) 
   at com.intuit.sbg.integrations.batch.Application.main(Application.java:48) 
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
   at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 
   at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 
   at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:587) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
   at java.lang.reflect.Method.invoke(Method.java:498) 
   at org.tanukisoftware.wrapper.WrapperJarApp.run(WrapperJarApp.java:394) 
   at java.lang.Thread.run(Thread.java:748) 
Caused by: java.io.IOException: All bytes to be written were not successfully written 
   at org.springframework.batch.support.transaction.TransactionAwareBufferedWriter$1.complete(TransactionAwareBufferedWriter.java:124) 
   at org.springframework.batch.support.transaction.TransactionAwareBufferedWriter$1.beforeCommit(TransactionAwareBufferedWriter.java:107) 
   ... 44 common frames omitted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...