出现了错误后,是否要还原TC库?部署失败后,是否可以直接修复错误?回答:可以直接修复错误,只有在万不得已的情况下,才还原TC库。
特别说明:做BMIDE修复之前,一定要做好相关备份,如果是虚拟机,就先做快照最常见的错误修复:
1.将已经部署的普通属性修改为数组属性(或者反之)
热部署操作:先将原来的属性删除,然后添加一个一模一样的属性,修改属性的参数,热部署BMIDE(例如下图)
部署出现错误,查看部署日志,发现这样直接修改是不行的
热部署失败后修复思路:
登录TC,使用BMIDEProjectBackupRecovery搜索BMIDE备份项目,在TC里面找到的最新时间的项目备份,是本次部署的项目备份,可以按时间线找一下之前最新的备份文件(如果最后没办法部署成功,可以用该备份恢复BMIDE项目,然后部署,缺点就是本次部署的修改全部丢失了)
再看一下delta.xml文件,发现本次做了添加和修改操作,结合上面部署后的错误日志,可以定位错误原因就是因为我们做了不允许的修改操作。
尝试修复:先将故障属性删除,再进行部署
部署成功后,再按照新的定义添加该属性,添加完后,再部署
总结:BMIDE因为修改属性出现错误后,需要先将故障属性删除,然后部署,部署成功后再添加该属性(按新定义),然后再部署就可以了,整个修复过程不会导致TC系统崩溃,无法登录(其实部署失败了,数据库就直接回滚了)
相关笔记:Add a persistent property
冷部署操作:先将原来的属性删除,然后添加一个一模一样的属性,修改属性的参数,冷部署BMIDE(例如下图)
提示部署失败
看看delta.xml,里面记录了本次部署和上次部署产生的差异文件(无论是否部署成功,每
次部署都会产生delta.xml文件,可以根据此文件和日志定位故障点,该文件在
tcdata\model目录里,部署失败后,delta.xml文件不会更新,直到系统恢复后,下次部署才会更新),
根据tem的提示,查找相关日志(到日志目录,将修改日期按倒序排列,查看每个日志,找到故障点,重点查看business_model_updater_xxxxx.log),发现部署失败的原因是因为错误地修改了该属性造成的。
修复方法:
先将故障属性删除,重新生成软件包
将整个install目录备份到其他位置,将tcdata\model\delta.xml备份,然后将
分全部删除,再重新运行tem
系统恢复成功后,再使用tem冷部署新的BMIDE软件包(该包已经移除了故障属性)
部署成功后,再按照新的定义添加该属性,添加完后,再生成新的软件包,使用tem进行冷部署
猜想:热部署失败的时候,可以使用以下语句手工修复数据库(具体命令使用,可以看看帮助手册),只要命令执行没有问题,修正BMIDE错误后,应该就可以再次部署(手工编写的delta.xml里面,应该没有Change,Delete部分)
business_model_updater -u=infodba -pf=infodba -g=dba -mode=upgrade update=schema -process=change -file=C:\Siemens\tcdata\model\delta.xml 相关笔记:Changing property type corrupts TEM deployment