Откат меняется, когда исключение выбрасывается Java - PullRequest
0 голосов
/ 10 октября 2019

У меня есть реализация (выполняющая некоторые операции и сохраняющая объект в базе данных) до его запуска по электронной почте и обновления данных в таблице BATCH_JOB_EXECUTION_CONTEXT.

При выполнении этой операции приложение выдает исключение. Пожалуйста, найдите исключение ниже.

    2019-10-01 00:00:01,379 [pool-3-thread-1]  INFO core.batch.tasklet.RemoveSpringBatchHistoryTasklet:  70 - Remove the Spring Batch history before the 9/1/19 12:00 AM
2019-10-01 00:00:19,082 [pool-3-thread-1]  INFO core.batch.tasklet.RemoveSpringBatchHistoryTasklet:  73 - Deleted rows number from the BATCH_STEP_EXECUTION_CONTEXT table: 1293132
2019-10-01 00:01:17,216 [pool-3-thread-1]  INFO core.batch.tasklet.RemoveSpringBatchHistoryTasklet:  77 - Deleted rows number from the BATCH_STEP_EXECUTION table: 1293132
2019-10-01 00:01:26,461 [pool-3-thread-1]  INFO core.batch.tasklet.RemoveSpringBatchHistoryTasklet:  81 - Deleted rows number from the BATCH_JOB_EXECUTION_CONTEXT table: 1295359
2019-10-01 00:03:20,615 [WebContainer-9] ERROR         com.api.controller.BaseController:  82 - Unhandled exception while processing request for URL : https://scsbatch.com:9152/jobs/emails with exception : PreparedStatementCallback; SQL [INSERT INTO BATCH_JOB_EXECUTION_CONTEXT (SHORT_CONTEXT, SERIALIZED_CONTEXT, JOB_EXECUTION_ID) VALUES(?, ?, ?)]; Lock wait timeout exceeded; try restarting transaction; nested exception is java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
org.springframework.dao.CannotAcquireLockException: PreparedStatementCallback; SQL [INSERT INTO BATCH_JOB_EXECUTION_CONTEXT (SHORT_CONTEXT, SERIALIZED_CONTEXT, JOB_EXECUTION_ID) VALUES(?, ?, ?)]; Lock wait timeout exceeded; try restarting transaction; nested exception is java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction

Несмотря на то, что оно выдает исключение, оно отправляет электронную почту и обновленную информацию в таблице базы данных.

Пожалуйста, найдите мой код ниже.

@Override
@Transactional
public void approve(Long id, ClaimApproval claimApproval) {
    Claim claim = claimRepository.findOne(id);

             ClaimAssignment claimAssignment = claim.findNextPendingAssignment();

             claim.incrementApprovalLevel();
             claim.addHistory(historyRecordFor(claimApproval, HistoryAction.APPROVED));
             claimRepository.save(claim);
             if (!areAllAssignmentsApproved(claim))
                 emailDispatcherService.notifyNextClaimApprover(claim, assignmentService.getNextLevelApprovers(claim));  //Exception is throws here, but previous statements are executed properly and that should not happen when exception thrown.


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...