文章
· 七月 3, 2022 阅读大约需 5 分钟
第十七章 进程内存

第十七章 进程内存

介绍

进程使用许多不同的资源来实现其目标。其中包括部分或全部 CPU 周期、内存、外部存储、网络带宽等。这篇文章是关于内存使用的。具体来说,它处理为数据存储分配的内存,例如:
- 公共和私有变量

当第一次为它们分配值时,它们被分配了内存空间。在局部数组的情况下,局部变量名称加上所有下标的值的组合引用单个变量值。

除了包含极长字符串的变量外,变量会占用与 $STORAGE 相关的空间。包含极长字符串的变量以不同方式存储,并且不占用 $STORAGE 中的空间。

  • 对象实例

每当实例化一个对象时,都会分配空间来保存对象的当前内容以及它所引用的对象。删除最后一个对象引用时返回该空间。

  • 本地 I/O 缓冲区

将与该进程正在使用的设备相关联的 I/O 缓冲区存储在进程空间中。

0 0
0 67
文章
· 七月 17, 2022 阅读大约需 4 分钟
第八章 使用嵌入式 Python (五)

第八章 使用嵌入式 Python (五)

通过引用传递参数

ObjectScript 编写的方法中的参数可以通过值或引用传递。在下面的方法中,签名中第二个和第三个参数前面的 ByRef 关键字表示它们打算通过引用传递。

ClassMethod SandwichSwitch(bread As %String, ByRef filling1 As %String, ByRef filling2 As %String)
{
    set bread = "whole wheat"
    set filling1 = "almond butter"
    set filling2 = "cherry preserves"
}

ObjectScript 调用方法时,在参数前放置一个句点以通过引用传递它,如下所示:

0 0
0 75
文章
· 八月 3, 2022 阅读大约需 3 分钟
第十六章 源代码文件 REST API 教程(一)

第十六章 源代码文件 REST API 教程(一)

本章提供了一个简短的教程,通过一系列示例演示如何使用源代码文件 REST API。它包含以下部分:

API 基础

Atelier 用于访问 IRIS 源代码文件的 API 使用 REST 架构风格。 REST 的名字来源于“Representational State Transfer”。与许多 REST API 一样 IRIS 源代码文件 REST API 使用 HTTP GETPOSTPUTDELETEHEAD 方法,并将 JSON 用于传入和传出消息体。

0 0
0 143
文章
· 八月 14, 2022 阅读大约需 3 分钟
第一章 使用管理门户(一)

[TOC]

第一章 使用管理门户(一)

IRIS数据平台使您能够通过 Web 应用程序Management Portal 执行系统管理和管理任务。这种方法的一个优点是 IRIS 不必安装在用来管理安装的系统上。现在,通过网络远程管理系统,受制于为站点建立的访问控制,变得更加容易。跨版本兼容性问题被最小化,因为数据及其格式信息都直接来自被管理的系统。

默认情况下,管理门户在安装了IRIS 的专用 Web 服务器上运行。可以选择禁用专用 Web 服务器(使用 WebServer 设置)并配置不同的 Web 服务器来运行管理门户。

启动管理门户

可以通过以下方式启动管理门户:

0 0
0 203
文章
· 八月 28, 2022 阅读大约需 2 分钟
第十五章 配置工作队列管理器类别

[toc]

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

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

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

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

0 0
0 57
文章
· 九月 13, 2022 阅读大约需 4 分钟
第三十一章 管理许可(四)

[toc]

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

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

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

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

USER> Do $System.License.DumpLocalAll()

25 条目转储到 c:\intersystems\irishealth\mgr\user\all.dmp

all.dmp 文件的内容示例:

image

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

1 0
0 54
文章
· 九月 24, 2022 阅读大约需 14 分钟
第四十二章 使用多个 IRIS 实例(二)

第四十二章 使用多个 IRIS 实例(二)

控制 IRIS 实例

iris 命令支持终端以外的许多功能,并以 iris function instname arguments 格式调用,其中 instname 是在安装期间选择的实例名称,参数取决于函数。

重要提示: iris help 命令显示所有命令函数和参数; IRISHelp.html 文件位于 install-dir\Help 目录中。 iris 命令的某些功能在本文档中没有列出,但在帮助显示中显示。

1 0
0 71
文章
· 十月 17, 2022 阅读大约需 3 分钟
第十九章 CSP Session 管理 - %CSP.Session 对象

第十九章 CSP Session 管理 - %CSP.Session 对象

对象中的 %CSP.Session 包含有关当前Session的信息以及以编程方式控制会话各个方面的方法。

User Session DataData Property

可以使用其 Data 属性将 %CSP.Session 中的应用程序特定信息存储在对象中。数据是一种多维数组属性,可让关联多维数组中的特定信息。该数组的内容会在会话的整个生命周期内自动维护。

可以像使用任何其他 ObjectScript 多维数组一样在对象 Data 属性中使用 %CSP.Session

例如,如果在 OnPage 方法中执行以下代码:

0 0
0 38
文章
· 十二月 16, 2022 阅读大约需 2 分钟
第十五章 使用系统监视器 - 系统监控健康状态

第十五章 使用系统监视器 - 系统监控健康状态

基于发布到消息日志的通知,包括由IRIS 实例直接生成的系统警报以及由 System Monitor 和它的 Health Monitor 组件 System Monitor 在共享内存中的寄存器中维护一个总结整个系统健康状况的单一值。

在启动时,系统健康状态是根据在启动过程中发布到消息日志的系统(而不是系统监视器)警报的数量来设置的。系统监视器运行后,可以通过系统警报或系统监视器警报或警告来提升健康状态。自上次系统警报或系统监视器警报或警告发布后 30 分钟过去后,状态将清除到下一个较低级别。下表显示了如何确定系统健康状态。

0 0
0 73

第四十一章 使用^%SYS.MONLBL检查例程性能 - 逐行监控报告示例

本节包含 ^%SYS.MONLBL 例程生成的各种报告的示例:

Line-by-line Detail Report

Line-by-line Summary Report

Line-by-line Delimited Output Report

Line-by-line Procedure Level Report

Line-by-line Detail Report

以下是报告所选期刊实用程序的最小指标详细信息的示例,包括覆盖率分析。报告被发送到 monlbl_JRN_dtl.txt 文件,其中显示了一部分。

0 0
0 59
文章
· 二月 2, 2023 阅读大约需 4 分钟
第六十四章 使用 SNMP 监控 IRIS - 扩展 InterSystems IRIS MIB

第六十四章 使用 SNMP 监控 IRIS - 扩展 IRIS MIB

应用程序员可以添加托管对象定义并扩展 IRIS 子代理为其提供数据的 MIB。这不是一个完整的 MIB 编辑器或SNMP 工具包;相反,它是一种添加简单应用程序指标的方法,可以通过 SNMP 浏览或查询这些指标。

注意:对象必须遵循基本的 IRIS SNMP 结构,对 SNMP 表结构的支持有限(仅支持整数值索引),并且不会创建 SNMP 陷阱(请参阅新选项卡类中的 %Monitor.AlertOpens) 对管理信息的 SNMP 结构有一个基本的了解是很有帮助的。

要创建这些对象,请执行以下操作:

0 0
0 81
文章
· 三月 18, 2023 阅读大约需 3 分钟
第一章 高可用性解决方案 - IRIS HA 解决方案中的问题

第一章 高可用性解决方案 - HA 解决方案中的问题

高可用性(HA)指的是使系统或应用程序在长时间内保持正常运行并可供用户使用的目标,从而最大限度地减少计划内和计划外停机时间。 IRIS提供自己的HA解决方案,并轻松与操作系统提供商提供的常见HA解决方案集成。

维护高系统可用性的主要机制称为故障转移。在这种方法下,故障的主系统由备用系统代替;也就是说,生产故障转移到备份系统。许多HA配置还提供了灾难恢复(DR)机制,即当HA机制无法保持系统可用时,恢复系统可用性。

本页简要讨论可与基于 IRIS 的应用程序一起使用的一般 HA 策略,然后涵盖 IRIS HA 解决方案中的问题,提供 HA 解决方案功能比较,并讨论使用分布式缓存和故障转移策略

1 0
0 85
文章
· 七月 4, 2023 阅读大约需 3 分钟
FAQ常见问题系列--InterSystems 产品的基础故障排除

本文讨论了在使用或维护InterSystems产品中遇到问题时,试图确定问题时可能用到的思路和工具。

一般故障排除

确定问题发生的地点和时间

  • 问题是什么时候开始的?多久发生一次?
  • 问题首先出现在哪里?
  • 问题在什么条件下会被触发?

审查日志中的警告、错误和警报

以下日志可能包含有关该问题的有用信息。可以尝试在以下日志中寻找问题开始前后的警告或报错。

1 0
0 72
文章
· 一月 8, 2021 阅读大约需 9 分钟
InterSystems IRIS 和 Caché 中的多模型数据并行处理

众所周知,InterSystems IRIS 提供了很多的工具来提升应用系统可伸缩性。尤其在提升数据并行处理能力方面,InterSystems 做了很多努力,例如在 SQL 查询中使用并行处理,以及在 IRIS中引入最具吸引力的特征:分片(sharding)。然而,许多成熟的开发成果最初是在 Caché中完成的,而且已经迁移到 IRIS 中。这些成熟的开发成果大都使用 DBMS(数据库管理系统)的多模型功能,实现在单独的数据库中共存不同的数据模型。例如, HIS qMS 数据库同时包含语义关系(电子病历)、传统关系(与 PACS 的交互)和层次数据模型(实验室数据以及与其他系统的集成)。这些数据模型大多是通过 SP.ARM 的 qWORD 工具(一种直接访问 Global的小型数据库管理系统)实现的。遗憾的是,由于查询未使用 IRIS SQL,无法利用并行查询处理的新功能进行扩展。

而且,随着数据库规模的不断增长,大型关系型数据库所固有的大多数问题开始出现在非关系型数据库中。这就是我们关注可用于扩展的并行数据处理技术的一个主要原因。

在本文中,我将围绕多年来在解决任务时用到的并行数据处理展开多方位讨论,而这些是我在大数据问题探讨中很少提到的。我将重点讨论数据库的技术改造,或者更确切地说,是数据库转换技术。

0 0
0 279
文章
· 二月 8, 2021 阅读大约需 1 分钟
第二十八章 Caché 变量大全 $ZEOS 变量

第二十八章 Caché 变量大全 $ZEOS 变量

读取压缩流时包含流结束状态。

大纲

$ZEOS

大纲

$Zeos包含一个布尔值,该值指示是否已接收并处理传入(压缩)流的末尾。如果$Zeos=1,则已接收到压缩数据流的流结束。仅当流压缩/解压缩处于活动状态(/GZIP=1)时,$ZOS值才有意义。可以通过从OPENUSE命令发出/GZIP命令关键字来激活流压缩/解压缩。

0 0
0 45
文章
· 三月 11, 2021 阅读大约需 10 分钟
第八章 SQL修改数据库

第八章 SQL修改数据库

可以对现有的表使用SQL语句,也可以对相应的持久化类使用ObjectScript操作来修改InterSystems IRIS®数据平台数据库的内容。
不能修改定义为只读的持久类(表)。

使用SQL命令为维护数据的完整性提供了自动支持。
SQL命令是一个原子操作(全部或没有)。
如果表上定义了索引,SQL将自动更新它们以反映更改。
如果定义了任何数据或引用完整性约束,SQL将自动执行它们。
如果有任何已定义的触发器,执行这些操作将拉动相应的触发器。

插入数据

可以使用SQL语句或设置和保存持久化类属性将数据插入表中。

使用SQL插入数据

INSERT语句将一条新记录插入SQL表中。
可以插入一条记录或多条记录。

下面的示例插入一条记录。
它是插入单个记录的几种可用语法形式之一:

0 0
0 256
文章
· 三月 25, 2021 阅读大约需 11 分钟
第十三章 使用动态SQL(三)

第十三章 使用动态SQL(三)

执行SQL语句

有两种使用%SQL.Statement类执行SQL语句的方法:
- %Execute(),它执行以前使用%Prepare()%PrepareClassQuery()准备的SQL语句。
- %ExecDirect(),它同时准备和执行一条SQL语句。

也可以通过使用$SYSTEM.SQL.Execute()方法执行SQL语句而无需创建对象实例。此方法既准备又执行SQL语句。它创建一个缓存的查询。下面的终端示例显示Execute()方法:

0 0
0 111
文章
· 四月 6, 2021 阅读大约需 13 分钟
第十八章 定义和使用存储过程

第十八章 定义和使用存储过程

本章介绍如何在IntersystemsIRIS®数据平台上定义和使用Intersystems SQL中的存储过程。它讨论了以下内容:

  • 存储过程类型的概述
  • 如何定义存储过程
  • 如何使用存储过程如
  • 何列出存储过程及其参数。

概述

SQL例程是可执行的代码单元,可以由SQL查询处理器调用。 SQL例程有两种类型:功能和存储过程。从支持FunctionName()语法的任何SQL语句中调用函数。存储过程只能由CALL语句调用。函数接受某些输入定向参数并返回单个结果值。存储过程接受某些输入,输入输出和输出参数。存储过程可以是用户定义的函数,返回单个值。 CALL语句也可以调用函数。

与大多数关系数据库系统一样,Intersystems Iris允许创建SQL存储过程。存储过程(SP)提供存储在数据库中的可调用可调用的程序,并且可以在SQL上下文中调用(例如,通过使用呼叫语句或通过ODBC或JDBC)。

0 0
0 446

近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问吕正之讲解了“InterSystems Caché架构、备份与恢复”。

//player.bilibili.com/player.html?aid=247746045&bvid=BV1sv411L7qz&cid=327180934&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

0 0
0 152
文章
· 五月 5, 2021 阅读大约需 6 分钟
第三章 使用多维存储(全局变量)(一)

第三章 使用多维存储(全局变量)(一)

本章描述了使用多维存储(全局变量)可以执行的各种操作。

以全局变量存储数据

在全局节点中存储数据很简单:像对待任何其他变量一样对待全局变量。
区别在于对全局变量的操作是自动写入数据库的。

创建全局变量

创建新的全局变量不需要设置工作;只需将数据设置为全局变量即可隐式创建新的全局结构。可以创建全局变量(或全局变量下标)并通过单个操作将数据放入其中,也可以创建全局变量(或下标)并通过将其设置为空字符串将其保留为空。在ObjectScript中,这些操作是使用SET命令完成的。

下面的例子定义了一个名为Color(如果还不存在)的全局变量,并将值“Red”与之关联。
如果已经存在一个名为Color的全局变量,那么这些示例将其修改为包含新信息。

在ObjectScript中:

0 0
0 58
文章
· 五月 25, 2021 阅读大约需 7 分钟
第六章 从POP3服务器提取电子邮件

第六章 从POP3服务器提取电子邮件

从POP3服务器提取电子邮件

与POP3服务器通信

如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执行一系列影响邮箱的操作,然后提交或回滚任何更改。要在系统间IRIS中执行此操作,请执行以下操作:

0 0
0 89

本帖概述了通过为 InterSystems 数据平台(InterSystems IRIS、Caché 和 Ensemble)上的数据库磁盘创建 LVM 物理盘区 (PE) 条带来实现低延迟存储 IO 的最佳实践配置,并提供了有用链接。

一致的低延迟存储是获得最佳数据库应用程序性能的关键。 例如,对于在 Linux 上运行的应用程序,经常在数据库磁盘中使用逻辑卷管理器 (LVM) ,因为它能够扩展卷和文件系统,或者为在线备份创建快照。 对于数据库应用程序,在使用 LVM PE 条带化逻辑卷的情况下,并行写入还可提高数据 I/O 的效率,从而有助于提高大规模连续读取和写入的性能。

0 0
0 357
文章
· 六月 21, 2021 阅读大约需 3 分钟
第十四章 XML获取当前节点信息

第十四章 XML获取当前节点信息

DOM节点类型

%XML.Document%XML.Node类识别以下DOM节点类型:

  • Element ($$$xmlELEMENTNODE)

请注意,这些宏在%xml.DOM.inc包含文件中定义。

  • Text ($$$xmlTEXTNODE)

  • Whitespace ($$$xmlWHITESPACENODE).

其他类型的DOM节点被简单地忽略。

请以下XML文档:

0 0
0 98
文章
· 七月 14, 2021 阅读大约需 5 分钟
第三章 处理文件和目录名

第三章 处理文件和目录名

%Library.File类提供了几个可用于处理文件名和目录名的类方法。在大多数情况下,文件和目录不需要存在即可使用这些方法。

获取文件名和目录名

%Library.File类提供可用于获取部分文件名和目录名的类方法。

在给定完整路径名的情况下,使用GetDirectory()GetFilename()分别获取目录和短文件名。对于此方法,不允许使用部分目录名。

DHC-APP>set filename = "e:\temp\config.txt"

DHC-APP>write ##class(%File).GetDirectory(filename)
E:\temp\
DHC-APP>write ##class(%File).GetFilename(filename)
config.txt

在给定文件名的情况下,使用CanonicalFilename()从根目录获取完整路径:

0 0
0 72
文章
· 八月 11, 2021 阅读大约需 2 分钟
参数关键字Final,Flags,Internal,映射关键字Internal

第八十九章 参数关键字 - Final

指定此参数是否为final(不能在子类中重写)

用法

要指定参数为final最终参数,请使用以下语法:

Parameter name As parameter_type  [ Final ] = value;

否则,请省略此关键字或将该词放在该关键字之前。

详解

标记为Final的类成员不能在子类中被重写。

默认

如果省略此关键字,则该参数不是最终参数。

第九十章 参数关键字 - Flags

修改此参数的用户接口类型(在Studio中)。

用法

要修改此参数的用户接口类型(在Studio中),请使用以下语法:

0 0
0 82

第153章 Storage关键字 - SqlRowIdProperty

指定SQL RowId属性。

大纲

<SqlRowIdProperty>prop</SqlRowIdProperty>

该元素的值是一个SQL标识符。

描述

此元素仅由从早期InterSystems产品迁移的类使用。

默认值

<SqlRowIdProperty>元素的默认值为空字符串。

第154章 Storage关键字 - SqlTableNumber

指定内部SQL表号。

大纲

<SqlTableNumber>123</SqlTableNumber>

该元素的值是一个表号。

0 0
0 70