公告 Claire Zheng · 九月 4, 2022

嗨,开发者们!

秋高气爽之际,我们很高兴地宣布启动🏆InterSystems开发者社区中文版首届技术征文大赛 🏆(←点击链接进入参赛页面,浏览所有参赛文章)!

从2022年9月5日-10月24日(北京时间),欢迎热爱InterSystems技术的你来投稿,撰写与InterSystems技术相关的文章。

🎁参与奖 我们为每一位成功参赛的作者准备了礼品!

🏆优秀文章大奖 Apple iPad; Beats Fit Pro; HUAWEI WATCH; Logitech键盘; WD固态硬盘;KEEP智能手环

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

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

显示进程详细信息

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

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

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

一般信息

Field Definition
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)
0
0 80
文章 姚 鑫 · 九月 2, 2022 3m read

第二十章 控制进程(一)

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

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

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

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

  • Display process information 显示进程信息 - 显示进程页面(系统操作 > 进程)。
  • Display process details 显示进程详细信息 - 显示流程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。
  • Suspend/resume a process 暂停/恢复进程 - 显示进程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。然后根据需要单击操作栏上的暂停或恢复。
  • Terminate a process 终止进程 - 显示进程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。然后根据需要单击操作栏上的 TerminateTerminate with Error
  • Display process variables 显示进程变量 - 显示进程页面,然后单击所选进程右侧栏中的详细信息以显示进程详细信息页面。
0
0 170
文章 Jingwei Wang · 九月 2, 2022 1m read

当使用集成平台传递异步消息时,在消息查看器查看消息状态的时候会出现 ‘已放弃’(Discarded) 的消息状态。

‘已放弃’ 的消息状态出现主要有以下原因:

  • 当响应的消息在响应请求超时后才到达你要发送的目的地,这条消息就成为了 ’已放弃‘ 的消息。
  • 因某种原因,消息无法交付,手动将消息标记为 ‘已放弃’。
  • 异步传递的消息,无需等待返回消息,这时如果配置了返回消息,这条消息也会成为 ’已放弃‘ 的消息。

注意:被标记为 ‘已放弃’的消息任然会被永久储存,只有但你明确删除它们时,消息才会被删除

如图所示,业务流程 HCC.SVR.Prod.BPMainControl 向 业务流程 HCC.SVR.Prod.BP.SubscribeAndPublish发送异步消息,如果在HCC.SVR.Prod.BPMainControl调用HCC.SVR.Prod.BP.SubscribeAndPublish,而HCC.SVR.Prod.BP.SubscribeAndPublish设置了响应消息,那么从HCC.SVR.Prod.BP.SubscribeAndPublish设置的响应消息就会成为 ’已放弃‘ 的消息

如图所示,如果在HCC.SVR.Prod.BP.SubscribeAndPublish不设置响应消息,那么就不会从HCC.SVR.Prod.BP.

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

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

压缩数据库中的全局变量

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

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

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

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

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

  1. 打开终端并更改为 %SYS 命名空间。
  2. 输入 do ^DATABASE,然后从菜单中选择 7) Compact globals in a database
0
0 163
文章 Lilian Huang · 九月 1, 2022 6m read

在我们开始谈论数据库和现有的不同数据模型之前,我们最好先谈谈什么是数据库以及如何使用它。

一个数据库是以电子方式存储和访问的有组织的数据集合。 它用于存储和检索通常与主题或活动相关的结构化、半结构化或原始数据。
每个数据库的核心至少存在一个用于描述其数据的模型。 并且根据它所基于的模型,一个数据库可能具有略微不同的特征并存储不同数据类型。

要写入、检索、修改、排序、转换或打印数据库中的信息,需要使用称为数据库管理系统 (DBMS) 的软件。

数据库及其各自的数据库管理系统的大小、容量和性能增加了几个数量级。 各个领域的技术进步使之成为可能,例如处理器、计算机内存、计算机存储和计算机网络。 一般来说,数据库技术的发展根据数据模型或结构分为四代:导航型、关系型、对象型和后关系型。

与以特定数据模型为特征的前三代不同,第四代包括许多基于不同模型的不同数据库。 它们包括列、图、文档、组件、多维、键值、内存等。所有这些数据库都由一个单一的名称 NoSQL 联合起来(没有 SQL,或者现在更准确地说不仅仅是 SQL)。

而且,现在出现了一个新的类,叫做NewSQL 这些是现代关系数据库,旨在为在线事务处理工作负载(读写)提供与 NoSQL 系统相同的可扩展性能,同时使用 SQL 和维护 ACID

顺便说一下,在这些第四代数据库中,有那些支持上述提及的多种数据模型的数据库。 它们被称为多模型数据库。

0
0 571
文章 Michael Lei · 八月 19, 2022 2m read

我很高兴与大家分享我第一次使用docker容器版本的IRIS for Health的经验,以探索你对使用或试用的兴趣,利用docker容器的优势,它是轻量级的,易于部署。本文将通过使用Renan Lourenco编写的名为ENSDEMO的GitHub仓库的实施步骤。

设置IRIS for Health社区版docker容器环境的步骤:

  1. 启动运行Docker
  2. 下载docker 镜像image

docker pull containers.intersystems.com/intersystems/irishealth-community:2022.2.0.304.0

  1. 从GitHub 克隆源repository

git clone https://github.com/OneLastTry/irishealth-ensdemo

  1. 改一下文件目录.
  2. 从docker-compose.yml建立容器镜像

docker-compose build

  1. 运行你的容器

docker-compose up -d

在我最初的尝试中,我无法下载irishealth community:2022.2.0.304.0的确切版本,因为它在ENSDEMO的最初发布中已经发生了变化。修复方法是,当试图从InterSystems容器注册表拉出docker镜像时,在注册表中拉出最新的可用标签。

2
0 657
文章 姚 鑫 · 八月 31, 2022 4m read

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

截断数据库

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

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

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

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

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

对数据库进行碎片整理

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

0
0 104
文章 Michael Lei · 八月 31, 2022 2m read

背景Background 

大多数网站都有一个 "Fav.ico "文件,用于设置网页的图标。大多数用户有多个环境,开发、测试和生产环境。通常情况下,你很难一眼就看出你在哪个环境中。如果能直观地通过图标看到你所处的版本和环境,可以提供更好的用户体验。在这个例子中,所有的实例都被命名为 "ENSEMBLE"。注意,这是在2022.1上使用的IRIS FOR HEALTH。 

默认图标是 IR

在这篇文章中,我们将把标识改为类似于以下的内容:

图标文件

图标文件安装在你的安装文件夹csp/broker/portal中 

  1. 创建一个名为Archive的文件夹放在该文件夹中 
  2. 复制并粘贴ISC_IRIS_icon.ico到这个文件夹,对旧图标进行备份 
  3. 使用一个图标编辑器。我使用了在线创建和编辑ICO文件| RedKetchup,因为它很容易使用,并且有简单的文本选项。 
  4. 将.ico文件复制到你的本地文件,并打开它(Icon-> Open)

5. 采取铅笔工具。清除任何旧的字母(提示:改变铅笔大小可以更容易操作)。

6. Click test. Set colour. Play around with the font. DON'T FORGET TO PRESS APPLY 

7. 保存图标. 

8.

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

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

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

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

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

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

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

一般信息

Field Definition
Directory 此数据库所在目录的名称。
Resource Name 分配给此数据库的资源名称。
Mounted 指示此数据库是否已安装。
Read Only 指示此数据库是否安装为只读。
Read Only Reason 数据库安装为只读的原因。
Encrypted 指示此数据库是否已加密。
Encryption Key ID 表示加密密钥 ID
0
0 100
问题 Liang Jianhui · 八月 24, 2022

现在有一个需求。想将intersystems系统产生的alerts.log文件的内容保存到一个表中。有什么工具或者API 能自动格式化log文件到DB吗,还是需要手动解析log文件然后在存储到DB中。

1
0 168
文章 姚 鑫 · 八月 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 数据库。

0
0 140
文章 姚 鑫 · 八月 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中,键入类别的名称。

0
0 128
文章 姚 鑫 · 八月 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

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

注意:还可以通过新选项卡类中的 %SYS.Task.

0
0 139
公告 Claire Zheng · 八月 26, 2022

欢迎了解2022年7月社区的最新动态!

最近我们进行了很多有趣的提升,以优化你在InterSystems开发者社区的体验:

📌 社交网络通知功能

📌 改进了订阅设置

📌 全新的“关于我们”页面

📌 更友好的“会员”页面

我们来详细看看这些改进!

0
0 112
文章 姚 鑫 · 八月 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 257
文章 姚 鑫 · 八月 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 134
文章 姚 鑫 · 八月 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.
0
0 168
问题 li liao · 四月 29, 2022

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

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