如何知道已使用了多少许可证以及由谁使用?类中的 %SYSTEM.License
提供了到 IRIS
许可证应用程序编程接口 (API
) 的接口,并提供了许多方法和相关查询,可以使用这些方法和相关查询来查询许可证容量和当前使用情况。
可以使用 %Library.%ResultSet
类的 RunQuery
方法运行多个许可查询。例如:
USER>do ##class(%ResultSet).RunQuery("%SYSTEM.License","Summary")
LicenseUnitUse:Local:Distributed:
当前使用的软件许可单元 :2:2:
使用的最大软件许可单元数 :3:2:
授权的软件许可单元 :25:25:
当前连接 :2:2:
最大连接数 :6:6:
可以从管理门户的许可证使用页面(系统操作 > 许可证使用)查看这些查询的输出,详细信息如下表所示:
许可证使用页面上的链接 | License Query |
---|---|
Summary | Summary() — 返回许可证使用摘要,如 $System.License.ShowSummary 所示。 |
Usage by Process | ProcessList() — 返回操作系统进程标识符 (PID ) 使用的许可证,如 $System.License.DumpLocalPID 所示。 |
Usage by User | UserList() —按用户 ID 返回许可证使用。 |
Distributed License Usage | AllKeyConnectionList() — 返回按用户排序的当前分布式许可证使用情况。 (当没有连接许可服务器时禁用此功能。) |
还可以使用 %SYSTEM.License
中的以下类方法来显示信息,或将许可证数据库转储到文件中:
$System.License.CKEY
显示密钥。该子例程由 ^CKEY
程序调用,该程序为保持兼容性而保留:
USER>Do $System.License.CKEY()
InterSystems IRIS Key display:
Based on the active key file 'c:\intersystems\irishealth\mgr\iris.key'
LicenseCapacity = InterSystems IRIS 2021.2 Enterprise - Concurrent Users for x86-64 (Microsoft Windows):25, Natural Language Processing (NLP), En
CustomerName = ISC DC Moderators - Xin Yao
OrderNumber = 202224285
ExpirationDate = 7/15/2023
AuthorizationKey = 4125500002500002500000XXXXXXXXXXXXXXXXX01
MachineID =
当前可用 = 23
最小可用 = 22
最大可用 = 25
$System.License.ShowCounts
总结了在本地系统共享内存中跟踪的许可证使用情况:
USER> Do $System.License.ShowCounts()
本地软件许可使用视图.
25 授权的总数量 LU
23 当前可用 LU
22 最小可用 LU
2 当前用户处于活动状态
3 处于活动状态的最大用户数
1 当前 CSP 用户处于活动状态
1 处于活动状态的最大 CSP 用户数
0 当前 CSP 会话处于宽限期
0 处于宽限期的最大 CSP 会话数
.License.ShowServer
显示活动的许可证服务器地址和端口:
USER> Do $System.License.ShowServer()
活动软件许可服务器地址 = 127.0.0.1 端口 = 4002
如果开发了基于 REST
的应用程序,许可证将随着使用而消耗。为防止这种情况发生,请配置可以建立的 Web Gateway
连接数。从 Web Gateway
管理部分的管理门户:
2
或 3
的数字,以允许服务器端登录。注意:根据应用程序的服务器端需求,需要对此进行调整。
通过在所有可用连接都忙时执行此操作,新请求将排队而不是被拒绝。由于超出许可计数,不会看到拒绝。随着数量的增长,客户端的响应时间会减慢。这表明需要购买更多许可证。