第六章 配置命名空间(一)
命名空间是虚拟工作空间中的数据和程序的集合。在命名空间中,可以定义各种组或人员需要的全局变量Global
。例如,如果审计部门需要使用存在于不同系统或不同目录中的某些全局变量Global
,可以设置一个单一的命名空间来引用网络上的所有会计全局变量和数据库。
IRIS
带有以下预定义的命名空间:
-
%SYS
— 系统管理信息和实用程序。
-USER
— 安装时为空。通常用于应用程序开发。
可以在管理门户的命名空间页面上执行以下过程来配置命名空间,可以通过在主页上依次选择系统管理、配置、系统配置和命名空间来导航到该页面:
- 创建/修改命名空间
- 重命名命名空间或修改默认映射
- 将全局、例程和包映射添加到命名空间
- 删除命名空间
注意:上面列出的主题描述了使用管理门户手动配置命名空间的过程。 IRIS
还包含对自动化命名空间配置有用的编程工具。可以在新选项卡类中使用 Config.Namespaces
来创建和配置命名空间。
配置命名空间的另一种方法是将 CreateNamespace
、ModifyNamespace
或 DeleteNamespace
操作与配置合并结合使用。配置合并允许通过应用声明性合并文件来自定义 IRIS 实例,该文件指定要应用于该实例的设置和操作。
单个 IRIS
实例中命名空间数量的绝对限制为 2048
。命名空间表的大小是自动的且不可配置。
创建/修改命名空间
可以随时创建新的命名空间,但是当第一次设置系统时,请创建用户需要的基本名称空间。要创建命名空间,请单击 Create New Namespace
以显示New Namespace
页面,然后执行以下操作:
- 输入命名空间的名称。
命名空间名称的长度必须至少为一个字符(但不超过 255
个字符),以字母字符或百分号 (%
) 开头,后跟任意数量的字母数字字符、短划线或下划线。
重要提示:请勿指定以下保留的系统名称:BIN
、BROKER
、DOCUMATIC
、%SYS
。
- 可以从现有命名空间复制,创建所选命名空间的副本。在这种情况下,除了下面第
6
步中描述的Web
应用程序复选框外,所有其他选项都将不可用。 - 选择全局变量的默认数据库是本地的还是远程的。
- 为
Globals
选择一个现有数据库作为此名称空间的默认全局映射,或单击Create New Database
,这将启动数据库向导或远程数据库向导。 - (可选)可以选择例程的默认数据库是本地的还是远程的,然后使用
Select an existing database for Routines
下拉列表为此命名空间的默认例程映射选择一个数据库,或者单击Create New Database
,这将启动数据库向导或远程数据库向导。
- 如果要创建访问此命名空间的
Web
应用程序,请选中为此命名空间创建默认Web
应用程序复选框。 - 或者,可以清除为互操作性产品启用命名空间复选框。
- 输入所需信息后,单击保存以将命名空间添加到配置中。
创建启用互操作性的命名空间
当在 IRIS
实例上创建名称空间时,“为互操作性产品启用名称空间”复选框将显示在“新名称空间”页面的底部并自动选中。要创建未启用互操作性的命名空间,请在单击保存之前清除此复选框。
如果不清除该复选框并创建启用互操作的命名空间,系统会自动为新命名空间执行附加配置任务,如下所示:
- 如果此命名空间的默认全局数据库是现有数据库,它会升级并重新编译该数据库中的某些类。
注意:如果还在其他命名空间中使用此数据库,可能会认为此更改是不可取的。当在 IRIS
实例中创建新的命名空间时,请仔细考虑此命名空间是否适合重用现有数据库。
- 它定义了全局映射、例程映射和包映射,使
IRIS
系统类和数据可用于命名空间。 - 它将节点添加到
^%SYS
全局。 - 它使用
IRIS
所需的应用程序名称为命名空间创建一个Web
应用程序:/csp/namespace
。
部分重命名命名空间或修改默认映射
可以重命名命名空间,或更改命名空间映射到的数据库,而无需重新启动 IRIS
,使用以下过程:
- 转至命名空间页面(系统管理 > 配置 > 系统配置 > 命名空间)。
- 在
Namespaces
页面上,单击要修改的命名空间的名称。
- 更改或替换现有名称以重命名命名空间。
注意:
如果要重命名启用互操作性的命名空间,则必须采取其他步骤来完成该过程。
- 从系统打开
Terminal
。 - 输入
do ##class(%Library.EnsembleMgr).EnableNamespace("<NewNamespace>",1)
其中 <NewNamespace>
是现有命名空间的新名称。
- 转至 Web 应用程序页面(系统管理 > 安全性> 应用程序>
Web
应用程序)。
- 找到与命名空间旧名称对应的应用程序名称,然后单击删除。
- 单击与命名空间的新名称相对应的应用程序名称。
- 选择命名空间默认应用程序,然后单击保存。
- 在终端中,输入:
do ##class(%EnsembleMgr).DisableNamespace("<OldName>",1)
其中 <OldName>
是要重命名的命名空间的原始名称。
- 从定义的数据库列表中选择
Globals
的默认数据库、例程的默认数据库和临时存储的默认数据库。
注意:从 Default Database for Temporary Storage
下拉列表中选择配置为不记录全局变量的数据库(即,将Journal
globals
属性设置为 No
)与选择 IRSTEMP
不同
- 单击保存。
注意:在更改时直接访问数据库的用户需要注销然后重新登录 IRIS
以更新他们的命名空间映射。