解决错误:许可证签出失败
问题
在将 MATLAB® Parallel Server™ 与网络许可管理器配合使用时,可能会因许可问题导致出现以下开头的消息:
许可证签出失败。
可能的解决方案
许可错误可能由以下问题引起:许可文件配置错误、系统日期不一致,或者工作单元与许可服务器之间的连接问题。
解决许可证文件配置错误
当集群用户向包含 MATLAB Parallel Server 的集群提交作业时,MATLAB 会在工作单元启动时检查许可证文件,以验证产品许可。如果出现许可问题,工作单元无法启动,且 MATLAB 客户端会显示如下错误:
许可证签出失败。许可证管理器错误 -5 不存在此功能.许可证签出失败。许可证管理器错误 -5。无法找到的许可证<product_name>
这些错误表明,该产品未包含在网络许可管理器的许可证文件中,或者许可证文件中存在格式问题。
您可以在托管网络许可证管理器的服务器计算机上的 matlabroot/etc 文件夹中找到网络许可证管理器的许可证文件,该文件名为 license.dat。matlabroot 是 MATLAB 的安装文件夹。您可能还保留着在工作单元上安装 MATLAB Parallel Server 时生成的网络许可证副本。
在编辑器中打开 license.dat 文件。
验证产品许可. 请确认该产品是否已列入网络许可证管理器的许可证文件中。
每一行 INCREMENT 都标识了一个产品、该产品可用的密钥数量以及其他信息。要查找该产品,请在许可证文件中的 INCREMENT 行内查找其位置。以下是一个 INCREMENT 行的示例:
INCREMENT MATLAB MLM 46 30-jan-2025 13 FDC7243F4976 \
VENDOR_STRING=vi=0:at=200:ae=1:lu=300:lo=CN:ei=1234567:lr=1:2p=0: \
DUP_GROUP=UH asset_info=123456 ISSUED=21-Nov-2021 BORROW=720 \
NOTICE=product=MATLAB SN=123456 SIGN="00C8 0547 EFDF 50D7 B9CE \
4C9D 3348 561B E9E3 6CCA 7986 C2F6 38C8 794F EE84"请确认该产品已列入许可证文件中。如果您找不到该产品,但认为它应该在,请联系客服。
检查格式问题. 出现此错误还可能是由于许可证文件中存在多余的回车符或选项卡,或者 INCREMENT 行被换行到上一行所致。
请确保许可证文件中的每一行都以 #、SERVER、DAEMON 或 INCREMENT 开头,并且左对齐。如果您发现任何格式问题,请停止网络许可管理器,并编辑许可证文件以修复该格式问题。修复 license.dat 文件后,请重新启动网络许可管理器。如需有关停止和启动网络许可证管理器的帮助,请参阅 启动和停止网络许可证管理器。
检查系统日期. 如果系统日期早于网络许可的创建日期,您可能会遇到此错误。更新系统日期。
解决 MATLAB 作业调度器工作单元许可证问题
当您使用 startworker 命令启动 MATLAB 调度器工作单元进程,且安装环境无法访问工作单元许可证时,可能会看到以下错误:
The mjs service on the host hostname
returned the following error:
Problem starting the MATLAB worker.
The cause of this problem is:
==============================================================
Most likely, the MATLAB worker failed to start due to a
licensing problem, or MATLAB crashed during startup. Check
the worker log file
/tmp/mjs_user/node_node_worker_05-11-01_16-52-03_953.log
for more detailed information. The mjs log file
/tmp/mjs_user/mjs-service.log
may also contain some additional information.
===============================================================
License checkout failed.
License Manager Error -15
MATLAB is unable to connect to the license server.
Check that the license manager has been started, and that the
MATLAB client machine can communicate with the license server.检查工作单元能否连接到网络许可管理器. 为确保工作单元能够连接到网络许可管理器,请验证工作单元与网络许可服务器之间的连接。
请从工作单元使用以下命令对许可证管理器服务器执行 ping 操作,以验证通信是否正常,其中
hostname是服务器计算机主机名:如果 ping 操作失败,可能是网络错误导致无法通信。请联系您的网络管理员以解决此问题。ping <hostname>您还可以从工作单元使用该服务器的主机名向许可证管理器发送 ping 请求。如果您可以对服务器的 IP 地址进行 ping 操作,但无法对它的主机名进行 ping 操作,那么问题出在您的网络的 DNS 配置上。该工作单元会检查本地许可证文件
network.lic,以获取服务器的主机名。作为临时解决方案,请将network.lic文件中SERVER行里的主机名替换为 IP 地址。在文件夹中找到matlabroot/licensesnetwork.lic文件,其中matlabroot是工作单元上的 MATLAB 安装文件夹。请确认工作单元上
network.lic文件中的SERVER行与服务器上license.dat文件中的该行是否一致。如果SERVER这一行内容不同,工作单元可能会连接到错误的服务器/端口。确定工作单元与许可证管理器服务器之间是否存在防火墙。许可证管理器使用两个端口,这些端口必须在防火墙中保持开放。这些端口在许可证管理器服务器上的许可证文件中进行了指定。如果防火墙正在运行,请联系系统管理员以打开必要的端口。
检查 MATLAB Parallel Server 的安装情况. 如果您仅在工作单元上安装了 Parallel Computing Toolbox™,也会出现此错误。如果未安装 MATLAB Parallel Server,则在该节点上运行的工作单元将无法获取许可。请确保 MATLAB Parallel Server 已在工作单元上正确安装。有关在工作单元上安装 MATLAB Parallel Server 的更多信息,请参阅 在集群节点上安装软件。