公告 Tete Zhang · 二月 16, 2023

InterSystems 产品支持的平台 - 版本更新 (2023 年 2 月

我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的当前决策。(预测未来是一项棘手的工作,不应将此视为我们对未来支持平台和框架的承诺。)

我们计划大约每 3 个月发布一次此类更新,然后在一年内重新评估。如果您觉得此更新有用,请告诉我们!我们很感激您的建议。

关于更新……

IRIS 生产操作系统和 CPU 架构

红帽企业版 Linux

  • 近期变动
    • IRIS 2022.1.2 添加了对RHEL 9.0的支持。 9.0 是一个操作系统主版本,将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0, 将 Python 更新到 3.9
    • IRIS 2022.2.0 移除了对 RHEL 7.x 的支持。 IRIS 的早期版本仍支持 RHEL 7.9。
  • 即将发生的变化
    • RHEL 9.1 于 2022 年 11 月发布。Red Hat 仅在 RHEL 9.2 发布之前支持此次版本。
    • RHEL 9.2 计划于 2023 年第二季度末发布。 Red Hat 计划在未来4年内继续支持 9.2。 InterSystems 计划通过一项我们称为“操作系统次版本认证”的新流程,对 RHEL 9.
0
0 237
InterSystems 官方 Claire Zheng · 二月 15, 2023

InterSystems 纠正了一个可能导致 InterSystems IRIS® 和 Caché 无法在 Windows 上利用大页共享内存的问题,即使这些产品得到的信息是已分配到了大页内存。这会对系统性能产生不利影响。

该问题是由于 Windows 10 中的一个更改引起的,该更改需要 InterSystems IRIS® 和 Caché做相应的修改。请注意,此问题还会影响所有基于 InterSystems IRIS® 或 Caché 的 InterSystems 产品。以下版本的 Windows 会出现此问题:

Windows 10(版本 1703 及以上)

Windows 11

Windows Server 2019

Windows Server 2022

Windows Server 2016 不受影响。

作为参考,此问题的更正标识为 RJF533。此更正将包含在所有未来的 InterSystems IRIS® 和 Caché 发行版中。该更正也作为受支持产品版本的补丁提供。

InterSystems 建议采取以下措施以避免潜在的严重系统性能下降:

  • 对于使用大页内存的系统,推迟升级到受影响的 Windows 版本,直到实施更正。
  • 对于已经运行受影响的 Windows 版本并使用大页内存的系统,在任何有计划的系统负载增加之前实施更正。
0
0 237
公告 Michael Lei · 二月 13, 2023

Hi 开发者们,

我们非常高兴地向大家宣布此次InterSystems 开发者竞赛(Tool)的获奖者!

首先,我们要感谢提交了21 份申请的 优秀参与者们 🔥

我们很高兴知道您认为这个主题很重要!

事不宜迟,我们在此公布此次竞赛的获胜者是……

1
0 205
文章 Michael Lei · 二月 13, 2023 3m read

在 InterSystems IRIS 2022.2 中,我们引入了列存储作为持久化 IRIS SQL 表的新选项,可以将您的分析查询性能提高一个数量级。该功能在 2022.2 和 2022.3 中标记为实验性,但将在即将发布的 2023.1 版本中“升级”为完全支持的生产能力。

产品文档和这个介绍性视频已经描述了行存储(仍然是 IRIS 上的默认设置并在我们的整个客户群中使用)与列表存储之间的区别,并提供了有关为您的用例选择合适的存储布局的高级指导。在本文中,我们将详细阐述这个主题,并根据行业实践建模原则、内部测试和抢先体验计划参与者的反馈分享一些建议。

0
0 172
文章 Hao Ma · 二月 9, 2023 1m read

大家好。


Chat GPT 是最近的热门话题,但我尝试使用它(尽管可能为时已晚)。

您似乎了解 ObjectScript yes

这就是为什么,

当被问到时,

哇哦! ObjectScript 程序及其描述回来了! !

你可以编程这个cheeky

1
0 329
文章 Claire Zheng · 二月 13, 2023 1m read

在InterSystems 2022年全球峰会上,InterSystems 创始人兼 CEO Terry Ragon 分享了如何才能使企业获得持续发展。他是“愿景领导公司”的坚定信徒,他认为,愿景、热情与专注对于推动业务发展、保持企业创新活力至关重要。InterSystems 的愿景是:我们是一家提供创新数据技术服务的公司,对卓越和客户成功充满激情。

0
0 249
文章 姚 鑫 · 二月 12, 2023 2m read

第七十四章 使用 irisstat 实用程序监控 IRIS - 查看 irisstat 输出

查看 irisstat 输出

可以立即查看 irisstat 数据(通过终端)或重定向到输出文件以供以后分析。查看数据的最常见方法是:

注意:当 IRIS 被强制关闭时,irisstat 会运行以捕获系统的当前状态。作为紧急关闭程序的一部分,输出被添加到消息日志中。

irisstat 文本文件

irisstat 报告可以重定向到文件而不是终端,如果想收集一组 IRIS 工具(诊断报告任务、IRISHung 脚本、^SystemPerformance 实用程序)未提供的一组 irisstat 选项,这可能很有用或者如果在运行这些工具时遇到问题。

诊断报告任务

诊断报告任务会创建一个包含基本信息和高级信息的 HTML 日志文件,InterSystems 全球响应中心 (WRC) 可以使用该文件来解决系统问题。

注意:诊断报告任务不能在挂起的系统上运行;如果系统挂起,请参阅本附录中的 IRISHung 脚本。

IRISHung 脚本

IRISHung 脚本是一个操作系统工具,用于在 IRIS 实例挂起时收集系统数据。位于 install-dir\bin 目录中的脚本名称是特定于平台的,如下表中指定:

Platform Script name
Microsoft Windows IRISHung.
0
0 225
文章 姚 鑫 · 二月 11, 2023 7m read

第七十三章 使用 irisstat 实用程序监控 IRIS - 使用选项运行 irisstat

使用选项运行 irisstat

不带选项运行 irisstat 会生成基本报告。通常,运行 irisstat 以获得特定信息。要指定目标信息,可以包括或排除如下选项:

  • 要包含(打开)一个选项,请指定一个标志,后跟一个 1(或其他级别)。
  • 要排除(关闭)一个选项,请指定一个标志后跟一个 0

例如,要在 irisstat 报告中包含全局文件表 (GFILETA) 部分,请使用 -m1 选项:

C:\iris-install-dir\Bin\irisstat -m1

或者,要关闭默认的基本选项,请使用 -a0 选项:

C:\iris-install-dir\bin\irisstat -a0

许多选项具有比 01 更详细的级别。这些附加级别被描述为具有“位”,它们以十进制显示为 2 的幂,并控制有关选项的特定类型的信息。例如,显示 PID 表的基本 -p 选项用 1 打开;但是,使用 2 添加 swcheck 列,使用 4 添加 pstate 列。等等。这些位可以组合;例如,如果要查看 2 位和 4 位显示的信息,请指定 -p6。要请求所有位,请使用 -1,如下所示:

bash-3.00$ ./irisstat -p-1

此外,可以在单个 irisstat 命令中组合多个标志。

0
0 176
文章 姚 鑫 · 二月 9, 2023 5m read

第七十一章 使用 REST API 监控 IRIS - 活动量指标

活动量指标

  • iris_interop_avg_processing_time {id="namespace",hosttype="HostType",host="host",production="production",messagetype="MessageType"} - 在生产和命名空间中处理指定 MessageType 的消息所需的平均时间长度(以秒为单位)。 HostType 可以是服务、操作或参与者(即进程)。 MessageType 是用户定义的;如果未指定 MessageType,则返回“-”。如果输出已配置为包括主机标签,则单独提供每个主机的消息处理时间。
  • iris_interop_avg_queueing_time {id="namespace",hosttype="HostType",host="host",production="production",messagetype="MessageType"} - 指定 MessageType 的消息在生产和命名空间中由 HostType 的主机处理时在队列中花费的平均持续时间(以秒为单位)。 HostType 可以是服务、操作或参与者(即进程)。 MessageType 是用户定义的;如果未指定 MessageType,则返回“-”。
0
0 155
文章 Jingwei Wang · 十一月 29, 2022 3m read

在Windows配置DSN

  1. 确认InterSystems ODBC客户端驱动已安装
    • InterSystems IRIS ODBC驱动会随着InterSystems IRIS安装包默认安装。
    • 如果没有随着InterSystems IRIS安装,请由此下载驱动,下载后执行.exe文件进行安装。
  2. 定义DSN(Data Source Names)
    • 打开Administrative Tools
    • 打开ODBC Data Sources Administrator(32-bit 或者 64-bit)
    • 选择‘System DSN’,点击右边 ‘Add’,弹出‘Create New Data Source’窗口。
    • 选择一个InterSystems IRIS 安装版本的ODBC驱动,点击‘Finish’
    • 如下图所示,输入驱动名称,IP地址,端口号(使用超级服务端口号),命名空间,用户名和密码。 
    • 然后点击 'Test Connection' 进行连接测试


在Linux配置DSN

  1. 确认InterSystems ODBC客户端驱动已安装
    • InterSystems IRIS ODBC驱动会随着InterSystems IRIS安装包默认安装。
3
0 693
文章 Duan Haihua · 二月 8, 2023 1m read

示例:在Caché的代码中执行shell命令“free -m |grep -i mem”

方法一:使用%Net.Remote.Utility类中的RunCommandViaZF方法

Set tSC = ##class(%Net.Remote.Utility).RunCommandViaZF("free -m |grep -i mem",.tTempFileName,,,0)

set file=##class(%FileCharacterStream).%New()
s file.Filename=tTempFileName

获得文件流后,再读取文件流中内容即可。

此方法本质是执行$ZF(-1)方法,由于$ZF(-1)在ENSEBLE2016.2后续的版本中不支持,导致后续版本可能会报错。

方法二:使用$ZF(-100)方法

s cmd="free"
s tTempFileName=##class(%File).GetDirectory()_"output.txt"
s errfile=##class(%File).GetDirectory()_"err.
0
0 225
公告 Michael Lei · 二月 8, 2023

InterSystems 宣布其首个开发人员预览版,作为2023.1 版开发人员预览计划的一部分。 2023.1 中添加了许多更新和增强功能,还有全新的功能,例如对列存储Columnar Storage 的生产就绪支持、使用Bulk FHIR 的能力以及对MacOS 13 Ventura的支持。当前的开发人员预览版可能不提供其中一些功能或改进。

未来的预览版本预计每两周更新一次,我们将在功能准备就绪时添加它们。请通过开发者社区分享您的反馈,以便我们共同打造更好的产品。

可以在下面的这些链接中找到初始文档。它们将在接下来的几周内更新,直到正式宣布发布(一般可用性 - GA):

此外,查看此链接以获取与此版本相关的升级信息。

与往常一样,扩展维护 (EM) 版本附带适用于所有受支持平台的经典安装包,以及 Docker 容器格式的容器映像。有关完整列表,请参阅支持的平台文档

安装包和预览密钥可从 WRC 的预览下载站点或通过评估服务网站获得(使用标记“显示预览软件”以访问 2023.1)。

0
0 220
文章 姚 鑫 · 二月 8, 2023 3m read

# 第七十章 使用 REST API 监控 IRIS - 互操作性指标

除了上一节中描述的指标外, IRIS 实例还可以记录有关活动互操作性产品的指标,并将它们包含在 `/metrics` 端点的输出中。默认情况下禁用这些互操作性指标的记录。要启用它,必须为要监控的每个互操作性产品执行以下步骤:

1. 为运行要监控的生产的 `IRIS` 实例打开一个终端会话。如有必要,通过执行以下命令切换到与生产关联的命名空间:

```
set $namespace = "[interopNS]"
```
其中 `[interopNS]` 是命名空间名称。

2. 在终端中,执行以下命令以启用当前命名空间内活动生产的指标收集(`SAM` 指的是系统警报和监控, 监控解决方案):

```
do ##class(Ens.Util.Statistics).EnableSAMForNamespace()
```

注意:如果为命名空间启用了指标记录但相应的生产未激活,则 `/metrics` 端点不会返回任何指标。

`Ens.Util.Statistics` 类提供了自定义 `/metrics` 端点输出的方法。例如,调用方法 `DisableSAMIncludeHostLabel` 将为整个生产提供聚合指标,而不是为每个主机单独提供它们。

完成此步骤后可用的指标在下面的基本互操作性指标表中进行了描述。

3.

0
0 171
文章 姚 鑫 · 二月 7, 2023 8m read

# 第六十九章 使用 REST API 监控 IRIS

每个 `IRIS®` 数据平台实例都包含一个提供实例统计信息的 `REST` 接口。 `REST API` 提供了一种从多台运行 `IRIS` 的机器收集信息的方法,使能够详细监控构成您的应用程序的所有实例。

本附录描述了 `/api/monitor` 服务提供的指标。这些指标与开源监控和警报工具 `Prometheus` 兼容。配置 `Prometheus` 以抓取多个连接的 `IRIS` 实例提供了整个系统的内聚视图,从而更容易评估系统是否正常有效地运行。

注意:有关创建和使用 REST 接口的介绍,请参阅第一眼:使用 产品开发 `Rest` 接口。

# /api/monitor Service

`/api/monitor` 服务提供有关运行它的  `IRIS` 实例的信息。默认情况下,`/api/monitor Web` 应用程序启用了“未经身份验证”的访问权限。有关为此服务设置身份验证的信息,请参阅创建 `REST` 服务中的保护 REST 服务一章。

此 API 具有以下两个端点:

- `/metrics Endpoint`,,它返回所有实例指标,并且可以配置为返回特定的应用程序指标。
- `/alerts Endpoint`,它返回自上次抓取端点以来发布的所有系统警报。

0
0 320
文章 姚 鑫 · 二月 6, 2023 3m read

第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端

SYS.WSMon.Client 类和相关类是一个 IRIS 网络服务客户端,可以在同一个 IRIS 实例或另一个 IRIS 实例中调用 SYS.WSMon.Server 网络服务的方法。

此 Web 客户端类使用以下 LOCATION 参数:

Parameter LOCATION = "http://server:port/csp/sys/SYS.WSMon.Service.cls" 

其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。

以与使用其他 IRIS 网络服务客户端相同的方式使用此网络客户端:

  1. 创建 Web 客户端类的实例。
  2. 如果需要,设置其 Location 属性。

如果要使用的 SYS.WSMon.Server Web 服务与客户端位于不同的计算机上,或者如果它使用 52773 以外的端口,则这是必需的。

  1. 如果需要,设置其他属性。
  2. 调用网络方法。
  3. 检查 web 方法返回的值。

详细信息取决于调用的 Web 方法;请参阅“监视 Web 服务的 Web 方法”部分并查看返回类型的类参考。

下面显示了一个示例终端会话:

USER>set $namespace = "%SYS"
 
%SYS>set client=##class(SYS.WSMon.Client).
0
0 147
文章 姚 鑫 · 二月 5, 2023 3m read

第六十七章 使用 Web 服务监控 IRIS - 监控 Web 服务的 URL

对于给定的 IRIS 实例,日志监控 Web 服务可从以下 URL 获得:

http://server:port/csp/sys/SYS.WSMon.Service.cls

其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。例如:

http://localhost:52773/csp/sys/SYS.WSMon.Service.cls

同样,此 Web 服务的 WSDL 可从以下 URL 获得:

http://server:port/csp/sys/SYS.WSMon.Service.cls?WSDL=1

监控 Web 服务的 Web 方法

类中的 SYS.WSMon.Service提供以下 Web 方法:

EnumBuffer()

method EnumBuffer() as %XML.DataSet

在枚举所有缓冲区大小的统计信息中返回 %XML.DataSet的实例。对于此实例,数据集使用类中 SYS.Stats.BufferSample() 类查询。

EnumDatabase()

method EnumDatabase() as %XML.DataSet

在中返回 %XML.DataSetO 的实例,该枚举该实例的所有数据库。对于此实例,数据集在类中使用 SYS.

0
0 120
文章 Michael Lei · 二月 5, 2023 1m read

通常,如果你想部署一个解决方案,你需要手动添加项目、配置你的查找表和默认配置。
如果您拥有执行这些操作的所有权限,那也没关系。如果您想部署到客户的生产服务器,但您没有权限,则需要在文档中指明系统部署必须执行的所有步骤。

0
0 238
文章 姚 鑫 · 二月 4, 2023 2m read

第六十六章 使用 Web 服务监控 IRIS - IRIS 对 WS-Monitoring 的支持概述

本附录介绍并简要描述了如何使用 IRIS® 数据平台支持 WS-Management 规范,它使能够通过 SOAP 远程监控 IRIS 实例。

IRIS 对 WS-Monitoring 的支持概述

按照 WS-Management 规范,SYS.WSMon 包提供了一个 Web 服务,可以使用它来远程监控 IRIS 实例。它在功能上类似于 SNMP 接口(请参阅本指南的“使用 SNMP 监控 IRIS”附录),但使用内置的 IRIS 网络服务支持。

WS-Management 的支持包括以下元素:

  • 提供返回有关 IRIS 实例信息的方法的日志监控 Web 服务(SYS.WSMon.Service)。
  • 一个 IRIS Web 服务客户端(SYS.WSMon.Client),可以调用此监控 Web 服务或另一个 IRIS 实例的监控 Web 服务中的方法。

可以创建自己的 Web 客户端,而不是使用此 Web 客户端,可能使用第三方技术。

此 Web 服务和客户端使用几个启用 XML 的类来表示监视信息。

这些类包括 SYS.WSMon.wsEvent,它可以表示事件。

可以接收和处理事件的示例事件接收器 Web 服务(SYS.WSMon.EventSink)。

0
0 222
文章 姚 鑫 · 二月 3, 2023 5m read

第六十五章 使用 SNMP 监控 IRIS - 用户定义的 SNMP 监视器类示例

本节介绍如何定义可通过 SNMP 查询的用户应用程序监视器类的示例。应用程序监视器仅包括 SNMP 数据中具有 %Monitor 数据类型的属性。

Example Sample Class

以下是此示例的示例类:

Class SNMP.Example Extends %Monitor.Adaptor
{

  /// Give the application a name. This allows you to group different 
  /// classes together under the same application level in the SNMP MIB.
  /// The default is the same as the Package name.
  Parameter APPLICATION = "MyApp";

  /// This groups a set of properties together at the "table" level of the
  /// SNMP MIB hierarchy. The default is the Class name.
0
0 167
文章 TZ Zhuang · 二月 3, 2023 5m read

目的

这两个工具(RanRead 和 RanWrite)用于在数据库(或一对数据库)内生成随机读写事件,以测试每秒输入/输出的操作数 (IOPS)。它们可以一起使用或分开单独使用,以测试 IO 硬件容量、验证目标 IOPS 并确保系统拥有可接受的磁盘响应时间。从 IO 测试中收集的结果将因配置而异,具体取决于 IO 子系统。在运行这些测试之前,请确保相应的操作系统监控和存储级别监控已配置,这些捕获的 IO 性能指标可以为以后的分析提供帮助。我们推荐使用 IRIS 中捆绑的系统性能工具,例如^SystemPerformance。

请注意,这里使用的工具是对先前版本的更新。之前的版本可在这里找到。

0
0 321
文章 Hao Ma · 十一月 20, 2022 7m read

发布您自己的软件

首先:要发布您的软件,您要支持这个”命名规范。其中和zmp最相关的是包名和l类名的设计,你要定义成这样:

company.project.subpackage.TheClass.cls

如果您的Package Name定义是: Company.Project, 有大写字母,对不起,是无法用zpm打包的。

这个链接给了最简单的例子,但还不详细,我来总结一下:

发布您的软件前,有几件事情要了解:

  1. zpm的注册中心并不存代码,存的只是一个到您代码的链接。因此,您得找地方放您的代码。当前最常用的是github。

  2. 文件目录的结构

    举例:有一个class定义是 com.tony.Test1.cls, 你的目录应该这么组织,假设您要放在 /myDemo, 那么class应该在/myDemo/src/com/tony/Test1.cls。这是使用VSCode组织代码的默认方式,只有保证这样的目录结构,您才可能用zpm加载代码到iris.

让我来做个简单的例子。

首先,有这样的class:

Class com.tony.Test1
{	Property p1;
}

我的文件目录设置

$ ls -l /external/myDemo/src
total 4
-rw-r--r-- 1 irisowner irisowner 40 Nov 12 10:00 Test1.
2
0 332
文章 Yubo Mao · 二月 3, 2023 2m read

Intersystems IRIS平台

队列监控组件

  1. 概述

随着医院信息化建设的逐步完善,医院业务接口越来越多,业务接口数据处理可能会由于多种因素(网络、消费方系统等)影响下,出现消息堆积过多甚至造成接口卡顿的情况,影响院内正常业务开展,因此对于业务接口组件队列的的监控愈发重要。

当前Intersystems IRIS平台内置的队列监控界面仅展示接口组件实时队列信息,对于对于医院实际应用场景所需要的队列数据信息提供较为局限。队列监控组件程序是基于Intersystems IRIS平台开发,可以对所有接口组件进行统一监控,并展示组件24h内组件队列信息,也可通过设置时间段查询组件历史队列数据,更好满足当前的院内应用需求。      

关键应用:IRIS、Analytics

  1. 应用介绍
    1. 功能简介

通过配置该程序组件,对Intersystems IRIS平台中production运行组件的消息队列实现实时统一监控功能,并展示当前业务接口组件24h队列趋势情况,也可以通过指定时间范围展示历史队列趋势情况,可通过组件历史队列数据分析当前业务接口组件配置是否合理、是否需优化;通过历史队列数据趋势分析,对队列数量产生频次;对于由队列问题引起的事故可通过趋势图快速定位队列起始时间及业务事件ID,减少事故排查时间,极大地提高排查效率。

0
0 341