diff --git a/pom.xml b/pom.xml
index a04e19b0ae..d378b4d05d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,7 +116,7 @@
2.1.6
- 1.0.4
+ 1.0.6
2.11.0
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/DlmEnvironment.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/DlmEnvironment.java
deleted file mode 100644
index 91374736fb..0000000000
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/DlmEnvironment.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2023 OceanBase.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.oceanbase.odc.service.schedule;
-
-public interface DlmEnvironment {
-
- boolean isSysTenantUserRequired();
-
-}
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java
index 1efa729d63..21e6ef69c2 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java
@@ -88,6 +88,7 @@
import com.oceanbase.odc.service.schedule.model.ScheduleTaskMapper;
import com.oceanbase.odc.service.schedule.model.ScheduleTaskResp;
import com.oceanbase.odc.service.schedule.model.TriggerConfig;
+import com.oceanbase.odc.service.schedule.model.TriggerStrategy;
import com.oceanbase.odc.service.task.model.ExecutorInfo;
import lombok.extern.slf4j.Slf4j;
@@ -302,18 +303,21 @@ public ScheduleTaskResp dataArchiveDelete(Long scheduleId, Long taskId) {
throw new IllegalStateException("Delete is not allowed because the data archive job has not succeeded.");
}
- // TODO throw
try {
- if (!quartzJobService.checkExists(jobKey)) {
- CreateQuartzJobReq req = new CreateQuartzJobReq();
- req.setScheduleId(scheduleId);
- req.setType(JobType.DATA_ARCHIVE_DELETE);
- DataArchiveClearParameters parameters = new DataArchiveClearParameters();
- parameters.setDataArchiveTaskId(taskId);
- req.getJobDataMap().putAll(BeanMap.create(parameters));
- quartzJobService.createJob(req);
+ if (quartzJobService.checkExists(jobKey)) {
+ log.info("Data archive delete job exists and start delete job,jobKey={}", jobKey);
+ quartzJobService.deleteJob(jobKey);
}
- quartzJobService.triggerJob(jobKey);
+ CreateQuartzJobReq req = new CreateQuartzJobReq();
+ req.setScheduleId(scheduleId);
+ req.setType(JobType.DATA_ARCHIVE_DELETE);
+ DataArchiveClearParameters parameters = new DataArchiveClearParameters();
+ parameters.setDataArchiveTaskId(taskId);
+ TriggerConfig triggerConfig = new TriggerConfig();
+ triggerConfig.setTriggerStrategy(TriggerStrategy.START_NOW);
+ req.getJobDataMap().putAll(BeanMap.create(parameters));
+ req.setTriggerConfig(triggerConfig);
+ quartzJobService.createJob(req);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
@@ -337,16 +341,20 @@ public ScheduleTaskResp rollbackTask(Long scheduleId, Long taskId) {
}
try {
- if (!quartzJobService.checkExists(jobKey)) {
- CreateQuartzJobReq req = new CreateQuartzJobReq();
- req.setScheduleId(scheduleId);
- req.setType(JobType.DATA_ARCHIVE_ROLLBACK);
- DataArchiveRollbackParameters parameters = new DataArchiveRollbackParameters();
- parameters.setDataArchiveTaskId(taskId);
- req.getJobDataMap().putAll(BeanMap.create(parameters));
- quartzJobService.createJob(req);
+ if (quartzJobService.checkExists(jobKey)) {
+ log.info("Data archive rollback job exists and start delete job,jobKey={}", jobKey);
+ quartzJobService.deleteJob(jobKey);
}
- quartzJobService.triggerJob(jobKey);
+ CreateQuartzJobReq req = new CreateQuartzJobReq();
+ req.setScheduleId(scheduleId);
+ req.setType(JobType.DATA_ARCHIVE_ROLLBACK);
+ DataArchiveRollbackParameters parameters = new DataArchiveRollbackParameters();
+ parameters.setDataArchiveTaskId(taskId);
+ req.getJobDataMap().putAll(BeanMap.create(parameters));
+ TriggerConfig triggerConfig = new TriggerConfig();
+ triggerConfig.setTriggerStrategy(TriggerStrategy.START_NOW);
+ req.setTriggerConfig(triggerConfig);
+ quartzJobService.createJob(req);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java
index 2e167e4198..0769ccf9d3 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java
@@ -34,7 +34,6 @@
import com.oceanbase.odc.service.flow.processor.ScheduleTaskPreprocessor;
import com.oceanbase.odc.service.iam.auth.AuthenticationFacade;
import com.oceanbase.odc.service.plugin.ConnectionPluginUtil;
-import com.oceanbase.odc.service.schedule.DlmEnvironment;
import com.oceanbase.odc.service.schedule.ScheduleService;
import com.oceanbase.odc.service.schedule.model.JobType;
import com.oceanbase.odc.service.session.factory.DefaultConnectSessionFactory;
@@ -49,10 +48,6 @@
@Slf4j
@ScheduleTaskPreprocessor(type = JobType.DATA_ARCHIVE)
public class DataArchivePreprocessor extends AbstractDlmJobPreprocessor {
-
- @Autowired
- private DlmEnvironment dlmEnvironment;
-
@Autowired
private AuthenticationFacade authenticationFacade;
@@ -75,10 +70,6 @@ public void process(CreateFlowInstanceReq req) {
// permission to access it.
Database sourceDb = databaseService.detail(dataArchiveParameters.getSourceDatabaseId());
Database targetDb = databaseService.detail(dataArchiveParameters.getTargetDataBaseId());
- if (dlmEnvironment.isSysTenantUserRequired()) {
- checkDatasource(sourceDb.getDataSource());
- checkDatasource(targetDb.getDataSource());
- }
dataArchiveParameters.setSourceDatabaseName(sourceDb.getName());
dataArchiveParameters.setTargetDatabaseName(targetDb.getName());
dataArchiveParameters.setSourceDataSourceName(sourceDb.getDataSource().getName());
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java
index d025949c08..7e4e791c9a 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java
@@ -29,7 +29,6 @@
import com.oceanbase.odc.service.flow.model.CreateFlowInstanceReq;
import com.oceanbase.odc.service.flow.processor.ScheduleTaskPreprocessor;
import com.oceanbase.odc.service.iam.auth.AuthenticationFacade;
-import com.oceanbase.odc.service.schedule.DlmEnvironment;
import com.oceanbase.odc.service.schedule.ScheduleService;
import com.oceanbase.odc.service.schedule.model.JobType;
import com.oceanbase.odc.service.session.factory.DefaultConnectSessionFactory;
@@ -45,9 +44,6 @@
@ScheduleTaskPreprocessor(type = JobType.DATA_DELETE)
public class DataDeletePreprocessor extends AbstractDlmJobPreprocessor {
- @Autowired
- private DlmEnvironment dlmEnvironment;
-
@Autowired
private AuthenticationFacade authenticationFacade;
@@ -69,9 +65,6 @@ public void process(CreateFlowInstanceReq req) {
// Throw exception when the specified database does not exist or the current user does not have
// permission to access it.
Database sourceDb = databaseService.detail(dataDeleteParameters.getDatabaseId());
- if (dlmEnvironment.isSysTenantUserRequired()) {
- checkDatasource(sourceDb.getDataSource());
- }
ConnectionConfig dataSource = sourceDb.getDataSource();
dataSource.setDefaultSchema(sourceDb.getName());
@@ -98,7 +91,7 @@ public void process(CreateFlowInstanceReq req) {
if (dataDeleteParameters.getRateLimit().getDataSizeLimit() != null) {
limiterConfig.setDataSizeLimit(dataDeleteParameters.getRateLimit().getDataSizeLimit());
}
- if (dataDeleteParameters.getRateLimit().getRowLimit() != null) {
+ if (dataDeleteParameters.getRateLimit().getBatchSize() != null) {
limiterConfig.setBatchSize(dataDeleteParameters.getRateLimit().getBatchSize());
}
limiterService.createAndBindToOrder(scheduleEntity.getId(), limiterConfig);
diff --git a/server/starters/desktop-starter/src/main/java/com/oceanbase/odc/service/schedule/DesktopDlmEnvironment.java b/server/starters/desktop-starter/src/main/java/com/oceanbase/odc/service/schedule/DesktopDlmEnvironment.java
deleted file mode 100644
index 4dac5d9670..0000000000
--- a/server/starters/desktop-starter/src/main/java/com/oceanbase/odc/service/schedule/DesktopDlmEnvironment.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2023 OceanBase.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.oceanbase.odc.service.schedule;
-
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Service;
-
-import com.oceanbase.odc.core.authority.util.SkipAuthorize;
-
-@Service
-@Profile("clientMode")
-@SkipAuthorize("odc internal usage")
-public class DesktopDlmEnvironment implements DlmEnvironment {
-
- @Override
- public boolean isSysTenantUserRequired() {
- return true;
- }
-
-}
diff --git a/server/starters/web-starter/src/main/java/com/oceanbase/odc/service/schedule/WebDlmEnvironment.java b/server/starters/web-starter/src/main/java/com/oceanbase/odc/service/schedule/WebDlmEnvironment.java
deleted file mode 100644
index 88f2373ee3..0000000000
--- a/server/starters/web-starter/src/main/java/com/oceanbase/odc/service/schedule/WebDlmEnvironment.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2023 OceanBase.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.oceanbase.odc.service.schedule;
-
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Service;
-
-import com.oceanbase.odc.core.authority.util.SkipAuthorize;
-
-@Service
-@Profile("alipay")
-@SkipAuthorize("odc internal usage")
-public class WebDlmEnvironment implements DlmEnvironment {
-
- @Override
- public boolean isSysTenantUserRequired() {
- return true;
- }
-
-}