[FINERACT-1936] fixing SQL queries that was failing on Maria DB
This commit is contained in:
+41
-41
@@ -54,19 +54,19 @@ public class JobExecutionRepository implements InitializingBean {
|
|||||||
public List<String> getStuckJobNames(NamedParameterJdbcTemplate jdbcTemplate) {
|
public List<String> getStuckJobNames(NamedParameterJdbcTemplate jdbcTemplate) {
|
||||||
int threshold = fineractProperties.getJob().getStuckRetryThreshold();
|
int threshold = fineractProperties.getJob().getStuckRetryThreshold();
|
||||||
return jdbcTemplate.queryForList("""
|
return jdbcTemplate.queryForList("""
|
||||||
SELECT DISTINCT(bji.JOB_NAME) as STUCK_JOB_NAME
|
SELECT DISTINCT(BJI.JOB_NAME) as STUCK_JOB_NAME
|
||||||
FROM BATCH_JOB_INSTANCE bji
|
FROM BATCH_JOB_INSTANCE BJI
|
||||||
INNER JOIN BATCH_JOB_EXECUTION bje
|
INNER JOIN BATCH_JOB_EXECUTION BJE
|
||||||
ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID
|
ON BJI.JOB_INSTANCE_ID = BJE.JOB_INSTANCE_ID
|
||||||
WHERE
|
WHERE
|
||||||
bje.STATUS IN (:statuses)
|
BJE.STATUS IN (:statuses)
|
||||||
AND
|
AND
|
||||||
bje.JOB_INSTANCE_ID NOT IN (
|
BJE.JOB_INSTANCE_ID NOT IN (
|
||||||
SELECT bje.JOB_INSTANCE_ID
|
SELECT IBJE.JOB_INSTANCE_ID
|
||||||
FROM BATCH_JOB_INSTANCE bji
|
FROM BATCH_JOB_INSTANCE IBJI
|
||||||
INNER JOIN BATCH_JOB_EXECUTION bje
|
INNER JOIN BATCH_JOB_EXECUTION IBJE
|
||||||
ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID
|
ON IBJI.JOB_INSTANCE_ID = IBJE.JOB_INSTANCE_ID
|
||||||
WHERE bje.STATUS IN (:completedStatuses)
|
WHERE IBJE.STATUS IN (:completedStatuses)
|
||||||
)
|
)
|
||||||
GROUP BY BJI.JOB_INSTANCE_ID
|
GROUP BY BJI.JOB_INSTANCE_ID
|
||||||
HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold
|
HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold
|
||||||
@@ -77,24 +77,24 @@ public class JobExecutionRepository implements InitializingBean {
|
|||||||
public Long getStuckJobCountByJobName(String jobName) {
|
public Long getStuckJobCountByJobName(String jobName) {
|
||||||
int threshold = fineractProperties.getJob().getStuckRetryThreshold();
|
int threshold = fineractProperties.getJob().getStuckRetryThreshold();
|
||||||
return namedParameterJdbcTemplate.queryForObject("""
|
return namedParameterJdbcTemplate.queryForObject("""
|
||||||
SELECT COUNT(DISTINCT bji.JOB_NAME) as STUCK_JOB_COUNT
|
SELECT COUNT(DISTINCT BJI.JOB_NAME) as STUCK_JOB_COUNT
|
||||||
FROM BATCH_JOB_INSTANCE bji
|
FROM BATCH_JOB_INSTANCE BJI
|
||||||
INNER JOIN BATCH_JOB_EXECUTION bje
|
INNER JOIN BATCH_JOB_EXECUTION BJE
|
||||||
ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID
|
ON BJI.JOB_INSTANCE_ID = BJE.JOB_INSTANCE_ID
|
||||||
WHERE
|
WHERE
|
||||||
bje.STATUS IN (:statuses)
|
BJE.STATUS IN (:statuses)
|
||||||
AND
|
AND
|
||||||
bji.JOB_NAME = :jobName
|
BJI.JOB_NAME = :jobName
|
||||||
AND
|
AND
|
||||||
bje.JOB_INSTANCE_ID NOT IN (
|
BJE.JOB_INSTANCE_ID NOT IN (
|
||||||
SELECT bje.JOB_INSTANCE_ID
|
SELECT IBJE.JOB_INSTANCE_ID
|
||||||
FROM BATCH_JOB_INSTANCE bji
|
FROM BATCH_JOB_INSTANCE IBJI
|
||||||
INNER JOIN BATCH_JOB_EXECUTION bje
|
INNER JOIN BATCH_JOB_EXECUTION IBJE
|
||||||
ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID
|
ON IBJI.JOB_INSTANCE_ID = IBJE.JOB_INSTANCE_ID
|
||||||
WHERE
|
WHERE
|
||||||
bje.STATUS IN (:completedStatuses)
|
IBJE.STATUS IN (:completedStatuses)
|
||||||
AND
|
AND
|
||||||
bji.JOB_NAME = :jobName
|
IBJI.JOB_NAME = :jobName
|
||||||
)
|
)
|
||||||
GROUP BY BJI.JOB_INSTANCE_ID
|
GROUP BY BJI.JOB_INSTANCE_ID
|
||||||
HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold
|
HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold
|
||||||
@@ -105,24 +105,24 @@ public class JobExecutionRepository implements InitializingBean {
|
|||||||
public List<Long> getStuckJobIdsByJobName(String jobName) {
|
public List<Long> getStuckJobIdsByJobName(String jobName) {
|
||||||
int threshold = fineractProperties.getJob().getStuckRetryThreshold();
|
int threshold = fineractProperties.getJob().getStuckRetryThreshold();
|
||||||
return namedParameterJdbcTemplate.queryForList("""
|
return namedParameterJdbcTemplate.queryForList("""
|
||||||
SELECT bje.JOB_EXECUTION_ID
|
SELECT BJE.JOB_EXECUTION_ID
|
||||||
FROM BATCH_JOB_INSTANCE bji
|
FROM BATCH_JOB_INSTANCE BJI
|
||||||
INNER JOIN BATCH_JOB_EXECUTION bje
|
INNER JOIN BATCH_JOB_EXECUTION BJE
|
||||||
ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID
|
ON BJI.JOB_INSTANCE_ID = BJE.JOB_INSTANCE_ID
|
||||||
WHERE
|
WHERE
|
||||||
bje.STATUS IN (:statuses)
|
BJE.STATUS IN (:statuses)
|
||||||
AND
|
AND
|
||||||
bji.JOB_NAME = :jobName
|
BJI.JOB_NAME = :jobName
|
||||||
AND
|
AND
|
||||||
bje.JOB_INSTANCE_ID NOT IN (
|
BJE.JOB_INSTANCE_ID NOT IN (
|
||||||
SELECT bje.JOB_INSTANCE_ID
|
SELECT IBJE.JOB_INSTANCE_ID
|
||||||
FROM BATCH_JOB_INSTANCE bji
|
FROM BATCH_JOB_INSTANCE IBJI
|
||||||
INNER JOIN BATCH_JOB_EXECUTION bje
|
INNER JOIN BATCH_JOB_EXECUTION IBJE
|
||||||
ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID
|
ON IBJI.JOB_INSTANCE_ID = IBJE.JOB_INSTANCE_ID
|
||||||
WHERE
|
WHERE
|
||||||
bje.STATUS IN (:completedStatuses)
|
IBJE.STATUS IN (:completedStatuses)
|
||||||
AND
|
AND
|
||||||
bji.JOB_NAME = :jobName
|
IBJI.JOB_NAME = :jobName
|
||||||
)
|
)
|
||||||
GROUP BY BJI.JOB_INSTANCE_ID, BJE.JOB_EXECUTION_ID
|
GROUP BY BJI.JOB_INSTANCE_ID, BJE.JOB_EXECUTION_ID
|
||||||
HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold
|
HAVING COUNT(BJI.JOB_INSTANCE_ID) <= :threshold
|
||||||
@@ -133,13 +133,13 @@ public class JobExecutionRepository implements InitializingBean {
|
|||||||
public Long getNotCompletedPartitionsCount(Long jobExecutionId, String partitionerStepName) {
|
public Long getNotCompletedPartitionsCount(Long jobExecutionId, String partitionerStepName) {
|
||||||
return namedParameterJdbcTemplate.queryForObject("""
|
return namedParameterJdbcTemplate.queryForObject("""
|
||||||
SELECT COUNT(bse.STEP_EXECUTION_ID)
|
SELECT COUNT(bse.STEP_EXECUTION_ID)
|
||||||
FROM BATCH_STEP_EXECUTION bse
|
FROM BATCH_STEP_EXECUTION BSE
|
||||||
WHERE
|
WHERE
|
||||||
bse.JOB_EXECUTION_ID = :jobExecutionId
|
BSE.JOB_EXECUTION_ID = :jobExecutionId
|
||||||
AND
|
AND
|
||||||
bse.STEP_NAME <> :stepName
|
BSE.STEP_NAME <> :stepName
|
||||||
AND
|
AND
|
||||||
bse.status <> :status
|
BSE.status <> :status
|
||||||
""", Map.of("jobExecutionId", jobExecutionId, "stepName", partitionerStepName, "status", COMPLETED.name()), Long.class);
|
""", Map.of("jobExecutionId", jobExecutionId, "stepName", partitionerStepName, "status", COMPLETED.name()), Long.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user