license error -97,121弹出来的时候ADAMS直接闪退,Start界面都进不去。去MSC Licensing里点Diagnostics,错误代码挂着不动。这台机器上ADAMS装了快一年了一直没问题,昨天突然打不开。
FlexNet这层是主机ID锁,主机ID默认取的是第一个可用网卡的MAC地址。ADAMS装的时候生成的license.dat里,SERVER行后面写的是当时那块网卡的物理地址,之后每次启动MSC Licensing服务都会去校验当前机器的网卡MAC跟license里的是不是同一个。对不上就直接拒绝,连报错都懒得细说。
重新跑了MSC_Calc生成新的license.dat,发现每次生成的ID段都不一样。第一次以为是硬件松了,把外接的USB网卡、硬盘全拔了再生成,还是变。翻了半天系统日志没看出问题,后来回想起来上周手机当热点共享网络的时候,把有线网卡在设备管理器里禁用了,热点断了一直没恢复。
把有线网卡重新启用,license服务重启,ADAMS正常打开。就是这么个事,禁用网卡的时候网卡的MAC地址从系统里消失了,FlexNet遍历可用网卡找不到license里绑定的那一个,生成新license的时候它抓的是无线网卡的MAC,跟原来license里绑的不是同一个。

license.dat的SERVER行长这样,SERVER 主机名 MAC地址 27500,中间那串就是绑定的网卡物理地址。MSC Licensing服务启动时读这一行,然后去系统里枚举所有可用网卡的MAC,没有一个匹配就报invalid hostid,错误码-97和-121都归在这类下面。禁用网卡跟拔掉网线的区别就在这里,禁用是系统层面把这块网卡从设备列表里摘了,FlexNet看不见它,拔网线只是断了物理连接,网卡还在设备管理器里活着,MAC地址照样能读到。
诊断的时候先跑lmutil lmdiag,在MSC Licensing的安装目录下,命令行里敲lmutil lmdiag -c 27500@主机名,它会告诉你当前系统里有哪些可用的hostid,跟license里的对一下。另一个办法是ipconfig /all看物理地址,找到有线网卡那一项,MAC地址跟license.dat里SERVER行的字符串比对,不对的话就是网卡被禁用或者换了。
恢复操作:设备管理器里把禁用的网卡启用,确认状态是“已启用”,然后任务管理器里找MSC_Licensing_Helium服务,右键重启,或者在lmtools里Stop Server再Start Server再Reread license file。ADAMS不用重装,license.dat也不用重新生成,网卡回来了一切照旧。如果之前已经用无线网卡生成过新license覆盖了旧的,把那版删掉,重新用有线网卡的MAC生成一份。
以后再做类似操作的时候注意,用手机热点共享网络直接拔网线就行,别在设备管理器里禁用网卡。FlexNet是认设备不认连接,网卡只要在设备列表里就是活的。D:\adams\license_backup\里存一份当前license.dat的备份,SERVER行里那串MAC地址单独记一下,下次报错先对一遍这个值。还有MSC_Licensing_Helium这个服务在任务管理器里默认不显示,要点“服务”标签页才看得到,别在“进程”里瞎找。
下次把lmutil lmdiag的完整输出格式整理一份,还有那个主机名和MAC的对照,如果……
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删