第三十章 管理许可(三)
确定许可证容量和使用情况
如何知道已使用了多少许可证以及由谁使用?类中的 %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:
可以从管理门户的许可证使用页面(系统操作 > 许可证使用)查看这些查询的输出,详细信息如下表所示:

image.png
| 许可证使用页面上的链接 | 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的数字,以允许服务器端登录。

image.png
注意:根据应用程序的服务器端需求,需要对此进行调整。
通过在所有可用连接都忙时执行此操作,新请求将排队而不是被拒绝。由于超出许可计数,不会看到拒绝。随着数量的增长,客户端的响应时间会减慢。这表明需要购买更多许可证。
 
                                 
                                 
                 
             
                            