Skip to content

9.27三维发布失败原因分析

起点:CommandExecutorWrapperThtead的71行,这时候处于”未发布“状态
1.	发布服务是另起一个线程去执行发布,execute()
2.	execute():
	1.new一个结果类,
	2.执行*,
	3.if成功,结果类一字段为true
	4.if成功,监听接口执行成功的,listenner.onComplete(result)
	5.if失败,结果类一字段为false
	6.if失败,监听接口执行失败,listenner.onFailed(result)
	
3.	CommandExecuTor执行器执行2.2:
	1.new一个进度对象
	2.new LinkedList<Command>();Command命令对象:2个方法:执行excute,回滚undo
	3.遍历已有的List<Command> size = 15,(谁给它赋的值)
	4.包装输入
	5.旧的添加到新的
	6.命令类执行*
	7.包装输出
	
4.	FindDynamicDataStoreIdCommand执行:
	1.发布数据类:storageId=随机iduuid
				fileName:1.zip(我取得名字)
				filePath= null
				isOccupied= false
				dataType="WORKSPACE"(我选的)
				dataId=1055149035
				...
	2.通过发布数据类的dataId和dataType和180(超时时间int 180)从数据库查出返回				  	        Map<DynamicDataStoreType,String> (RALATIONSHIP_STOTR,relationshipId)  
	DynamicDataStoreType枚		举类的RALATIONSHIP_STOTR 关系型存储(是对的)
		1.DefaultDataCatalogStore查询数据库
			1.匹配"WORKSPACE"
			2.缓存里不包含dataId,递归重试
	3.把从数据库查出的赋值给了发布数据类
	
5.	遍历到Command中的VerifyServiceStatusCommand时出错
	service.serviceCheckInfo = Cannot find local variable 'service'
原因:	
	需要遍历execute 15个command下的子类,每个都必须成功
	遍历到第15个VerifyServiceStatusCommand时出错
	
	if(!service.published || isCheckStatusFailed(serviceCheckInfo)){
        抛异常
	}
   ·!service.published = false
    isCheckStatusFailed(serviceCheckInfo) = true  有问题
    
    —— ——DataItemServiceCheckInfo serviceCheckInfo里面
    —— —— —— ——DataCheckStatus checkStatus = “FAILED”
    —— —— —— ——String checkMsg = "SERVUCE_CHECK_FAILED_WITH_PUBLISH_FAILED"
    
    1.一个dataCheckStatus     “success”
    2.一个serviceCheckStatus	"failed"  有一次突然"success" ☆☆☆☆☆☆☆
    
    第6,7个的 publishFilePath = “no_use_path”
发布三维服务成功一次,当时是在慢慢调试,可能是时间问题