开发者社区> 问答> 正文

如何查看同步对象修改详情



描述


当调用同步对象修改(ModifySynchronizationObject)接口修改同步对象后,可以调用这个接口查看同步对象修改的状态及具体进度。

请求参数

参数名称数据类型是否必须参数说明
ActionString系统默认参数,为这个接口的接口定义,取值为:DescribeObjectModifyStatus
TaskIdString同步对象变更子任务ID。 为同步对象修改接口的返回参数


返回参数

参数名称数据类型参数说明
StatusString同步对象变更状态,取值包括:NotStartedPrecheckingPrecheckFailedMigratingFailedFinished
ErrorMessageString同步对象变更失败的具体原因
PrecheckStatusPrecheckStatus预检查状态,PrecheckStatus的定义参考PrecheckStatus参数定义
StructureInitializationStatusStructureInitializationStatus结构迁移状态,StructureInitializationStatus定义参考StructureInitializationStatus参数定义
DataInitializationStatusDataInitializationStatus全量数据初始化状态,其中DataInitializationStatus定义参考DataInitializationStatus参数定义
DataSynchronizationStatusDataSynchronizationStatus增量数据迁移状态,其中DataSynchronizationStatus定义参考DataSynchronizationStatus参数定义


PrecheckStatus参数定义

参数名称数据类型参数说明
StatusString预检查状态
PercentString预检查进度,单位为百分比
DetailList各个预检查项的检查情况CheckItem的定义详见CheckItem的参数定义


CheckItem的参数定义

参数名称数据类型参数说明
ItemNameString检查项名称
CheckStatusString检查状态,取值包括NotStarted : 未启动 Checking : 检查中Failed : 检查失败Finished : 检查成功
ErrorMessageString失败原因
RepairMethodString修复方法


StructureInitializationStatus参数定义

参数名称数据类型参数说明
StatusString迁移状态,取值包括:NotStarted:未启动Migrating : 迁移中Failed :迁移失败Finished: 迁移完成
ErrorMessageString迁移失败原因
PercentString迁移进度,单位为百分比
ProgressString已经完成迁移的表数量


DataInitializationStatus参数定义

参数名称数据类型参数说明
StatusString迁移状态,取值包括:NotStarted:未启动Migrating : 迁移中Failed :迁移失败Finished: 迁移完成
ErrorMessageString迁移失败原因
PercentString迁移进度,单位为百分比
ProgressString已经完成迁移的表数量


DataSynchronizationStatus参数定义

参数名称数据类型参数说明
StatusString迁移状态,取值包括:NotStarted:未启动Migrating : 迁移中Failed :迁移失败Finished: 迁移完成
ErrorMessageString迁移失败原因
PercentString迁移进度,单位为百分比
DelayString迁移延迟


示例


下面简单演示通过JAVA SDK 查询同步对象变更任务状态的示例: public void descObjectModifyStatus(String SyncJobId,String TaskId,DefaultAcsClient client) {
        DescribeSynchronizationObjectModifyStatusRequest request = new DescribeSynchronizationObjectModifyStatusRequest();
        request.setTaskId(TaskId);
        DescribeSynchronizationObjectModifyStatusResponse response = new DescribeSynchronizationObjectModifyStatusResponse();
        try {
            response = client.getAcsResponse(request);
            System.out.println("Describe Sync Object Modify Status Succeed!");
            String status=response.getStatus();
            PrecheckStatus precheckStatus = response.getPrecheckStatus();
            StructureInitializationStatus strucInitStatus=response.getStructureInitializationStatus();
            DataInitializationStatus dataInitStatus=response.getDataInitializationStatus();
            DataSynchronizationStatus dataSyncStatus = response.getDataSynchronizationStatus();
            String errorMSG=response.getErrorMessage();
            //Get Precheck Status
            System.out.println("The precheck status of SYNC Job "+SyncJobId);
            String precheck_status=precheckStatus.getStatus();
            String precheck_percent=precheckStatus.getPercent();
            System.out.println("Precheck Status:"+precheckStatus.getStatus()
                    +"; Precheck Percent:"+precheckStatus.getPercent());
            System.out.println("Precheck Detail:");
            for (int i = 0; i < precheckStatus.getDetail().size(); i++) {
                String ItemName=precheckStatus.getDetail().get(i).getItemName();
                String CheckStatus=precheckStatus.getDetail().get(i).getCheckStatus();
                String CheckErrorMsg=precheckStatus.getDetail().get(i).getErrorMessage();
                String RepairMethod = precheckStatus.getDetail().get(i).getRepairMethod();
                System.out.println("CheckItme:"+ItemName+"; Status:"+CheckStatus+"; ErrorMSG:"+CheckErrorMsg
                        +"; RepairMethod:"+RepairMethod);
            }
            // Get the status of the structure Initialization
            String strucInit_Status=strucInitStatus.getStatus();
            String strucInit_percent=strucInitStatus.getPercent();
            String strucInit_progress=strucInitStatus.getProgress();
            String strucInit_ErrMsg=strucInitStatus.getErrorMessage();
            System.out.println("The Structure Init Status of SYNC Job "+SyncJobId);
            System.out.println("Status:"+strucInit_Status+"; Percent:"+strucInit_percent
                    +"; Progress:"+strucInit_progress+"; ErrMSG:"+strucInit_ErrMsg);
            // Get the status of the data Initialization
            String dataInit_Status=dataInitStatus.getStatus();
            String dataInit_Percent = dataInitStatus.getPercent();
            String dataInit_Progress = dataInitStatus.getProgress();
            String dataInit_ErrMSG = dataInitStatus.getErrorMessage();
            System.out.println("The data Init Status of SYNC Job "+SyncJobId);
            System.out.println("Status:"+dataInit_Status+"; Percent:"+dataInit_Percent
                    +"; Progress:"+dataInit_Progress+"; ErrMSG:"+dataInit_ErrMSG);
            // Get the status of the data synchronization
            String dataSync_Status=dataSyncStatus.getStatus();
            String dataSync_Percent=dataSyncStatus.getPercent();
            String dataSync_Delay=dataSyncStatus.getDelay();
            String dataSync_ErrMSG=dataSyncStatus.getErrorMessage();
            System.out.println("The data Init Status of SYNC Job "+SyncJobId);
            System.out.println("Status:"+dataSync_Status+"; Percent:"+dataSync_Percent
                    +"; Delay:"+dataSync_Delay+"; ErrMSG:"+dataSync_ErrMSG);
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("Describe Synchronization Objects Modify Status Failed");
            System.out.println(e.toString());
        }
    }

展开
收起
云栖大讲堂 2017-10-31 16:35:14 1981 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MaxCompute Logview参数详解和问题排查(废弃) 立即下载
《用管控策略设定多账号组织全局访问边界》 立即下载
低代码开发师(初级)实战教程 立即下载