文章 Lilian Huang · 四月 28, 2023 8m read

嗨社区,
在本文中,我将演示 InterSystems Embedded Python 的用法,我们将涵盖以下主题:

  • 1-嵌入式Python概述
  • 2-嵌入式Python的使用
    • 2.1- 从 ObjectScript 使用 Python 库
    • 2.2- 从 Python 调用 InterSystems API
    • 2.3- 一起使用 ObjectScript 和 Python
  • 3-使用python内置函数
  • 4-Python 模块/库
  • 5 个嵌入式 Python 用例

  • 6-总结

我们从概述开始

1-嵌入式Python概述

嵌入式 Python 是 InterSystems IRIS 数据平台的一项功能,它允许 Python 开发人员完全直接地访问 InterSystems IRIS 中的数据和功能。

0
0 371
文章 姚 鑫 · 四月 27, 2023 3m read

第四十一章 配置镜像 - 使用 ^ZMIRROR 例程

用户定义的 ^ZMIRROR 例程允许为特定镜像事件(例如故障转移成员成为主要成员)实现自己的自定义、特定于配置的逻辑和机制。

^ZMIRROR 例程包含以下入口点。如果它们被省略,它们都提供适当的默认值。

  • $$CanNodeStartToBecomePrimary^ZMIRROR() — 当实例确定
    • 另一个故障转移成员当前未充当主要成员,并且在没有手动干预的情况下无法成为主要成员。
    • 本地成员有资格成为主要成员,即将开始接管过程。

CanNodeStartToBecomePrimary 为逻辑提供了一个入口点,以阻止故障转移成员自动成为主节点(无论是在启动时还是作为备份连接时),以提供对故障转移的手动控制,并且不是大多数 ^ZMIRROR 例程的一部分。

CanNodeStartToBecomePrimary 返回 1 时,本地实例已完全初始化为主要故障转移成员,可以继续成为主要成员的过程:所有镜像数据库都是可读写的,ECP 会话已恢复或回滚,本地事务(如果有)来自以前的主要已回滚。由于不允许用户登录,超级服务器连接被阻止,ECP 仍处于恢复状态,因此没有完成新的工作。

0
0 163
InterSystems 官方 Claire Zheng · 四月 27, 2023

InterSystems 已修复了一个缺陷,该缺陷可能会导致使用 IBM POWER8 或更高版本的 POWER 处理器的 AIX 系统上的数据库和Journal日志文件损坏。只有在使用数据库或Journal日志加密时才会触发此缺陷。

当满足以下条件时,会触发此缺陷:

如果环境满足所有这些条件,则用于数据库或Journal日志加密的密钥计划可能会被损坏。

该缺陷存在于以下产品和基于这些产品的任何 InterSystems 产品中:

  • InterSystems IRIS ® 除 2022.1.3 和 2023.1 之外的所有版本
  • InterSystems IRIS for Health ——除 2022.1.3 和 2023.1 之外的所有版本
  • HealthShare ® Health Connect 除 2022.1.3 和 2023.1 之外的所有版本
  • HealthShare ®解决方案——所有版本

请注意,此缺陷不会直接影响 HealthShare 解决方案,因为它们不使用数据元素加密功能。但是,如果 HealthShare 环境有一个使用上述数据元素加密功能的客户化定制,则它们必须遵循此警报中提供的补救措施。

0
0 218
文章 姚 鑫 · 四月 26, 2023 4m read

第四十章 配置镜像 - 配置服务质量 (QoS) 超时设置

服务质量超时(QoS 超时)设置通过定义时间范围(以毫秒为单位)在管理故障转移成员和仲裁器行为方面起着重要作用,镜像成员在采取行动之前等待另一个镜像成员的响应。 QoS 超时本身代表最大等待时间,而最小值是其二分之一。较大的 QoS 超时允许镜像容忍来自网络或主机的较长时间的无响应,而不会将其视为中断;降低 QoS 允许镜像更快地响应中断。 QoS超时具体影响以下几种情况:

  • 如果备份故障转移成员未在 QoS 超时定义的范围内确认从主要成员接收到数据,则主要成员断开备份并根据可能的备份中断采取行动。
  • 如果备份在 QoS 超时定义的范围内没有收到来自主服务器的消息,则备份将断开连接并根据主服务器可能中断的情况采取行动。
  • 如果仲裁器在 QoS 超时定义的范围内没有收到来自故障转移成员的响应,它认为它与该故障转移成员的连接丢失。
  • 如果在故障转移成员的主机上执行的操作导致主机在 QoS 超时定义的范围内的一段时间内完全无响应,则可能会导致不需要的故障转移或警报。在涉及备份或迁移等虚拟化平台操作时,这是一个特别值得关注的问题;有关详细信息,请参阅虚拟化环境中的镜像

默认 QoS8 秒(8000 毫秒),以允许在某些硬件配置上可能出现几秒钟的间歇性无响应。

0
0 177
文章 姚 鑫 · 四月 25, 2023 3m read

第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent

UNIX®/Linux 和 macOS 系统上为非根实例启动 ISCAgent

尽管 IRIS 通常以根用户身份安装,但在 UNIX®/LinuxmacOS 系统上,实例可能会被其他用户安装和运行。

非根实例的 ISCAgent 由安装用户在后台运行 ISCAgentUser 脚本启动,该脚本位于 IRISSYS 环境变量定义的目录中,例如:

nohup <IRISSYS_directory>/ISCAgentUser &

虽然可能无法将 ISCAgent 配置为在系统启动时自动启动,但如果可以实现,这仍然是首选。当镜像包含两个故障转移成员时,最佳做法是在系统启动后尽快启动代理,即使您不打算启动 IRIS;这有助于在某些情况下恢复,例如两个故障转移成员的计划外中断中描述的情况。

Microsoft Windows 系统上启动 ISCAgent

Microsoft Windows 系统上,按如下方式启动 ISCAgent 进程:

a. 在 Microsoft Windows 控制面板中,双击进入系统和安全菜单。

b. 在“系统和安全”中,双击“管理工具”菜单,然后从出现的子菜单中选择“服务”。

c.

0
0 184
问题 water huang · 四月 23, 2023

我用%SQLGatewayConnection把别人给我的数据转为sql 写入mysql的时候,如果数据里面有 ascii 码为57659 这样的数据的时候,

ClassMethod Execute(sql, conn, Output msg) As %Status
{
    s $zt="Err"
    s msg=""
    k hstmt
    set sc=conn.AllocateStatement(.hstmt)
    set sc=conn.PrepareW(hstmt,sql) 
    
  if $$$ISERR(sc) quit sc
  //Execute statement
  set sc=conn.Execute(hstmt)
  if $$$ISERR(sc) 
  {
      k err
   Set xsc=conn.GetErrorList(hstmt,.err)
      set sc=conn.DropStatement(hstmt)
   ;Zwrite err
   Quit err
  }
    set sc=conn.DropStatement(hstmt)
    q $$$OK
Err
    ;w $ze,!
1
0 214
文章 姚 鑫 · 四月 24, 2023 2m read

第三十八章 配置镜像 - 配置 ISCAgent - 在 Linux 系统上启动 ISCAgent

在 Linux 系统上启动 ISCAgent

在支持systemdLinux系统上(如SUSE Linux Enterprise Server 12, SP1及以后版本),会安装/etc/systemd/system/ISCAgent.service文件,支持使用systemd管理ISCAgent。在任何此类系统上,以下命令可用于启动、停止和显示 ISCAgent 的状态:

systemctl start ISCAgent.service
systemctl stop ISCAgent.service
systemctl status ISCAgent.service

要在支持 systemd 的系统上控制 SCAgent 是否在系统引导时启动,请使用以下命令:

sudo systemctl enable ISCAgent.service
sudo systemctl disable ISCAgent.service

默认情况下,systemd 服务是禁用的。可以使用 systemctl 按需启动和停止服务,即使它已被禁用。

ISCAgent.

0
0 204
文章 姚 鑫 · 四月 22, 2023 3m read

第三十六章 配置镜像 - 配置镜像虚拟 IP (VIP)

配置镜像虚拟 IP (VIP)

如规划镜像虚拟 IP (VIP) 中所述,可以配置一个镜像虚拟地址,允许外部应用程序使用单个地址与镜像交互,确保在故障转移时持续访问。

在为镜像 VIP 配置 IRIS 并配置镜像 VIP 后,通过正常关闭当前主节点(如计划中断过程中所述)执行故障转移测试,以确保应用程序可以继续连接到镜像,而不管哪个故障转移成员是基本的。

重要提示:在 Linux 平台上配置镜像 VIP 之前,请通过安装适当的软件包(例如,Debian iputils-arping 软件包)确保 arping 命令可用。

如果一个或多个镜像成员是 UNIX®Linux 系统上的非根 IRIS 实例,如安装指南中“在 UNIX®Linux 上安装 IRIS”一章的 IRIS 非根安装中所述,则镜像 VIP不能使用。

注意:有关在使用 VIP 时将 DR 异步提升为主的重要信息,请参阅将 DR 异步成员提升为故障转移成员。

为镜像 VIP 配置 IRIS

为确保无论哪个故障转移成员当前为主,管理门户和 Studio 都可以无缝访问镜像,建议将故障转移成员配置为使用相同的超级服务器和 Web 服务器端口号。

具有镜像数据服务器的分布式缓存集群中的应用程序服务器不使用镜像的 VIP

0
0 159
文章 姚 鑫 · 四月 21, 2023 5m read

第三十五章 配置镜像 - 配置与镜像的应用程序服务器连接

当使用镜像的自动部署方法中描述的方法之一部署具有镜像数据服务器的分布式缓存集群时,所有需要的配置都是自动的。当使用Management Portal 部署集群时,必须在将数据服务器添加到每个应用程序服务器时指明该数据服务器是一个镜像。当数据服务器通过任何方法配置为镜像连接时,每个应用程序服务器定期从主服务器收集有关镜像的更新信息,自动检测故障转移并根据需要将连接重定向到新的主服务器。

有关使用自动部署方法配置镜像数据服务器的信息,请参阅镜像的自动部署方法中列出的文档。要手动将镜像配置为分布式缓存集群中的数据服务器,请使用以下过程:

  1. 准备故障转移成员和任何 DR 异步成员作为数据服务器,如可扩展性指南同一章中的准备数据服务器中所述。所有这些实例都必须配置相同的最大应用程序服务器设置。
  2. 在每个应用程序服务器上,执行以下操作:
    • 按照可扩展性指南同一章中配置应用程序服务器中的描述添加数据服务器,确保选中镜像连接复选框并为主机 DNS 名称或 IP 地址输入当前主要故障转移成员的 DNS 名称或 IP 地址,而不是镜像的虚拟 IP 地址 (VIP)(如果有的话)。
    • 创建一个或多个名称空间映射到数据服务器上的一个或多个远程数据库,如配置应用程序服务器中所述。
0
0 159
文章 Michael Lei · 四月 4, 2023 1m read

嗨开发者们!

如您所知,InterSystems IRIS 除了Global、对象、文档和 XML 数据模型还支持关系,其中 SQL 语言也被用来处理数据。

与其他关系型 DBMS 一样,InterSystems IRIS 有自己的特点。

我开始这篇文章是为了抛砖引玉,并邀请您分享您的小诀窍 - 我会根据收到的评论更新内容。

开始了!

1
1 301
文章 姚 鑫 · 四月 20, 2023 3m read

第三十四章 配置镜像 - 在镜像中激活日志加密

在镜像中激活日志加密

在镜像成员上激活日志加密时,请记住三个重要的注意事项:

  • 不能在故障转移成员和 DR 异步上激活日志文件加密,除非镜像需要 TLS 安全性。

  • 如果在主服务器上激活了日志加密,则必须在属于镜像的任何报告异步上激活它。此外,最佳做法是在备份和任何 DR 异步上激活日志加密,以便在发生故障转移或 DR 升级时日志加密将继续有效。

  • 故障转移成员和 DR 异步之间的日志加密要求在一个成员上用于日志加密的加密密钥在其他成员上被激活(尽管不一定用于日志加密),以便根据需要用于解密收到的日志文件。具体来说,

    • 如果在主服务器上激活了日志加密,则必须在备份和所有 DR 异步上加载并激活用于主服务器上的日志加密的密钥。 (如果未激活主日志加密密钥的报告异步更改为 DR 异步,则会生成警告;异步可以暂时保持与镜像的连接,但下次需要时将无法重新连接,除非密钥已被激活。)
    • 如果在备份或 DR 异步上激活了日志加密,则必须在主数据库上加载并激活用于该成员的日志加密的密钥。

    同样,作为准备故障转移或升级的最佳实践,如果任何成员(主要、备份)或可能成为(DR 异步)故障转移成员指定了日志加密密钥,则应将此密钥加载到所有其他此类成员上,包括多个 DR 异步。

0
0 170
文章 Shanshan Yu · 四月 18, 2023 1m read

随着生活水平的提高,人们越来越注重身体健康。 而孩子的健康成长也越来越成为家长关心的话题。 孩子的身体发育可以从孩子的身高和体重反映出来。 因此,及时预测身高和体重具有重要意义。 通过科学的预测和比较,关注孩子的发育状态。

该项目使用InterSystems IRIS Cloud SQL通过输入大量体重和身高相关数据来支持,并建立基于IntegratedML的AutoML进行预测分析。 根据输入的父母身高,可以快速预测孩子未来的身高,并根据当前的身高和体重状况判断孩子的体重指数。 在正常范围内。

功能

通过应用该程序,可以快速预测处于正常发育状态的儿童的身高。 通过结果,家长可以判断孩子发育是否正常,是否需要临床干预,有助于了解孩子未来的身高; 通过当前体重状态判断当前孩子的BMI是否正常,了解孩子当前的健康状况

应用场景

1.儿童身高预测

2. 监测儿童发育

0
0 221
文章 姚 鑫 · 四月 17, 2023 6m read

第三十一章 配置镜像 - 删除镜像成员时删除镜像数据库属性

删除镜像成员时删除镜像数据库属性

当从镜像中删除成员时,始终可以选择从属于该镜像的镜像数据库中删除镜像属性。后果如下:

  • 如果保留镜像属性并稍后将 IRIS 实例恢复到镜像,数据库将自动添加到镜像,但必须先激活它们,然后才能赶上并同步(请参阅激活和赶上镜像数据库)。

但是,如果保留镜像属性,则除非先执行以下操作之一,否则无法删除该数据库:

将成员恢复到从中删除它的同一个镜像。 (如果该成员是主故障转移成员,这不是一个选项,因为镜像不再存在。)然后可以从镜像中删除一个或多个数据库(请参阅从镜像中删除镜像数据库)并在以下情况下删除它们你希望。

  • 使用 ^MIRROR 例程的删除一个或多个镜像数据库选项(请参阅使用 ^MIRROR 例程)从一个或多个数据库中删除镜像属性,然后根据需要删除它们。

  • 如果删除镜像属性,数据库将永久取消镜像并且可以像任何本地数据库一样使用;如果要在实例作为镜像成员重新加入后将它们返回到镜像,则必须使用首次将它们作为现有数据库添加到镜像的过程。

当从备份或异步成员上的镜像中删除单个数据库时,镜像数据库属性会自动删除。

编辑或删除异步成员

  1. 导航到“编辑异步配置”页面(系统管理 > 配置 > 镜像设置 > 编辑异步)。
0
0 199
文章 姚 鑫 · 四月 16, 2023 5m read

第三十章 配置镜像 - 激活和更新镜像数据库

激活和更新镜像数据库

可以使用镜像监视器在备份故障转移成员和异步成员上激活和/或赶上镜像数据库。

如将现有数据库添加到镜像中所述,新添加的包含数据的镜像数据库可以自动与主数据库同步,方法是使用 ^DBREST 例程从主故障转移成员恢复备份。如果使用其他方法,则必须激活并赶上备份故障转移成员和异步成员。

要激活和赶上镜像数据库,请在备份故障转移成员和异步成员上执行以下操作:

  1. 导航到镜像监控页面(系统操作 > 镜像监控)。
  2. 如有必要,在异步成员上,单击包含您要对其执行操作的数据库的镜像的详细信息链接。
  3. 镜像数据库列表显示每个数据库的状态,如使用镜像监视器中所述。在其他可能的状态中,Needs Catchup 表示需要 Catchup 操作,Needs Activation 表示同时需要 ActivateCatchup 操作,Catchup Running 表示 Catchup 操作当前正在数据库上运行。
  4. 选择“激活”或“同步”链接以对单个数据库执行操作,或从“选择操作”下拉列表中选择“激活”或“同步”,然后单击“开始”以打开一个对话框,您可以在其中从所有数据库列表中选择多个数据库该操作适合立即应用于所有这些操作。执行此操作时,ActivateCatchup 任务将在后台运行。
0
0 235
文章 姚 鑫 · 四月 11, 2023 4m read

第二十五章 配置镜像 - 创建镜像并配置第一个故障转移成员

创建镜像并配置第一个故障转移成员

以下过程描述了如何创建镜像和配置第一个故障转移成员。

  1. 在第一个故障转移成员上,导航到管理门户的创建镜像页面(系统管理 > 配置 > 镜像设置 > 创建镜像)并单击创建镜像。如果该选项未激活,则镜像尚未启用;首先点击Enable Mirror Service,然后选中Service Enabled复选框并点击Save,然后选择Create a Mirror选项。
  2. 在创建镜像页面,在镜像信息部分输入以下信息:

a. 镜像名称 - 输入镜像的名称。

注意:有效名称必须是 115 个字母数字字符;小写字母会自动替换为大写字母。

b. 需要 SSL/TLS — 通过选中或清除复选框来指定是否要对镜像内的所有通信要求 TLS 安全(如建议的那样)。如果选择需要 SSL/TLS 并且该实例还没有用于镜像的有效 TLS 配置,则在完成该过程之前,必须单击设置 SSL/TLS 链接并在此成员上创建所需的 TLS 配置。 (创建 TLS 配置的说明包含在为镜像创建和编辑 TLS 配置中。)还可以取消创建镜像过程并导航到 TLS 配置页面(系统管理 > 安全 > SSL/TLS 配置)。

0
0 199
InterSystems 官方 Claire Zheng · 四月 10, 2023

InterSystems已修复一个缺陷,该缺陷在罕见情况下会导致ECP客户端不稳定。

该缺陷存在于以下产品和基于这些产品的任何InterSystems产品中。

受影响的版本是2022.1.x、2022.2和2022.3:

InterSystems IRIS®

InterSystems IRIS for Health™

HealthShare® Health Connect

受影响的版本是2022.2(只针对部署ECP的客户):

InterSystems HealthShare®

这个问题只发生在ECP客户端系统中。当这个问题被触发时,进程可能遇到<SYSTEM>或<DATABASE>错误。出错后,ECP客户端会出现不稳定;在某些情况下,实例可能会挂起。对数据没有影响,ECP数据库服务器不受影响。

要清除不稳定性,必须重新启动ECP客户端实例。

如果您的 IRIS、IRIS for Health 或 Health Connect 实例受到影响,补救措施是升级到版本 2023.1 或 2022.1.3,这两个版本都将很快发布。

如果您有受影响的 HealthShare 实例,一组单独的警报文档和补救建议将很快发布

0
0 260
公告 Claire Zheng · 四月 10, 2023

2023年4月14日-16日,2023 CHITEC将在安徽省合肥市合肥滨湖国际会展中心(安徽省合肥市锦绣大道3899号)盛大召开。点击查看CHITEC 2023完整日程。InterSystems将亮相CHITEC,通过展位展示、主题研讨会、分论坛演讲等方式,全方位多角度展示InterSystems加速评测,助力公立医院高效建设互联互通平台和数据中心的能力。

0
0 489
文章 姚 鑫 · 四月 8, 2023 3m read

第二十二章 配置镜像 - 镜像配置指导原则

为了提供强大、经济的HA解决方案,镜像设计为可适应各种系统配置和体系结构。但是,建议遵循以下一般配置准则:

  • IRIS实例和平台兼容性-在确定要添加到镜像的系统之前,请务必查看IRIS实例兼容性和成员字符顺序注意事项中描述的要求。
  • 故障转移成员相等-假定镜像中的两个故障转移成员相等。无法将首选项配置为主角色,并且根据情况需要将主角色和备份角色互换。因此,最佳做法是使故障转移系统主机彼此尽可能相似,特别是使用相似的计算资源进行配置;即,两个系统上的CPU和内存配置以及磁盘配置应具有可比性。
  • 主实例配置和安全设置-主故障转移成员上的用户、角色、命名空间和映射(包括全局映射和包映射)等元素的配置不会被其他镜像成员上的镜像复制。因此,必须在备份故障切换成员或灾难恢复异步成员上手动复制所有设置,并根据需要进行更新,才能使备份故障切换成员或灾难恢复异步成员有效地从主成员接管。
  • 未镜像数据-仅在主故障转移成员上的镜像数据库中的数据在备份故障转移成员和异步成员上复制和同步。因此,使备份或灾难恢复异步有效地接管主服务器所需的任何文件(例如,包括与SQL网关和Web服务器配置相关的文件)都必须手动复制到这些成员,并根据需要进行更新。

注:镜像数据库的文件流(默认情况下位于数据库目录的Stream子目录中)不会被镜像。

0
0 122
文章 姚 鑫 · 四月 7, 2023 3m read

第二十一章 配置镜像

本章提供了镜像和镜像成员的设置、配置和管理的相关信息和步骤。

镜像的自动部署方法

本章提供了使用管理门户创建镜像和将现有实例配置为成员的过程。 IRIS Data平台还提供了几种自动部署镜像的方法,这些镜像在部署后完全可运行。

使用云管理器(ICM)部署镜像

ISC建议使用InterSystems Cloud Manager(ICM)部署 IRIS,包括镜像配置。通过将纯文本声明性配置文件、简单的命令行界面和Docker Containers中的 IRIS部署相结合,ICM为提供了一种简单、直观的方式来配置云或虚拟基础架构,并在该基础架构上部署所需的InterSystems IRIS体系结构以及其他服务。ICM可以显著简化部署流程,尤其是对于复杂的水平群集配置。

除了部署独立的镜像实例外,ICM还可以部署具有镜像数据服务器的分布式缓存集群和具有镜像数据节点的分片集群。

使用 Kubernetes运算符(IKO)部署镜像

KUBERNETES一个开源的编排引擎,用于自动部署、扩展和管理容器化的工作负载和服务。可以定义想要部署的容器化服务以及希望它们遵循的策略;Kubernetes以尽可能高效的方式透明地提供所需的资源,在部署偏离规范时修复或恢复部署,并自动或按需扩展。

0
0 206
InterSystems 官方 Claire Zheng · 四月 6, 2023

InterSystems 已修复一个导致SQL查询返回不正确结果的缺陷。

该缺陷存在于以下产品和基于这些产品的任何InterSystems产品中。

受影响的版本是 2021.2、2022.1.x、2022.2 和 2022.3:

  • InterSystems IRIS®
  • InterSystems IRIS for Health™(医疗版)
  • HealthShare®Health Connect

受影响的版本是 2022.2:

  • InterSystems HealthShare®

当启用 SQL 运行时计划选择 (RTPC) 被启用(默认),并且查询包含一个“truth value”“WHERE ?=? 时,该缺陷会被触发,当被触发时,一些判断可能不会被正确评估;这导致了不正确的查询结果。

注意:通过查看SQL语句,无法完全评估一个查询的脆弱性。这是因为InterSystems SQL查询优化可以在查询的内部表示中增加“truth value”。

如果你的环境使用 InterSystems SQL,那么你可以通过禁用RTPC 功能来补救这个问题

注意:关于 InterSystems HealthShare® 缓解措施的其他信息将很快发布。

0
0 216
文章 姚 鑫 · 四月 6, 2023 3m read

第二十章 镜像架构和规划 - 限制对备份故障转移成员的访问

虽然托管镜像备份故障转移成员的系统可能有未使用的资源或容量,或者可能希望在其镜像数据库上运行只读查询,但 推荐的最佳实践是将主机专用于其角色,仅作为备份镜像成员。对备份的任何镜像相关或非镜像使用都会产生以下影响:

  • 如果备份性能的降低导致其确认从主服务器接收到日志数据的速度变慢,则访问主服务器上镜像数据库的应用程序用户可能会遇到性能下降的情况。任何必须等待主节点确认的应用程序交互,包括那些涉及显式日志同步以及同步提交事务和 ECP 活动的应用程序交互,都可能以这种方式受到影响。
  • 如果备份的确认延迟到足以防止它在 QoS 超时内发生,则主要撤销备份的活动状态,导致自动故障转移变得更加困难或不可能,具体取决于主要中断的性质。
  • 如果确实发生自动故障转移,备份现在支持其现有资源使用和主要用户应用程序资源使用。如果可能的话,备份主机必须有能力处理这两种负载。

出于这些原因,如果必须从主成员卸载用户活动,则应使用异步成员而不是备份成员。

在单个主机上安装多个镜像成员

构成镜像的 IRIS 实例通常安装在单独的物理或虚拟主机上,但这不是必需的。假设系统的容量足以处理所涉及的资源负载而不会导致性能下降,则可以在同一台主机上安装多个镜像成员,包括多个镜像的整体;个人情况将决定这是否可行,以及可以共存多少个镜像或镜像成员。

0
0 147
文章 姚 鑫 · 四月 5, 2023 5m read

第十九章 镜像架构和规划 - 规划镜像虚拟 IP (VIP)

规划镜像虚拟 IP (VIP)

如内置机制中所述,当镜像 VIP 正在使用且成员成为主要成员时,VIP 将重新分配给新的主要成员,这允许所有外部客户端和连接与单个静态 IP 交互,而不管哪个故障转移成员是目前担任小学。

在故障转移过程中,遇到网络断开连接的连接客户端能够在备份成为主要后重新连接。如果配置了 VIP,备份只有在成功分配 VIP 后才能完成故障转移;否则,故障转移过程将中止,镜像需要手动干预。

在准备设置镜像 VIP 时,请考虑以下事项:

  • 要使用镜像 VIP,两个故障转移成员必须配置在同一子网中,并且 VIP 必须与在每个系统上选择的网络接口属于同一子网。 DR 异步成员必须在同一子网上有一个网络接口,以便在作为灾难恢复的一部分提升为主时能够获取 VIP;如果不是这种情况,则必须将替代的重定向机制纳入灾难恢复程序。
  • 当故障转移和/或 DR 异步成员位于不同的数据中心时,可以跨数据中心扩展 VLAN 子网以继续支持相同的 VIP 地址。这需要两个站点之间的第 2 层连接,并且可能不足以满足所有情况;请参阅双数据中心的镜像配置和地理上分离的灾难恢复中的讨论。
  • 应该在你的 DNS 服务器上为 VIP 分配一个 DNS 名称,以供连接的客户端使用。
0
0 171
文章 姚 鑫 · 四月 4, 2023 3m read

第十八章 镜像架构和规划 - 在故障转移或灾难恢复后重定向应用程序连接

当备份故障转移成员通过自动故障转移成为主要成员或作为灾难恢复的一部分手动将 DR 异步提升为主要成员时,需要某种机制将应用程序连接重定向到新的主要成员。有许多方法可以实现这一点,本章将详细讨论其中的一些方法。一种解决方案可能适用于自动故障转移和 DR 提升,或者可以组合解决方案,例如用于自动故障转移的镜像 VIP 和用于 DR 提升的 DNS 更新。

内置机制

镜像配置中可以包含以下机制,如示例镜像体系结构和网络配置中所示,以解决应用程序重定向问题:

  • 镜像虚拟 IP 地址 (VIP)

当镜像 VIP 正在使用时(请参阅规划镜像虚拟 IP (VIP))并且成员成为主成员时,VIP 会自动绑定到新主成员上的本地接口,从而允许外部客户端继续连接到相同的 IP 地址.使用 VIP 要求有资格成为主要成员的成员位于同一子网上,如示例镜像体系结构和网络配置中所述。

注意:通常,VIP 不能在云环境中使用;有关在云中进行镜像时的备选方案和其他注意事项的信息,请参阅在云环境中进行镜像。

  • 分布式缓存集群

在镜像分布式缓存集群中(请参阅配置与镜像的应用程序服务器连接),故障转移成员配置为数据服务器,所有应用程序服务器连接都专门配置为镜像连接。故障转移后,应用程序服务器重新建立与新的主要故障转移成员的连接,并继续处理正在进行的工作负载。

0
0 228
文章 Michael Lei · 四月 3, 2023 2m read

如果您使用过 Caché Objects,你已经知道所有关于关系(一对多,父子孙继承等)......
但是您不会在文档中找到关于多对多关系的地方。

但我经常遇到 Caché 对象的新用户提出的问题:
“是否可以实现多对多关系?”答案是——当然!

如何实现取决于相关的任务:有一个比较重的和一个轻量级的解决方案。
两者的共同点是它们不能开箱即用需要添加一些代码来管理它。

让我们举一个基于 SAMPLES 命名空间的例子:

我们有 N:1 关系的情况

但是,您如何处理超过 1 个公司的员工?

重的解决方案:
您添加一个额外的持久类,与双方都有一个:多的关系。

优点:您可以添加管理信息作为有效性、各种时间戳……
以及与此“链接”相关的其他内容。
但它是一个额外的持久类,具有所有优点和缺点。所以我觉得这个很重。
该类可能如下所示:

Class Sample.Jobs Extends %Persistent  [Final]
{
Property Status As %Boolean;
Relationship Company As Sample.Company [ Cardinality = one, Inverse = Slot ];
Relationship Employee As 
0
0 274
文章 Johnny Wang · 四月 25, 2022 39m read

    大家应该都已经很熟悉 InterSystems Ensemble(一个集成和应用程序开发平台),每个人都知道 Ensemble Workflow 子系统是什么以及它对于自动化人类交互的作用。 对于那些不了解 Ensemble Workflow 的人,我将简要介绍它的功能(已经熟悉的朋友可以直接跳过这一部分并学习如何使用 Angular.js 中的 Workflow 接口)。

InterSystems Ensemble

  InterSystems Ensemble 是一个集成和应用程序开发平台,旨在集成异构系统、自动化业务流程和创建新的复杂应用程序,这些应用程序通过新的业务逻辑或新的用户界面增强集成应用程序的功能:EAI、SOA、BPM、BAM 甚至 BI (感谢 InterSystems DeepSee:一种用于开发分析应用程序的内置技术)。

    Ensemble 具有以下关键功能:

    适配器:与应用程序、技术和数据源交互的组件。 Ensemble 提供技术和应用程序集成适配器(Web 和 REST 服务、文件、FTP、电子邮件、SQL、EDI、HL7、SAP、Siebel、1S Enterprise 等)。 您可以使用适配器 SDK 创建自己的适配器。

    业务服务:将来自外部系统的数据转换为 Ensemble 消息并启动业务流程和/或业务运营的组件。

1
0 690
文章 Louis Lu · 三月 31, 2023 2m read

当我在Docker容器上构建IRIS服务器时,由于升级Docker版本,发现我构建的IRIS服务器消失了。

基于这个经历,这篇文章展示如何在升级平台或docker之前为IRIS服务器做一个备份,以及在新环境中重建IRIS的过程。

IRIS服务器备份过程

完成IRIS服务器的构建后,需要进行备份。

特别是在升级之前建议做一个备份,尤其当有自定义类、routine或者 global时。

下文中的“{}”代表输入参数

  1. 导出用户定义

导出IRIS服务器中所有用户定义:

zn "%SYS"
write ##class(Security.Users).Export({输出完整路径文件名})
  1. 导出application定义
zn "%SYS"
write ##class(Security.Applications).Export({输出完整路径文件名})
  1. 停止IRIS
iris stop {iris运行实例名称}
  1. 备份iris.cpf

Iris.cpf存放于iris安装目录下,比如 /usr/irissys/iris.cpf

  1. 备份所有的数据库文件

建议卸除数据库后,备份所有的数据库文件所在的文件夹

  1. 启动IRIS
iris start {iris 实例名称}

服务器重建过程

如果重新安装IRIS服务器,则必须使用与备份时相同的配置重新构建它。

  1. 使用与原系统相同的配置部署数据库。
0
0 432
文章 Lele Yang · 三月 31, 2023 4m read

《WebGateway系列(4): 配置HTTPS访问IRIS的Web服务》中介绍了在Web服务器中配置SSL/TLS以实现从客户端浏览器到Web服务器之间的安全连接,从Web服务器到IRIS之间是否也可以通过配置SSL/TLS建立起安全连接呢?尤其是在Web服务器与IRIS没有安装在同一台Server上的情况下,这段连接的安全性也是需要考虑的。答案是肯定的,接下来我们就来介绍下配置Web Gateway使用SSL/TLS连接到IRIS的基本步骤。

1.首先,我们先准备一下所需要的证书。通讯的双方为Web Gateway 和 IRIS Super Server, 双方都需要准备好各自的证书和key。IRIS自带的Public Key Infrastructure(PKI)功能内置了OpenSSL,可以用来生成服务器端及客户端的证书和key。在使用此功能时,IRIS可以同时作为CA Server和CA Client,作为CA Server时可以生成自签名的证书,可以批准CA Client的证书申请并将证书下发给CA Client。

1)配置本地证书颁发机构服务器,生成sever端的证书和key。

2)配置本地证书颁发机构客户端,如下

3)将证书签名请求提交到证书颁发机构服务器

4)进程未决证书签名请求

发放证书。

0
0 615