From 94a552bbde48bb58cbb2284e1d86f52d0840d045 Mon Sep 17 00:00:00 2001 From: taskain7 Date: Mon, 5 Jun 2023 17:34:58 +0200 Subject: [PATCH] [FINERACT-1936] fixing SQL queries that was failing on Maria DB --- .../jobs/domain/JobExecutionRepository.java | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobExecutionRepository.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobExecutionRepository.java index 044b102b8..ca3750a11 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobExecutionRepository.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobExecutionRepository.java @@ -54,19 +54,19 @@ public class JobExecutionRepository implements InitializingBean { public List getStuckJobNames(NamedParameterJdbcTemplate jdbcTemplate) { int threshold = fineractProperties.getJob().getStuckRetryThreshold(); return jdbcTemplate.queryForList(""" - SELECT DISTINCT(bji.JOB_NAME) as STUCK_JOB_NAME - FROM BATCH_JOB_INSTANCE bji - INNER JOIN BATCH_JOB_EXECUTION bje - ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID + SELECT DISTINCT(BJI.JOB_NAME) as STUCK_JOB_NAME + FROM BATCH_JOB_INSTANCE BJI + INNER JOIN BATCH_JOB_EXECUTION BJE + ON BJI.JOB_INSTANCE_ID = BJE.JOB_INSTANCE_ID WHERE - bje.STATUS IN (:statuses) + BJE.STATUS IN (:statuses) AND - bje.JOB_INSTANCE_ID NOT IN ( - SELECT bje.JOB_INSTANCE_ID - FROM BATCH_JOB_INSTANCE bji - INNER JOIN BATCH_JOB_EXECUTION bje - ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID - WHERE bje.STATUS IN (:completedStatuses) + BJE.JOB_INSTANCE_ID NOT IN ( + SELECT IBJE.JOB_INSTANCE_ID + FROM BATCH_JOB_INSTANCE IBJI + INNER JOIN BATCH_JOB_EXECUTION IBJE + ON IBJI.JOB_INSTANCE_ID = IBJE.JOB_INSTANCE_ID + WHERE IBJE.STATUS IN (:completedStatuses) ) GROUP BY BJI.JOB_INSTANCE_ID HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold @@ -77,24 +77,24 @@ public class JobExecutionRepository implements InitializingBean { public Long getStuckJobCountByJobName(String jobName) { int threshold = fineractProperties.getJob().getStuckRetryThreshold(); return namedParameterJdbcTemplate.queryForObject(""" - SELECT COUNT(DISTINCT bji.JOB_NAME) as STUCK_JOB_COUNT - FROM BATCH_JOB_INSTANCE bji - INNER JOIN BATCH_JOB_EXECUTION bje - ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID + SELECT COUNT(DISTINCT BJI.JOB_NAME) as STUCK_JOB_COUNT + FROM BATCH_JOB_INSTANCE BJI + INNER JOIN BATCH_JOB_EXECUTION BJE + ON BJI.JOB_INSTANCE_ID = BJE.JOB_INSTANCE_ID WHERE - bje.STATUS IN (:statuses) + BJE.STATUS IN (:statuses) AND - bji.JOB_NAME = :jobName + BJI.JOB_NAME = :jobName AND - bje.JOB_INSTANCE_ID NOT IN ( - SELECT bje.JOB_INSTANCE_ID - FROM BATCH_JOB_INSTANCE bji - INNER JOIN BATCH_JOB_EXECUTION bje - ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID + BJE.JOB_INSTANCE_ID NOT IN ( + SELECT IBJE.JOB_INSTANCE_ID + FROM BATCH_JOB_INSTANCE IBJI + INNER JOIN BATCH_JOB_EXECUTION IBJE + ON IBJI.JOB_INSTANCE_ID = IBJE.JOB_INSTANCE_ID WHERE - bje.STATUS IN (:completedStatuses) + IBJE.STATUS IN (:completedStatuses) AND - bji.JOB_NAME = :jobName + IBJI.JOB_NAME = :jobName ) GROUP BY BJI.JOB_INSTANCE_ID HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold @@ -105,24 +105,24 @@ public class JobExecutionRepository implements InitializingBean { public List getStuckJobIdsByJobName(String jobName) { int threshold = fineractProperties.getJob().getStuckRetryThreshold(); return namedParameterJdbcTemplate.queryForList(""" - SELECT bje.JOB_EXECUTION_ID - FROM BATCH_JOB_INSTANCE bji - INNER JOIN BATCH_JOB_EXECUTION bje - ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID + SELECT BJE.JOB_EXECUTION_ID + FROM BATCH_JOB_INSTANCE BJI + INNER JOIN BATCH_JOB_EXECUTION BJE + ON BJI.JOB_INSTANCE_ID = BJE.JOB_INSTANCE_ID WHERE - bje.STATUS IN (:statuses) + BJE.STATUS IN (:statuses) AND - bji.JOB_NAME = :jobName + BJI.JOB_NAME = :jobName AND - bje.JOB_INSTANCE_ID NOT IN ( - SELECT bje.JOB_INSTANCE_ID - FROM BATCH_JOB_INSTANCE bji - INNER JOIN BATCH_JOB_EXECUTION bje - ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID + BJE.JOB_INSTANCE_ID NOT IN ( + SELECT IBJE.JOB_INSTANCE_ID + FROM BATCH_JOB_INSTANCE IBJI + INNER JOIN BATCH_JOB_EXECUTION IBJE + ON IBJI.JOB_INSTANCE_ID = IBJE.JOB_INSTANCE_ID WHERE - bje.STATUS IN (:completedStatuses) + IBJE.STATUS IN (:completedStatuses) AND - bji.JOB_NAME = :jobName + IBJI.JOB_NAME = :jobName ) GROUP BY BJI.JOB_INSTANCE_ID, BJE.JOB_EXECUTION_ID HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold @@ -133,13 +133,13 @@ public class JobExecutionRepository implements InitializingBean { public Long getNotCompletedPartitionsCount(Long jobExecutionId, String partitionerStepName) { return namedParameterJdbcTemplate.queryForObject(""" SELECT COUNT(bse.STEP_EXECUTION_ID) - FROM BATCH_STEP_EXECUTION bse + FROM BATCH_STEP_EXECUTION BSE WHERE - bse.JOB_EXECUTION_ID = :jobExecutionId + BSE.JOB_EXECUTION_ID = :jobExecutionId AND - bse.STEP_NAME <> :stepName + BSE.STEP_NAME <> :stepName AND - bse.status <> :status + BSE.status <> :status """, Map.of("jobExecutionId", jobExecutionId, "stepName", partitionerStepName, "status", COMPLETED.name()), Long.class); }