#Caché

1 关注者 · 982 帖子

  

InterSystems Caché 是一个多模型 DBMS 和应用服务器。

查看此处提供的更多详细信息

文档

文章 姚 鑫 · 九月 16, 2022 3m read

第三十四章 在 Windows 上使用 IRIS(一)

Microsoft Windows 平台上管理 IRIS 数据平台实例非常简单。可以使用管理门户和 IRIS 启动器执行大多数任务。还可以从命令提示符控制 IRIS 实例。

本主题使用 install-dir 来指代 IRIS 安装目录——可以在安装指南的默认安装目录部分找到默认目录。

注意:不要对 IRIS IRIS.DAT 数据库文件使用 Windows 文件压缩。 (通过右键单击 Windows 资源管理器中的文件或文件夹并选择属性,然后选择高级,然后压缩内容以节省磁盘空间来压缩文件;压缩后,文件夹名称或文件名在 Windows 资源管理器中呈现为蓝色。)如果压缩一个IRIS.DAT 文件,它所属的实例将无法启动,并出现误导性错误。

管理对 IRIS 实例的访问

InterSystems 服务

所有 IRIS job和进程都从 InterSystems 服务、 IRIS Controller for <instance-name> 运行。 InterSystems 服务具有的权限由其关联的 Windows 用户帐户决定。当这是本地 SYSTEM 帐户时, IRIS 可以访问 Windows 系统上的所有文件和权限。为了维护一个更安全和限制性更强的环境,应该为服务选择一个仅具有所需权限和访问权限的 Windows 帐户

0
0 295
文章 姚 鑫 · 九月 15, 2022 3m read

第三十三章 管理许可(六)

应用许可

应用程序许可使应用程序合作伙伴能够利用 的许可功能来实现自己的许可目的。 IRIS 像管理自己的应用程序许可证一样管理客户应用程序许可证,维护使用计数并根据需要获取和返回用户许可证。当进程退出、停止或从进程表中删除时,或者当 Web 会话超时或被删除时,进程或 Web 会话使用的应用程序许可证与进程或会话使用的 IRIS 许可证一起自动释放。

应用程序许可证只是标准 .ini 格式的文件或此类文件的一部分,包含标识应用程序的部分标题和一些keyword=value对,在许可证中是唯一的,代表许可的功能。任何格式正确的应用程序许可证都可以在运行时由应用程序加载到 IRIS

应用程序许可 API 包括使应用程序能够代表用户使用和返回许可证的方法和查询,以及使程序能够获取有关应用程序和功能许可的信息,包括正在使用和仍然可用的许可证数量。

加载应用程序许可证

IRIS 实例可以在应用程序运行时使用 $SYSTEM.License.LoadAppLicenseFile 方法加载和激活任何应用程序许可,该方法记录在 %SYSTEM.License 的类参考中(请参阅应用程序许可 API)。以这种方式加载的应用程序许可证与活动的 IRIS 许可证无关,但由 IRIS 实例独立跟踪。

每个应用程序许可证都包含在以 [AppName] 开头的部分中;应

0
0 112
文章 Michael Lei · 九月 15, 2022 6m read

如果你读了我之前介绍QEWD微服务的文章,希望你会渴望了解如何使用它们。  所以在这篇文章中,我将解释你需要知道的东西,以便开始使用。

如果你在QEWD资源库中,你会发现目录: 

  https://github.com/robtweed/qewd/blob/master/example/jwt

在我之前关于JSON网络令牌(JWTs)和QEWD的文章中,我用这个示例应用程序来解释如何使用JWTs。  这个示例应用程序还演示了如何设置一个简单的微服务,在这种情况下是一个处理用户认证的服务。  所以,现在让我深入了解一下这个例子应用程序的这方面内容。

如果你想使用QEWD微服务,你也必须使用JWTs--它们提供了一种方法,用户的认证和会话可以被多个独立的QEWD服务器交叉通信和处理。  因此,请看一下启动文件:

   https://github.com/robtweed/qewd/blob/master/example/jwt/startup_file/q…

你会看到,它将QEWD配置为使用JWT,并定义了用于签署和加密JWT的加密字符串:

           jwt: {
            secret: 'someSecret123'
          },

而且,你可以看到如何定义微服务:

  u_services: [
    {
 





0
0 278
文章 姚 鑫 · 九月 14, 2022 6m read

第三十二章 管理许可(五)

Identifying Users

IRIS 许可系统识别不同的用户并为每个用户分配一个许可单元。用户由许可证用户 ID 标识,该 ID 可以是 IP 地址、用户名、Web 会话 ID 或其他标识符,具体取决于用户的连接方式。

由单个用户启动或为单个用户启动的多个进程共享一个许可证单元,最多可达每个用户的最大进程数。如果进程数超过此最大值,则会发生转换 IRIS 开始为该用户 ID 的每个进程分配一个许可单元。系统假设如果与用户 ID 关联的进程数超过最大值,则多个用户正在通过中介(例如防火墙系统)访问 IRIS,因此需要额外的许可证单元。 (由 Job 命令启动的进程计入调用该命令的用户 ID 下。)

即使用户 ID 下的进程数回落到最大值以下, IRIS 仍会继续为该用户 ID 的每个进程分配一个许可单元。只有当用户 ID 的所有连接都关闭并且用户 ID 下没有更多进程时,许可证分配才会重置为该用户 ID 的一个单位。

通过名称识别用户的应用程序消除了与使用基于客户端 IP 地址、Web 会话 ID 或其他连接派生用户 ID 的默认用户 ID 相关的问题。

例如,当使用防火墙或终端服务器软件时, IRIS 无法区分连接用户,因此它依赖于最大连接转换规则。使用来自同一客户端的混合连接也使得无法使用自动 ID 创建适当地计算用户数。

当用户名用作许可证标

0
0 125
文章 姚 鑫 · 九月 13, 2022 4m read

[toc]

第三十一章 管理许可(四)

显示本地许可证信息的方法

下面列出的子例程转储实例共享内存中本地包含的许可证表的内容。一般来说,他们识别客户:

$System.License.DumpLocalAll 将所有本地许可证表条目转储到当前目录中的 all.dmp 文件中:

USER> Do $System.License.DumpLocalAll()
 
25 条目转储到 c:\intersystems\irishealth\mgr\user\all.dmp

all.dmp 文件的内容示例:

$System.License.DumpLocalInUse 将所有正在使用的本地许可证表条目转储到当前目录中的 inuse.dmp 文件:

USER> Do $System.License.DumpLocalInUse()
 
2 条目转储到 c:\intersystems\irishealth\mgr\user\inuse.dmp

inuse.dmp 文件内容示例:

$System.License.DumpLocalPID 将进程 ID 使用的本地许可证表转储到当前目录中的 piduse.dmp 文件中:

USER> Do $System.License.DumpLocalPID()
 
33 条目转储到 c:\intersystems\irishealth\mgr\user\

image

0
0 117
文章 Qiao Peng · 八月 23, 2022 6m read

任何技术总是有些自己独特的术语,尤其是一些英文术语,对于新的用户来说往往即陌生又迷惑。这里整理了一下常听到的InterSystems术语,帮助大家尽快进入InterSystems技术圈子。

名词 说明
Arbiter 仲裁器。用于在mirror高可用集群里辅助判断主备机成员状态,提高高可用集群的有效性
Atelier InterSystems开发的基于Eclipse的IDE,可以单独部署、也可以嵌入Eclipse
bitmap索引 位图索引。以位图方式保存的枚举类型数据的索引,用于高性能查询
bitslice索引 位片索引。用位图方式对数值型数据建立的索引,用于高性能查询
Buttons Cache'数据库上的诊断报告工具。历史上,InterSystems曾经提供一个routine,名为^Buttons,用于收集系统数据用于诊断。虽然后来这个工具已经被放在%SYS.Task.DiagnosticReport类中,但大家还是习惯称之为buttons
cconsole log Cache'数据库的控制台日志文件,记录通用信息、系统错误、特定操作系统错误、网络错误等。它含有非常重要的系统诊断信息
CPF InterSystems数据平台的参数配置文件(Configurat
1
2 431
文章 姚 鑫 · 九月 11, 2022 5m read

第二十九章 管理许可(二)

激活许可证密钥

IRIS 使用许可证密钥来确保其注册站点的正常运行、定义可用容量并控制对 IRIS 功能的访问。 许可证密钥以许可证密钥文件的形式提供,通常命名为 iris.key

安装 IRIS 后,使用以下程序激活许可证密钥。始终可以使用相同的过程为任何已安装的实例激活新的许可证密钥(即升级密钥)。可以激活放置在管理门户可访问的任何位置的许可证密钥;作为激活的一部分,许可证密钥将作为 iris.key 复制到实例的 install-dir/mgr 目录(如果尚未命名)。

注意:也可以在 Windows 安装期间选择许可证密钥。执行此操作时,许可证会自动激活,并且许可证密钥会作为 iris.key 复制到实例的 install-dir/mgr 目录中;不需要此处描述的激活过程。

本节还讨论了许可证故障排除和在所有许可证单元都在使用时从操作系统命令行升级许可证。

要激活许可证密钥,请使用以下过程:

  1. 导航到许可证密钥页面(系统管理 > 许可 > 许可证密钥)。将显示有关当前活动许可证密钥的信息。如果尚未激活任何许可证,则会显示这一点,例如通过标记客户名称:缺少许可证或不可读。此页面包含一个打印按钮,可让轻松打印显示的信息。

  2. 单击激活许可证密钥并浏览到要激活的许可证密钥文件。当选择一个文件时,会显示有关它的信息,以便激活它之前验证是否拥有正确的许可

0
0 273
文章 姚 鑫 · 九月 10, 2022 4m read

[toc]

第二十八章 管理许可(一)

配置许可

每个 IRIS 实例维护其许可证容量和当前使用的独立本地视图,并且每个实例都需要访问许可证密钥。可以在每个实例上安装和激活本地许可证密钥文件。或者,如果要管理多个实例,可以配置许可证服务器来管理存储在中央位置的密钥文件,然后它可以将其分发到其他实例。在这种情况下,必须为每个实例配置密钥文件的 LicenseID,以便它可以在启动时检索密钥的副本。

多服务器许可证可以在同一台机器或不同机器上的协作实例之间共享。仅允许使用多服务器密钥进行共享。要使用多服务器许可,必须配置一个或多个 IRIS 许可服务器来分配密钥授权的 IRIS 许可单元。共享密钥的所有实例都必须配置为使用相同的许可证服务器或一组许可证服务器。许可服务器可以在运行 IRIS 实例的任何计算机上运行。监控进程向许可服务器发送更新消息,当多个实例共享一个许可时,许可服务器协调许可分配。

许可证服务器协调在每个实例中本地维护的许可证使用视图。许可证服务器不是 IRIS 进程;如果 IRIS 实例关闭,则不受影响。一台许可证服务器可以处理多个实例。因此,无论一台主机上运行多少个 IRIS 实例,每台主机最多需要一个。但是,每个 IRIS 实例都必须安装授权许可密钥文件的本地副本。

如果在多台主机上运行 IRIS 服务器,可以配置多个许可证服务器以提供冗余。许可软件选择许可服务器

0
0 113
文章 姚 鑫 · 九月 8, 2022 2m read

第二十六章 使用任务管理器(四)

导入任务

导入任务页面(系统操作 > 任务管理器 > 导入任务)允许通过浏览到先前导出的任务文件,然后单击立即执行操作来导入和运行任务。

注意:任务只能从运行相同版本的 IRIS 的实例导入或导出。

使用 ^TASKMGR

^TASKMGR 例程允许使用终端配置任务管理器。除非另有说明,^TASKMGR 和管理门户包含用于配置任务的相同选。

  1. 打开终端。
  2. 输入 set $namespace = "%SYS" 以更改为 %SYS 命名空间。
  3. 输入do ^TASKMGR

具体类 %SYS.Task

image

更改任务过期行为

默认情况下,所有任务都配置为在错过预定时间时过期。发生这种情况的原因有很多;例如,当 IRIS 在计划时间内关闭时,或者如果任务的上一次运行超出下一次计划时间。当任务到期时,它不会运行,直到下一个计划时间。

^TASKMGR 例程包含更改此行为的选项,以便从不跳过计划的运行。为此:

  1. 打开终端。
  2. 输入 set $namespace = "%SYS" 以更改为 %SYS 命名空间。
  3. 输入do ^TASKMGR
  4. 选择选项 2。
  5. 输入要编辑的任务编号。
  6. Enter 保存每个选项的默认值,直到到达 Task Expires?
  7. 输入No

或者,可以指定一个宽限期,这样任务在错过后不会立即过期。相反,任务管理器会尽快运行错过的任务。要

0
0 126
文章 姚 鑫 · 九月 7, 2022 2m read

第二十五章 使用任务管理器(三)

任务计划

任务计划页面(系统操作 > 任务管理器 > 任务计划)列出了所有计划任务。可以通过单击任何列标题对表中的信息进行排序。可以通过单击适当的选项查看详细信息或历史记录以及运行计划任务:

  • 任务名称 — 让查看有关任务的详细信息并对其执行操作。
  • 历史 — 显示任务的历史。
  • 运行 — 让运行任务。运行任务向导显示任务名称和 ID,以及任务运行的日期和时间;单击立即执行操作以确认信息并安排任务。

任务详情

要显示有关计划任务的详细信息并对其执行多项操作之一,请单击任务名称列中的任务名称。任务详细信息页面显示有关所选任务的信息和执行详细信息。可以通过单击相应的按钮对任务执行以下操作之一:

  • 编辑 — 使用任务计划程序向导更改任务定义和计划。
  • 历史 - 查看任务的历史。
  • 恢复/暂停 — 暂停任务/恢复暂停的任务。
  • 删除 — 永久删除任务。

注意:不能删除系统任务。

  • 导出 — 将任务导出到稍后可以导入的文件,包括由另一个 IRIS 实例导入。

  • 运行 — 安排任务。单击运行时,运行任务向导页面会显示任务名称和 ID,以及任务将运行的日期和时间;单击立即执行操作以确认信息并安排任务。

注意:在任务运行时,描述的某些操作不可用。

计划任务历史

要显示有关单个计划任务的历史信息,请单击项目行中的历史链接。任务历史记录页面显示所选任务的详细历史记录

0
0 126
文章 姚 鑫 · 九月 6, 2022 4m read

# 第二十四章 使用任务管理器(二)

本节介绍在创建或编辑任务时可以选择的预定义任务类型。某些任务只能从某些命名空间获得。

IRIS 包括许多默认运行的任务。此表记录了这些默认值,可以从“任务计划”页面进行编辑。

注意:可以使用 `%SYS.Task.DefinitionAPI` 定义自己的任务类型。

任务类型|对应的默认任务| 描述
---|---|---
CheckLogging |检查记录活动——每晚运行;两天后发送警报。|检查日志记录机制(例如 `^ISCSOAP`)是否没有意外运行。在 `DaysForAlert` 天后创建警报,并在 `DaysForShutoff` 天后关闭日志记录。
CleanSQLIndex |清理 `SQL` 语句索引 — 每小时运行一次。| 清理过时的 `SQL` 语句索引条目。
CumuIncrDBList|`None` |运行已定义列表中数据库的累积备份。
DiagnosticReport|诊断报告 — 按需运行。|收集并向 WRC 提交诊断报告。
FullAllDatabases | `None`|运行所有数据库的完整备份。
FullDBList|`None`|运行定义列表中的数据库的完整备份。
IncrementalDBList|`None`|运行已定义列表中数据库的增量备份。
IntegrityCheck|完整性检查 — 默认禁用。|对命

0
0 199
文章 Louis Lu · 九月 5, 2022 3m read

原文可见 这里,原作者 Robert Cemper

我们在SQL中的经常被提到视图VIEW,基本上是一段预先设计好的SQL语句,它也像任何其他SQL查询语句一样执行和组装。

而物化视图MATERIALIZED VIEW意味着查询的内容是预先收集的,这些数据可以相当快地进行检索。

我第一次看到这个概念是和我最喜欢的竞争对手O* 一起的,他们对此功能发出了很多的声音。

然而在Caché/IRIS中,这种功能几乎是一早就存在的,我们认为这是很正常的普通功能。只是我们大多数开发人员只是没有意识到这一点,只要稍加润色,它就可以作为一个优秀的特性呈现出来。 此外,任何更新和维护都是作为内置的能力进行的,无需开发人员任何额外的工作。

看下面的例子:

在我们的Sample.Person类中,我们可以定义一个索引

/// Define an index for <property>Name</property>.
Index NameIDX On Name [ Data = (Name, Home.State, SSN) ];

正如我们预想的那样,在执行下面的查询时,它会非常的快

SELECT ID, Name, Home_State, SSN   from Sample.Person

因为这个查询所涉及到的内容都来来自索引global ^Sample.PersonI("Nam

0
0 255
文章 姚 鑫 · 九月 5, 2022 4m read

第二十三章 使用任务管理器(一)

要访问任务管理器,请导航至系统操作 > 任务管理器。

还可以使用终端与任务管理器进行交互,如使用 ^TASKMGR 部分所述。

注意:任务管理器每 60 秒轮询一次以查看是否有要运行的任务。当单击立即执行操作来安排任务时,在新安排的任务实际运行之前可能会有长达 60 秒的延迟。

新任务

新任务选项启动任务计划程序向导。此工具允许安排新任务运行。

注意:还可以使用任务计划程序向导通过从“任务计划”页面选择现有任务来编辑现有任务。

  1. 在任务计划程序向导的第一页上,提供有关新任务的以下详细信息:
  • Task name
  • Description
  • Namespace to run task in - 从定义的命名空间列表中选择要在其中运行任务
  • Task type - 从列出的任务中进行选择。

注意:根据所选的任务类型,可能会看到一个表格,在其中指定附加信息;例如,如果正在安排 IntegrityCheck,表单会提示输入目录、文件名和 KeepDays(保留文件的天数)。

  1. 任务优先级 - 从优先级正常、优先级低或优先级高中选择。
  2. 以该用户身份运行任务 — 从定义的用户列表中选择。要选择与登录时不同的用户,必须具有 %Admin_Secure:Use 权限。

注意:如果所选用户被禁用,任务将暂停,直到用户被启用并手动恢复任务。这不适用于内置系统任务,即使

0
0 133
文章 姚 鑫 · 九月 4, 2022 2m read

第二十二章 控制进程(三)

挂起或恢复进程

如果不确定某个进程在做什么并想要进行调查,或者如果一个更重要的进程正在尝试运行并且需要 CPU 周期,可能希望暂停该进程。要从管理门户访问此选项:

  1. 显示进程页面(系统操作 > 进程)。
  2. 单击相应进程行中的详细信息。
  3. 单击选项栏上的挂起。

可以随时通过单击同一页面中的恢复来恢复暂停的进程。

终止进程

如果某个进程无响应或正在影响其他进程或用户,可能希望终止该进程。要从管理门户访问此选项:

  1. 显示进程页面(系统操作 > 进程)。
  2. 单击相应流程行中的详细信息。
  3. 单击选项栏上的终止。

或者,要在进程终止时记录进程的状态,请选中 Terminate with RESJOB Error 复选框。

注意:默认情况下启用此选项。

  1. 单击“是”以确认您要终止该进程。无法恢复已终止的进程。

显示进程变量

Process Variables 页面显示了在选定进程中使用的所有变量,给出了全局名称和全局值。要从管理门户访问此信息:

  1. 显示进程页面(系统操作 > 进程)页面。
  2. 单击相应进程行中的详细信息。
  3. 单击选项栏上的变量。

向终端广播消息

可以向与选定进程或所有进程关联的终端广播消息;此实用程序很有用,例如,要求人们注销系统。但是,必须小心使用它,否则可能会导致消息出现在当时可能正在打印的报告中间。

该实用程序在发送消息时临时控制每个终端。一旦终端接收

0
0 125
文章 姚 鑫 · 九月 3, 2022 2m read

第二十一章 控制进程(二)

显示进程详细信息

进程详细信息页面显示有关任何进程的详细信息。要从管理门户访问此信息:

  1. 显示进程页面(系统操作 > 进程)。
  2. 单击相应进程行中的详细信息。 (此选项仅存在于有权维护的进程上。)

该页面还包括特定于所选进程的信息,这些信息被组织成一个通用信息表、一个客户端应用程序详细信息表和一个执行详细信息表:

一般信息

FieldDefinition
Process ID此进程的进程 ID (PID) 编号。
User Name当前为此进程登录的用户名。
Login Roles进程的登录角色。
Escalated Roles授予流程的其他角色。这些角色加上登录角色是授予流程的角色的总集。
OS User Name操作系统分配给进程的用户名。
NameSpace进程正在执行的命名空间。
Process Priority此进程的优先级。
Global References此进程进行的Global引用数。
Private Global References此进程进行的私有Global引用数。
Commands Executed此进程执行的命令数。
Memory Limit分配给此进程使用的内存量 (KB)
Memory Peak此进程使用的最大内存量 (KB)
Me
0
0 77
文章 姚 鑫 · 九月 2, 2022 3m read

第二十章 控制进程(一)

IRIS 系统运行多个进程。应用程序代码以及 IRIS 系统代码在这些进程中执行。 IRIS 进程分为三类:

  • 用户进程,在用户连接到 IRIS 时创建。
  • 后台进程,在用户发出 ObjectScriptJob命令时创建,或者由管理门户或实用程序创建。
  • IRIS 系统进程。

在本文中,“进程”一词本身指的是用户进程和后台进程。

可以使用管理门户管理和控制进程:

  • Display process information 显示进程信息 - 显示进程页面(系统操作 &gt; 进程)。
  • Display process details 显示进程详细信息 - 显示流程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。
  • Suspend/resume a process 暂停/恢复进程 - 显示进程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。然后根据需要单击操作栏上的暂停或恢复。
  • Terminate a process 终止进程 - 显示进程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。然后根据需要单击操作栏上的 TerminateTerminate with <RESJOB>Error
  • Display process variables 显示进程变量 - 显示进程页面,然后单击所选进程右侧栏中的详细信息以显示

0
0 163
文章 姚 鑫 · 九月 1, 2022 5m read

第十九章 维护本地数据库(四)

压缩数据库中的全局变量

管理数据库空间的另一种方法是使用 ^DATABASE 例程压缩数据库中的全局变量。压缩全局变量将全局数据合并到更少的块中,从而增加数据库中的可用空间量。

在创建和更新全局变量时 IRIS 通常以将全局块填充到大约 70% 容量的方式分配数据。 (完全按整理顺序增长的全局可能会分配到接近 90%。)通常,允许 IRIS 自动管理全局块密度就足够了。然而,一些不连续的数据删除模式可能会显着降低平均全局块密度。

注意:要逐个全局地查看数据库中全局块的当前密度,可以运行完整性检查、并检查每个全局的数据级别输出。

压缩全局变量时,指定所需的全局块密度(默认为 90%),操作会尝试通过合并数据来尽可能接近此值——例如,将分布在三个块中的全局数据重新排列为两个。通常(但并非总是),压缩全局变量会显着增加数据库中可用的可用空间。 (如果指定的目标密度低于数据库当前的全局块密度,则数据库的大小不会增加。)

要压缩数据库中的全局变量,请使用以下过程:

  1. 打开终端并更改为 %SYS 命名空间。
  2. 输入 do ^DATABASE,然后从菜单中选择 7) Compact globals in a database
%SYS>do ^DATABASE
 
 
 1) Create a database
 2) Edit a database
 3) 
0
0 162
文章 姚 鑫 · 八月 31, 2022 4m read

第十八章 维护本地数据库(三)

截断数据库

截断数据库会将数据库末尾的可用空间返回到底层文件系统。数据库在压缩后通常会被截断,这会将可用空间移动到数据库的末尾。

截断数据库时,指定数据库的目标大小。如果在数据库末尾有足够的可用空间,则该操作会删除足够的空间以将数据库减小到目标大小;如果没有,它会删除所有可以删除的内容。 (要了解数据库的可用空间到底有多少,请压缩数据库;无需完成显示当前总可用空间和末尾数量的操作。)

注意:此功能不适用于具有原始卷的数据库。

  1. 导航到数据库页面(系统操作 > 数据库)。
  2. 单击要截断的数据库的名称。这会将带到其数据库详细信息页面。
  3. 单击页面顶部功能区上的截断。这将显示“截断数据库”对话框,其中显示所选数据库的名称、位置和当前大小(以兆字节 (MB) 为单位)。
  4. 输入目标文件大小 (MB),它必须小于当前大小,然后单击确定。输入 0 从文件末尾删除所有可能的可用空间。

注意:用于截断目的的可用空间不同于用于存储数据的可用空间。如果某些控制结构不用于数据存储,则可以在截断期间删除它们。这可能会导致报告的可用空间有所不同。

对数据库进行碎片整理

对数据库进行碎片整理会重新排列数据库中的全局块,以使包含给定全局数据的所有块都按连续顺序排列。该操作不会按顺序放置全局中的大字符串块或指针块,但它确实将它们定位在连续区域中。作为该过程的一部分,对数据库进行碎片整理

0
0 103
文章 姚 鑫 · 八月 30, 2022 3m read

第十七章 维护本地数据库(二)

数据库详细信息页面显示有关任何数据库的详细信息。要从管理门户访问此信息:

  1. 显示数据库页面(系统操作 > 数据库)。
  2. 单击要查看更多详细信息的数据库的名称。

数据库详细信息页面的顶部是一排按钮,可让执行各种数据库操作:

  • Mount / Dismount — 安装或卸载数据库。新状态一直有效,直到明确更改它或重新启动/停止 IRIS;要永久卸载数据库,必须将其从配置中删除。
  • Compact - 将分布在整个数据库中的可用空间移动到其末端。
  • Truncate截断 — 将数据库末尾的可用空间返回到底层文件系统。
  • 碎片整理 — 重新定位全局块,使代表给定全局的块处于连续序列中。

该页面还包括特定于所选数据库的信息,这些信息被组织成一个 General Information 表和一个 Database Size 表:

一般信息

FieldDefinition
Directory此数据库所在目录的名称。
Resource Name分配给此数据库的资源名称。
Mounted指示此数据库是否已安装。
Read Only指示此数据库是否安装为只读。
Read Only Reason数据库安装为只读的原因。
Encrypted指示此数据库是否已加密。
Encryption Key ID表示加密密钥 ID
0
0 96
文章 姚 鑫 · 八月 29, 2022 5m read

第十六章 维护本地数据库(一)

可以在管理Portal (System Operations > databases)的“数据库”页面查看和维护本地数据库。 在此页面,可以查看到以下信息:

  • 数据库一般信息 Databases General Information-所有数据库的概述信息。
  • 数据库空闲空间信息 Databases Free Space Information - 所有数据库的空闲空间信息
  • 数据库详细信息页 Database Details Page -个别数据库的特定信息。 还可以通过维护操作增加该页面的可用空间。

本节中描述的大多数信息和操作也可以使用^DATABASE命令行实用程序找到并执行。

数据库的一般信息

数据库页面(系统操作 > 数据库)包含所有本地数据库的列表。对于每个本地数据库,会看到以下信息:

本地数据库信息

  • Name - 数据库名称。

  • Directory - 分配给数据库可以增长的最大大小,以 GB 为单位。

  • Max Size (GB) - 分配给数据库可以增长的最大大小,以 GB 为单位。

  • Size (MB) - 当前分配的数据库大小,以兆字节为单位。

    注意:此字段衡量数据库的逻辑大小。因此,此处报告的大小可能低于数据库的物理大小,特别是对于 IRISTEM 数据库。

  • Status - 数据库的状态:mounted

0
0 129
文章 姚 鑫 · 八月 28, 2022 2m read

[toc]

第十五章 配置工作队列管理器类别

工作队列管理器使能够以编程方式将工作分配给多个并发进程,以提高性能。

当使用工作队列管理器初始化一组辅助job时,可以指定提供辅助job的类别。 类别是一个独立的worker job。 例如,假设为系统提供的SQL类别分配了最多8worker。 然后,假设为与构建DeepSee仪表板相关的进程创建了一个类别,并为该类别分配最多4worker。 如果在给定的时间内SQL池中的所有工作线程都被占用,DeepSee类别中的工作线程仍然可以立即处理工作项。

系统提供了两个不能删除的类别:DefaultSQL。默认情况下,这些类别的最大工作线程数是动态的,相当于系统可用内核数的两倍。

工作队列管理器类别页面使能够创建、修改和删除工作队列管理器类别,如以下部分所述。所做的任何更改都会反映在配置参数文件 iris.cpf 中。

创建工作队列管理器类别

从工作队列管理器类别页面,可以创建新类别。

类别名称必须是唯一的并且区分大小写。此外,类别名称只能包含字母、数字、破折号、下划线和句点,并且最多包含 64 个字符。

要创建新类别,请执行以下操作:

  1. 导航到系统管理 > 配置 > 系统配置 > WQM 类别。

  2. 单击创建类别。

  3. 在类别名称字段Category name中,键入类别的名称。

  4. Max active workers字段中

0
0 121
文章 姚 鑫 · 八月 26, 2022 2m read

第十三章 配置任务管理器电子邮件设置

可以将任务管理器设置为在任务完成时发送电子邮件通知,在任务管理器电子邮件设置页面(系统管理 > 配置 > 其他设置 > 任务管理器电子邮件),可以配置通知设置:

  • SMTP 服务器和端口

发送 SMTP(简单邮件传输协议)邮件服务器的地址和端口

  • SSL Config

如果要使用 SSL/TLS 加密电子邮件,则要使用的 SSL 配置。如果实例上没有 SSL 配置,或者想创建一个新配置,请参阅创建或编辑 TLS 配置。如果您不选择 SSL 配置,则不会使用 SSL/TLS

  • SMTP 验证用户和密码

仅对 SMTP 服务器的 SMTP 身份验证需要。有关详细信息,请参阅 RFC 2554。如果不提供条目,则 SMTP 用户名和密码将设置为 NULL

  • Sender

仅对 SMTP 服务器的 SMTP 身份验证需要。有关详细信息,请参阅 RFC 2554

  • Reply To

收件人应回复的电子邮件地址

  • Success Subject

成功的任务消息的格式化主题行。请参阅下面的“主题和消息的参数”部分。

  • Success Message

任务运行成功后发送的格式化消息

  • Failure Subject

失败的任务消息的格式化主题行

  • Failure Message

任务失败后发送的格式化消息

注意:还可以通过新选项卡类中的


0
0 138
文章 姚 鑫 · 八月 25, 2022 4m read

第十二章 配置数据库(四)

重定位本地数据库

要将本地数据库的 IRIS.DAT 文件移动到不同的目录,必须执行以下操作:

  1. 记下当前的数据库目录。可以从本地数据库页面(系统管理 > 配置 > 系统配置 > 本地数据库)查看此信息。
  2. 彻底关闭实例,例如使用 iris stop 命令。
  3. IRIS.DAT 文件和流目录从当前数据库目录复制到所需位置

重要提示:如果数据库目录中有 iris.lck 文件,请不要移动数据库。这意味着数据库仍在使用中,移动它可能会导致无法预料的问题。

注意: 不支持在配置数据库目录时使用符号链接,并建议为新的数据库位置选择完全解析的物理路径。

  1. 在文本编辑器中打开实例的 iris.cpf 文件。该文件通常位于安装目录中。

  2. 在 [Databases] 部分下方找到数据库的名称。用新路径替换旧目录路径,然后保存 iris.cpf

  3. 启动 IRIS 实例,并查看本地数据库页面以确认目录已设置为新位置。如果数据库是镜像的,则需要激活并赶上它。

  4. 删除旧的数据库目录。

重要提示:重定位本地数据库目录后,还必须更新任何远程访问数据库的系统(例如 ECP 应用程序服务器)。在每个远程系统上,将远程数据库目录更新到新位置,如远程数据库中所述。

删除本地数据库

要删除本地数据库,请单击相应行中的删除链接。删除数据库页面显示有关正在删除的数据库的信息,并允

0
0 252
文章 姚 鑫 · 八月 24, 2022 5m read

# 第十一章 配置数据库(三)

## 编辑本地数据库的属性

显示的信息取决于数据库是否被镜像。本节确定以下字段:

### 部分编辑非镜像本地数据库属性

单击非镜像数据库的名称可查看以下数据库属性并更改其中一些属性。 (“创建本地数据库”部分描述了其中的许多字段。)

- `Name `
- `Directory` 目录(此设置必须始终反映 `IRIS.DAT` 数据库文件的位置)
- `Encrypted`加密(无法更改)
- `Mirrored` 已镜像 — 单击添加到 `Mirrormirror_name` 链接以将数据库添加到其中 `IRIS` 实例是主要故障转移成员的镜像。 (仅当实例是镜像中的主实例时,此选项才可用。)
- `Block Size (Bytes)`块大小(字节)(无法更改)
- `Size` 大小 (MB) — 共有三种大小设置,如下所示:
  - `Change Current` 修改数据库的当前大小。
  - `Expansion` 扩展设置在需要时扩展数据库的数量;默认(和推荐)设置为零 (`0`) 表示当前大小的 `12%` 或 `10` MB,以较大者为准。使用当前大小的 `12%` 时,扩展大小不会大于 1GB。
  - `Maximum` 最大值指定数据库可以增长到的最大大小,以兆字节为单位;默认设置为零 (`0`) 表示没有最大值。要修

0
0 132
文章 姚 鑫 · 八月 23, 2022 3m read

第十章 配置数据库(二)

本地数据库

“本地数据库”页面显示关于系统上的数据库的以下信息:

  • Name—数据库名称。
  • Mirror——如果数据库是镜像的,则镜像的名称;
  • Directory - IRIS.DAT 文件的位置。
  • Size 大小 (MB) — 以 MB 为单位的数据库大小。
  • Status 状态 — 指定数据库是挂载、卸载还是卸载;如果已挂载,则指定它是否具有只读或读写权限。
  • Resource Name资源名称 — 控制对数据库的访问的数据库资源的名称;
  • Encrypted — 指定数据库是否加密;
  • Journal 指定数据库是否被记录;

创建本地数据库

要创建本地数据库,请导航到本地数据库页面(系统管理 > 配置 > 系统配置 > 本地数据库)。

  1. 单击创建新数据库以打开数据库向导。

  2. 在文本框中输入数据库名称。数据库名称必须:

  • 尚未在 IRIS 实例中使用
  • 长度在 130 个字符之间
  • 以字母字符或下划线开头;其余部分可以包括字母数字字符、破折号或下划线
  1. 首次使用特定浏览器在 IRIS 实例中创建本地数据库时,必须
  • 输入数据库目录的名称,在这种情况下,包含 IRIS.DAT 文件的目录在确认后将在 c:\InterSystems\mgr 中创建
  • 单击文件夹图标浏览到现有目录,在这种情况下,将在该目录中创建 IRIS.DAT 文件

此后,默认情

0
0 164
问题 li liao · 四月 29, 2022

 

目前 cache 架构如上图所示,有部分 csp 接口查询速度不稳定,数据量并不大,每次查询返回也就几十个个病人数据,有时 1-4秒,有时十分慢差不多10几秒;在终端直接执行接口对应方法速度又很快。请问怎么逐步排查、定位问题出在哪一部分?有哪些工具、手段或者 cache 参数可以监控?

1
0 179
问题 Michael Lei · 五月 1, 2022

Hi,

我无法连接到本地网络浏览器.

我想打开(http://localhost:57772/csp/sys/UtilHome.csp) 现实:

Caché Server Pages Version 2018.1.6.717.0
Server Availability Error

Server is currently unavailable

如果我调用 CSP.log 得到以下报错:

Access Denied
    Diagnostic
    Failed to connect to 'LOCAL' - Reason: 0 (Connection successfully made but server not responding) (No Retry)

请帮帮我,谢谢!

1
0 221
问题 tan jishan · 八月 3, 2022
我需要在当前命名空间下创建一系列的只读类,并限制除_system之外的所有用户都只有读取权限,无法在studio中编译,请问我应该如何操作呢?
我的目的是可以在工程的项目分支中管理这些类,并通过发布方式持续升级这部分类文件。
但是这些类的内部逻辑有可能会需要维护人员能够知晓其中的功能和实现方式,所以不能通过MakeDeployed来解决这个问题
我现在知道可以通过设置database的读写属性来解决这个问题,但是这样就需要额外新建一个database并maping到当前命名空间下。采取这种方式处理时有一个重大的缺点,即在执行代码发布过程中,需要停库,并且停库时间可能会在半个小时左右,这个我无法接受。
1
0 248