License error 5147弹出来,翻了一圈log发现是config文件里的服务器地址写错了,一行字符的事。
先把custom_v6.env找出来,路径是C:\SIMULIA\EstProducts\2023\win_b64\SMA\site\custom_v6.env,2022和2021把版本号换一下就行。这个文件是Python语法,字符串用引号,变量名不能拼错。FLEXnet就写两行:license_server_type=FLEXNET,abaquslm_license_file="27800@主机名"。DSLS写:license_server_type=DSLS,dsls_license_config="C:\\ProgramData\\DassaultSystemes\\Licenses\\DSLicSrv.txt"。用户home目录下也能放一个abaqus_v6.env,优先级比site目录高,改坏了大不了删掉。
C:\ProgramData\DassaultSystemes\Licenses\文件夹默认隐藏,地址栏手打进去。.LIC授权文件和DSLicSrv.txt都扔这里面,DSLicSrv.txt里写服务器地址和端口,格式是rxxxx-usw1-licensing.3dexperience.3ds.com:443,一行一个。建这个文件的时候记事本保存,文件名只写DSLicSrv,扩展名选所有文件,手动打了.txt会变成DSLicSrv.txt.txt,许可证直接不起作用。C:\SIMULIA\License\下面放的是simulialm.lic、lmgrd.exe、lmgrd.log这些FLEXnet的东西。

EstablishedProductsConfig.ini这个文件也在同一个site目录下,记不清了好像是C:\SIMULIA\EstProducts\2023\win_b64\SMA\site\EstablishedProductsConfig.ini。2022以后如果从FLEXnet切到DSLS,得进这个文件找[EstablishedProducts]段,把LICENSE_SERVER_TYPE和FLEX_LICENSE_CONFIG两行前面加#注释掉。这个文件跟custom_v6.env的关系是互相覆盖,两个都改了以后以哪个为准我到现在也没完全搞清楚,反正两个都改就对了。环境变量这边LM_LICENSE_FILE或ABAQUSLM_LICENSE_FILE设不设其实无所谓,config文件里的优先级更高,但有些第三方工具会读环境变量所以还是加上保险。
系统环境变量这块DSLS_CONFIG也有用,设成DSLicSrv.txt的完整路径,部分模块比如Isight的Fiper会读这个变量。
有一次周一早上刚到工位,电脑开机就弹5147,上周五还好好的。当时楼下在装修,电钻声一阵一阵的,带着降噪耳机都能听见。第一反应是license服务没起,services.msc一看Dassault Systemes License Server状态Running,lmutil lmstat也能连上token也够。然后翻site目录下的custom_v6.env,打开一看傻了,文件内容被覆盖了,license_server_type那两行不见了,取而代之的是插件目录的配置行,plugin_central_dir后面还跟着一串日期。想起来周五下午装了一个第三方后处理插件,安装器往custom_v6.env里写了plugin_central_dir,顺便把整个文件重写了一遍,把我之前配的license_server_type=FLEXNET和abaquslm_license_file两行全冲掉了。同机器上还有2021版本在跑,2021走的是另一个site目录下的custom_v6.env,没被波及所以2021还能用,就2023挂了。把license那两行手动加回去重启服务就好了。装任何ABAQUS插件之前,把site目录下的custom_v6.env和EstablishedProductsConfig.ini先备份一份到D盘,插件安装器写文件的逻辑不一定可靠。
多版本共存的时候,custom_v6.env是每个版本各自site目录下独立的,2021、2022、2023各有一份,但EstablishedProductsConfig.ini在同名路径下也可能各有一份。如果所有版本都走同一个license服务,就统一把端口写成27800@localhost,让所有版本连同一套服务,省得每个版本配一遍。ABAQUS跟UG/NX之间端口冲突也是老问题,两个都用FlexNet,默认都是27800,谁先占谁用,后启动的就连不上。改成27900或别的没被占的端口也行,改完记得防火墙同步放行。
排查命令记住几个,lmutil lmstat -a -c 27800@localhost看FLEXnet服务状态,abaqus licensing dslsstat看DSLS的token占用,netstat -aon | findstr “27800”确认端口有没有被别的进程占了。日志路径lmgrd.log在C:\SIMULIA\License\下,abaquslm.log同目录,DSLS那边日志在DSLicSrv所在目录或者服务管理界面直接看。job的msg文件里license报错行和lmgrd.log的时间戳对一下,能判断是服务端还是客户端的问题。custom_v6.env里如果加了academic=TEACHING想用教学license跑子程序会报错,得改成academic=RESEARCH,RESEARCH不加引号。
D:\SIMULIA\EstProducts\2023\win_b64\SMA\site\custom_v6.env,改完重启Dassault Systemes License
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删