#InterSystems IRIS

0 关注者 · 938 帖子

InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。

InterSystems 官方 Claire Zheng · 六月 14, 2023

InterSystems 已纠正导致进程内存使用量增加的缺陷。

具体来说,在对局部变量执行$Order$Query  或Merge时,会出现本地进程分区内存消耗增加的问题。虽然这对大多数运行环境没有不利影响,但支持大量进程或严格限制每个进程最大内存使用的环境可能会受到影响。某些进程可能会遇到<STORE> 错误

该缺陷存在于2023.1.0.229.0中,但它被重新发布为2023.1.0.235.1,并包含了修复程序,以加快修正,而无需客户等待维护版本。

此缺陷的更正标识为 DP-423127 和 DP-423237。这些将包含在所有未来版本中。

该缺陷出现在 InterSystems IRIS ® 、InterSystems IRIS for Health ™ 和HealthShare ® Health Connect 的版本 2022.2、2022.3 和 2023.1(内部版本 229)中。如果您运行的是这些版本之一,我们建议升级到 2023.1(内部版本 235)。

此修复也可通过 Ad hoc 分发获得。

如果您对此警报有任何疑问,请联系全球响应中心

0
1 179
文章 Hao Ma · 六月 13, 2023 13m read

在维护IRIS的镜像前,管理员需要清楚的了解以下一些概念:

Mirror的切换模式(failover mode)

切换模式在镜像监视器里被翻译成”故障转移模式“。 有两种模式:

  • Agent Controlled模式:
  • Arbiter Controlled模式:(页面上翻译为“仲裁程序受控制”)

通常情况,生产环境的镜像是安装了arbiter(仲裁者)的。Mirror启动时,在还没有连接上arbiter的时候,自动进入Agent-Controlled模式。而后当两台机器,主机,备机都连通了Arbiter,会保持在这个模式。

  • 主备之间有连接;
  • 又都连到arbiter;
  • backup is active,

满足上面的条件,就进入arbiter controlled mode。而如果主备的任一方,失去了和arbiter的连接,或者备用侧丢了active, 开始尝试连接另一方,退回到agent-controlled模式。

Mirror同步成员的状态

Mirror Member Journal Transfer and Dejournaling Status. 请注意,这里面有两个概念:一个是Mirror成员的状态,一个是Journal传输和Dejournaling的状态。下面的图中是3个字段: STATUS, Journal传输,Dejournaling.

image-20230522112042308

STATUS

镜像成员的状态。

0
1 723
文章 姚 鑫 · 六月 8, 2023 2m read

第二十九章 开发Productions - ObjectScript Productions - 定义业务操作 - 定义消息处理程序方法

定义消息处理程序方法

当创建业务操作类时,通常最大的任务是编写用于此适配器的消息处理程序,即接收生产消息的方法,然后调用适配器的方法以便与生产之外的目标进行通信。

每个消息处理程序方法都应具有以下签名:

Method Sample(pReq As RequestClass, Output pResp As ResponseClass) As %Status

这里Sample是方法名,RequestClass是请求消息类名,ResponseClass是响应消息类名。

通常,该方法应执行以下部分或全部操作:

  1. 可选地设置业务操作类的属性(在任何适当的时间)。请参阅业务运营属性。
  2. 检查输入对象。
  3. 创建响应类的实例。
  4. 调用适配器的适用方法。这些方法可通过业务操作的 Adapter 属性使用。例如:
    Set tSc=..Adapter.SendMail(email,.pf)

在这些步骤之后讨论此方法。

或者,要将消息发送到Productions中的目标,请参阅将消息发送到Productions中的目标。

  1. 检查响应。
  2. 使用响应中的信息创建响应消息(Ens.Response 在的实例),该方法将其作为输出返回。
  3. 确保设置输出参数 (pOutput)
0
0 90
文章 Michael Lei · 六月 8, 2023 2m read

嗨社区!

想与您分享我在Telegram中使用GPT创建“我自己的”聊天的练习

这个应用需要用到 Open Exchange 上的两个组件:@Nikolay SolovyevTelegram Adapter@Francisco.López1549IRIS Open-AI

因此,通过此示例,您可以在 Telegram 中使用 ChatGPT 设置自己的聊天。

让我们看看如何让它发挥作用!

0
0 229
公告 Michael Lei · 六月 8, 2023

如果您已经使用%UnitTest 框架构建了单元测试,或者正在考虑这样做,请查看InterSystems 测试管理器Test Manager

无需离开 VS Code,您现在可以浏览单元测试、运行或调试它们,并查看之前的运行结果。

InterSystems 测试管理器适用于 ObjectScript 扩展支持的两种源代码位置范例。您的单元测试类可以在 VS Code 的本地文件系统(“客户端编辑”范例)或服务器命名空间(“服务器端编辑”)中掌握。在这两种情况下,实际测试运行都发生在服务器命名空间中。

欢迎反馈。

0
0 233
文章 Claire Zheng · 六月 6, 2023 1m read

当数据资产已经成为医院的核心资产,如何有效利用数据核心资产,持续挖掘互联互通平台和各种数据中心的价值,成为医疗信息化工作的重中之重。欢迎扫码注册(或点击链接注册)观看多位大咖针对这一话题的解读。

0
0 148
文章 姚 鑫 · 六月 6, 2023 5m read

第二十七章 开发Productions - ObjectScript Productions - 定义业务流程 - 关键原则

关键原则

在开发业务流程时,请考虑以下关键原则:

  • 有时希望使响应对象成为传入请求对象的修改版本,分阶段进行修改可能很有用。但是,不要修改传入的请求对象。而是将其复制到上下文变量(或者,对于自定义业务流程,将数据复制到局部变量)。然后修改副本。
  • 同步发送消息时要小心(只能在自定义业务流程中或 BPL 中的 中执行)。

当业务流程A同步调用业务流程B时,流程A不会继续,直到收到响应。如果进程 A 需要完成对其他进程 (B) 的调用才能完成自身,并且如果这些进程共享参与者作业池,则如果没有空闲的参与者作业来处理被调用的业务流程,则参与者池可能会陷入死锁( B).

发生这种情况是因为在被调用业务流程返回之前,调用业务流程无法完成并释放参与者作业,但被调用业务流程无法执行,因为没有空闲的参与者作业来执行它。

另请注意, IRIS 无法在真正的同步调用期间关闭。

最好使用 SendRequestAsync() 并在 OnResponse() 方法中处理响应消息。如果需要同步调用,可以通过配置被调用的业务流程(B)使用自己的作业池来避免这个问题。

  • 如果单一作业业务流程发出请求并等待响应,则该流程将失去 FIFO 功能。
0
0 113
文章 姚 鑫 · 六月 4, 2023 4m read

第二十四章 开发Productions - ObjectScript Productions - 定义业务服务

本页介绍如何定义业务服务类。

提示: IRIS® 提供使用特定入站适配器的专用业务服务类,其中之一可能适合需要。如果是这样,则不需要编程。有关部分列表,请参阅 Introducing Interoperability Productions 中的连接选项。

介绍

业务服务负责接受来自外部应用程序的请求到 IRIS。下图显示了它是如何工作的:

请注意,此图仅显示数据的输入流,而不是可选响应。

业务服务负责以下活动:

  • 等待特定的外部事件(例如来自应用程序的通知、收到 TCP 消息等)。
  • 读取、解析和验证伴随此类事件的数据,
  • 如果需要,返回对外部应用程序的确认,表明已收到事件。
  • 创建请求消息的实例并将其转发到适当的业务流程或业务操作以进行处理。

业务服务的目的通常是接收数据输入。在大多数情况下,业务服务有一个与之关联的入站适配器。但是,在某些情况下不需要适配器,因为应用程序能够将请求消息发送到服务中,或者因为业务服务已被编写为处理特定类型的外部调用,例如来自复合应用程序的调用。这种类型的业务服务称为无适配器业务服务。

当业务服务具有入站适配器时,它处于数据拉取(而不是推送)模式。在这种模式下,业务服务会定期轮询适配器,看它是否有数据。

0
0 91
公告 Michael Lei · 六月 3, 2023

InterSystems 支持的硬件OS平台更新 2023年2季度

我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架列表最近和即将发生的变化的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的已知的情况,但预测未来是一项棘手的工作,不应将其视为承诺的路线图。

话虽如此,关于更新……

IRIS 生产操作系统和 CPU 架构

红帽企业 Linux

  • 近期变动
    • RHEL 9.2 和 RHEL 8.8 于 2023 年 5 月发布。Red Hat 计划为这些版本提供 4 年的支持。 InterSystems 计划通过我们称为“次要操作系统版本认证”的新流程对 RHEL 9.2 上的 IRIS 进行额外测试,该流程旨在提供额外的安全性,即次要操作系统更新不会破坏任何明显的内容。
    • 随着 RHEL 9.2 的发布,Red Hat 终止了对 RHEL 9.1 的支持。这与 Red Hat 自 RHEL 8.0 以来一直使用的“奇数/偶数”支持周期一致。
    • RHEL 8.4 扩展维护将于 2023 年 5 月 31 日结束,这意味着 IRIS 也将在那时停止支持此次要版本。
  • 即将发生的变化
    • RHEL 9.3 计划在今年晚些时候推出。这将是 Red Hat 的短期支持版本,因此 InterSystems 不会推荐将其用于生产部署。
0
0 183
公告 Claire Zheng · 五月 31, 2023

Hi 开发者们!一年一度的 InterSystems IRIS 开发者大奖赛已启动!

我们非常高兴地邀请大家参加此次编程大赛——使用 InterSystems IRIS 数据平台构建开源解决方案!

🏆 InterSystems 2023 年度编程大奖赛🏆

时间: 2023年6月12日-7月9日(美国东部时间)

奖金池: 26,000 美元


2
1 504
文章 姚 鑫 · 五月 31, 2023 4m read

第二十一章 开发Productions - ObjectScript Productions - 延迟发送

延迟发送

除了同步(等待)和异步(不等待)的直接选择之外,还可以使用称为延迟响应的机制在 IRIS 之外发送消息。

假设一个业务流程希望在 IRIS 之外调用一个动作。它向业务操作发送请求,业务操作执行调用并返回响应。业务流程是任何响应的预期接收者;业务操作只是请求发出和响应进来的方式。如果业务流程同步发出请求,或者如果它发出请求并请求异步响应,业务操作将中继回响应。下图总结了这种机制。

现在假设从业务流程接收请求的业务操作已被编写为使用延迟响应功能。原始发件人不知道响应将被业务操作延迟这一事实。延迟响应是业务运营开发人员做出的设计决策。如果业务操作确实延迟了响应,那么当原始发送者在延迟期结束时收到响应时,它不知道响应曾经被延迟过。

业务操作通过调用其 DeferResponse() 方法来生成表示原始发送者和原始请求的令牌来延迟响应。业务运营还必须找到一种方法将此令牌传达给外部实体,然后外部实体负责将此令牌包含在对 IRIS 的任何后续响应中。例如,如果外部目的地是电子邮件,业务操作可以在外发电子邮件的主题行中包含令牌字符串。接收此电子邮件的实体可以从请求主题行中提取此令牌,并在响应主题行中使用它。在下图中,项目 t 代表此令牌。

0
0 128
文章 姚 鑫 · 五月 30, 2023 3m read

第二十章 开发Productions - ObjectScript Productions - 指定设置的默认值

当定义业务主机类(可能还有适配器类)时,应该考虑如何控制这些项目的任何设置的默认值。 IRIS 可以从三个来源之一获取设置的默认值:

  • production定义。
  • IRIS 实例定义的值,但存储在production定义之外。有关信息,请参阅配置制作中的定义制作默认值。
  • 主机类中定义的属性的默认值。在这种情况下,默认值由 InitialExpression 属性关键字确定。

某些设置取决于环境,例如 TCP/IP 地址或文件路径;通常,将这些设置配置为在生产之外提供它们的源,而其他设置(例如 ReplyCodeActions)是设计决策,并且很可能开发应用程序以从生产定义中检索这些设置。

可以开发作品,使配置设置来自不同的来源。主要目的是更轻松地将制作从一个 IRIS 实例转移到另一个实例,例如从测试转移到现场。

定义生产后,可以在管理门户的生产配置页面上更改生产和业务主机设置的来源。有关详细信息,请参阅配置制作。

默认设置的使用允许在Productions定义之外定义Productions和业务主机设置,可以在生产升级期间保留它们。为了便于更新产品或将产品从一个系统移动到另一个系统,可以省略设置并从系统上安装的结构中获取它们的值。

0
0 126
文章 Hao Ma · 五月 24, 2023 4m read

Manifest也许应该被翻译成“清单”, 字典上是这么解释的: 提供船舶及其货物和其他物品、乘客和船员的全面细节的文件,供海关官员使用,比如:飞机上的乘客或货物清单; 一辆货运列车的车厢清单。

在计算机语言中, Manifest可以是各种格式,用的最多的是xml和json,在IRIS中,manifest是xml格式的, 放在objectscript类的XDATA块里。

编写mainfest

IRIS用manifest来做配置。内部工具*%install*, 会读取manifest, 生成真正的objectscript代码来配置IRIS。我们来看个基本的例子。

基本用法

下面的User.Manifest.cls` ,它配置了IRIS的global buff, bbsize等等, 然后还创建了一个命名空间。

Include %occInclude
Class User.Manifest
{

ClassMethod setup(ByRef pVars, pLogLevel As %Integer = 3, pInstaller As %Installer.Installer, pLogger As %Installer.
1
0 234
文章 姚 鑫 · 五月 25, 2023 4m read

第十五章 开发Productions - ObjectScript Productions - 开发Productions介绍

互操作性产品允许连接可能使用不同通信协议和不同消息格式的系统。可以使用 Java.NETObjectScriptSQL 或业务流程、数据转换和业务规则的图形编辑器来开发产品。

文档

  • 互操作性生产概述
  • ObjectScript 中开发
  • 使用 PEXJava.NET 中开发
  • 使用 SQL
  • 业务流程 (BPL)
  • 数据转换 (DTL)
  • 业务规则
  • 配置生产
  • 使用推送通知定义工作流

在线内容

  • ObjectScript:开发系统集成
  • ObjectScript:构建自定义业务组件
  • 创建数据转换

开发Productions介绍

本页介绍产品开发的过程。

环境考虑

只能在具有特定 Web 应用程序的支持互操作性的名称空间内使用 IRIS 互操作性。创建类时,应避免使用保留的包名称。以下小节提供了详细信息。

支持Production的命名空间

支持互操作性的名称空间是具有全局映射、例程映射和包映射的名称空间,这些映射使支持产品的类、数据和菜单对其可用。有关映射的一般信息,请参阅系统管理指南中的配置命名空间。

安装 IRIS 时创建的系统提供的名称空间不支持互操作性,但在社区版中,USER 名称空间是支持互操作性的名称空间。

0
0 143
文章 Claire Zheng · 五月 23, 2023 1m read

实现医疗系统之间的互操作性是一项艰巨的挑战。随着FHIR日渐普及,对FHIR标准的兼容如今已成为许多国家医疗信息系统的全国性强制性要求。FHIR标准最有价值的一方面就是所有内容可被机器读取,使得FHIR应用跨机构使用成为可能,帮助您距离“语义互操作性”更近一步。

0
0 247
文章 Claire Zheng · 五月 23, 2023 1m read

不同系统在“对话”时候,如何让它们明白“带黑色条纹的白马”和“带白色条纹的黑马”是同一种动物(斑马)呢?FHIR是HL7国际(HL7 International)为满足当前医疗数据环境中的互操作性需求而创建的医疗数据标准,如今已成为许多国家医疗信息系统的全国性强制性要求。本视频介绍了FHIR的设计理念和关键构成,包括FHIR资源、FHIR Profile、FHIR扩展等。

0
0 194
文章 姚 鑫 · 五月 19, 2023 3m read

第九章 Productions最佳实践 - Productions开发的最佳实践

Productions开发的最佳实践

本章是一个总体概述,旨在帮助团队成员为从事生产项目做好准备。它概述了开发任务并确定了有关 数据平台和企业集成的信息来源。本章中的信息适用于所有类型的生产项目。

项目目标

任何Productions开发项目的目标都是连接两个或多个系统。Productions是专门的软件和文档包,可为企业客户解决特定的集成问题。有关概述,请参阅互操作性产品简介。

本节从应用程序开发人员必须创建和配置以提供解决方案的软件元素的角度描述 IRIS。下一节“项目交付”总结了 IRIS 开发项目的顺序和结果。

项目交付

IRIS 产品架构支持向企业交付的各种风格:

  • Productions可能包含企业的整个集成解决方案,或者产品可以适合企业已有的现有解决方案(或部分解决方案)。
  • Productions可以根据需要替换、升级遗留系统或向遗留系统添加新功能,而无需删除或更改遗留系统的任何部分。
  • IRIS 支持增量开发项目,因此开发团队可以根据企业的需要选择快速或缓慢地推进新旧系统之间的界限。

许多 IRIS 开发项目遵循与此类似的阶段顺序:

Order Phase Goal Focus
1 Specification 明确Productions要求。 Productions必须能够做什么?
0
0 122
文章 姚 鑫 · 五月 18, 2023 5m read

第八章 准备创建Productions - 规划 IRIS 服务器部署

容量和性能清单

IRIS 服务器的性能通过其处理峰值消息负载的能力来衡量。 IRIS 服务器的性能取决于许多组件和设置之间的复杂交互。 IRIS 服务器的负载主要取决于:

  • 消息的数量和大小——峰值负载和每日负载都很重要。
  • 每条消息都需要处理——在大多数情况下,希望简化消息的处理。例如,虽然验证消息有很多优势,但完整的验证可能会增加处理每条消息的大量处理负载。

在许多情况下, IRIS 系统上的消息负载会随着时间的推移而增加。这种增加可能是由于在生产中支持更多的业务功能或业务量的增加。服务器处理此负载的能力取决于许多组件和配置设置之间的复杂交互,包括 CPU 内核数量、多处理器架构、存储大小和速度、网络带宽和配置、操作系统缓冲区分配以及 IRIS 配置。没有简单的公式可以预测 IRIS 服务器的性能,因为它是一个复杂的交互,但可以估计、计划、原型和跟踪性能以确保 IRIS 服务器满足业务需求。

为确保 IRIS 服务器具有足够的容量并能够有效地处理其负载,应该

  1. 估计负载—— IRIS 系统将处理的消息数量是多少?服务器启动后负载会逐渐增加吗?消息需要保存多长时间才能存档并从服务器存储中删除?
  2. 规划能力——规划技能取决于实施类似 IRIS 服务器的经验。
0
0 187
文章 姚 鑫 · 五月 17, 2023 2m read

第七章 准备创建Productions - 使用 Productions 的路线图

以下部分概述了可能希望从中着手的文档资源,具体取决于角色。

IRIS 生产开发人员

如果是准备使用 IRIS 产品的开发人员,请参阅以下资源:

  1. Introducing Interoperability Productions 概述了 IRIS 互操作性和可能希望包含在productions中的选项,并提供了指向更详细信息的指针。

  2. 创建作品的最佳实践描述了设计、开发和维护作品的最佳实践。

  3. Developing Productions,反过来,它会向指出应用程序开发集中的特定主题:创建Productions和其他指南。

  4. 配置Productions描述了在作品中配置项目的详细信息。

IRIS 管理员

如果是准备使用产品的管理员,请参阅以下资源:

  1. Introducing Interoperability Productions 概述了产品功能。
  2. Managing Productions 解释了如何使用基于浏览器的管理门户来管理生产环境,并指出了使用管理门户执行的特定功能的详细描述。
  3. 配置制作解释了如何构建和配置制作和制作组件以及更新现有制作的配置。
  4. Monitoring Productions 解释了如何监控生产环境和各种生产组件。
0
0 127
文章 Hao Ma · 五月 17, 2023 12m read

Caché, IRIS在系统产生了最严重的问题时会产生错误信息并通知客户,但这并不足够。一是客户需要更多更灵活的通知消息,二是客户通常会有第3方的监控系统,因此得到Cache, IRIS的监控指标是必须的。

在所有的指标中,用户最关心的是以下几类:

  • 硬件资源的使用,CPU, 内存, IO性能
  • 数据库使用的硬盘的占用
  • Cache, IRIS Journal的硬盘占有
  • Mirror的状态
  • License的使用情况
  • Caché的性能指标

除此之外,第3方监控系统还需要获得Caché的一些系统信息,比如版本,instance名字等等。

指标的获得

有以下几个获得指标的方法

1. 系统仪表板及其Web服务

Caché的系统仪表板显示的数据包括:系统性能;系统运行状态 (运行时间,上一次备份,数据库,Journal状况等; 事务和进程情况;软件许可使用情况;任务,ECP等,还有就是错误和警告的数量。

系统仪表板包含4个子面板:Global和Routine统计数据;ECP统计数据;磁盘和缓冲器统计数据;系统资源统计数据。(IRIS和Caché稍有不同,缺少了“磁盘和缓冲器统计数据”) 。它们分别对应主仪表板中的相应模块,给出了更详细的数据。

image

Monitoring Web Service默认随系统的启动而开启,远程用户或者第3方系统可以访问该服务得到所以的系统监控指标,也就是系统仪表板上的所有数据。

0
1 560
文章 姚 鑫 · 五月 16, 2023 3m read

第六章 介绍Productions - 其他Production 选项

本章概述了与制作相关的其他选项。

用户门户

Studio 和管理门户等后端工具不同,用户门户(正式名称为 用户门户)旨在供最终用户直接使用。下面显示了一个例子:

用户门户旨在使最终用户能够执行以下任务:

  • 视图和仪表板,其中可以包括生产业务指标,将在本章后面介绍。
  • 查看和管理工作流任务,将在下一节介绍。
  • 向用户门户的其他用户发送消息,如上图左上角所示。

工作流

IRIS 为制作中的工作流程提供支持。工作流使得将人机交互合并到自动化业务流程中成为可能。企业内工作流的使用可能包括订单输入、订单履行、合同批准或服务台活动。

production 使用业务流程和业务操作集实现工作流。业务流程接收请求,组织完成该请求所需的任务,然后调用业务操作来执行这些任务。

这些业务操作中的每一个都将任务分配给一个工作流角色,该角色将任务放入属于该角色的每个用户的工作流收件箱中。要访问此收件箱,用户需要使用上一主题中介绍的用户门户。

当用户将任务标记为完成时,工作流引擎将继续执行下一个处理步骤。

业务活动监控

IRIS 包括将业务活动监控 (BAM) 作为企业集成项目的一部分所需的所有元素。

首先,它提供业务指标,这是专门的业务服务类,可以在可配置的时间间隔内计算特定值。

0
0 173
文章 姚 鑫 · 五月 15, 2023 4m read

第五章 介绍Productions - 业务流程和业务逻辑

业务流程和业务逻辑

本章描述业务流程中支持的逻辑种类。

介绍

业务流程是production的中间部分。它们接受来自production内部主机类(业务服务或业务流程)的请求,然后处理请求或将它们转发到production内部的其他主机类进行处理。

建议在production中进行以下分工:使用业务服务从生产外部接收输入并将其(作为消息)简单地转发到production中。使用业务流程来处理任何需要的业务逻辑。使用业务操作从生产内部接收消息,并简单地为生产外部的目的地生成输出。也就是说,将业务逻辑集中在业务流程中。

因此,IRIS 为业务流程中的复杂逻辑提供了广泛的支持,并且该逻辑可以由非技术用户定义。

首先,业务流程可以包含自己的复杂逻辑。它还可以使用以下可重复使用的物品:

数据转换计算消息内容并将更改应用到消息内容。

业务规则在决策点更改业务流程的行为,或根据消息类型、消息内容或消息来源将消息发送到特定目的地。

IRIS 提供的工具使非技术用户能够定义业务流程、数据转换和业务规则。这些用户无需编程或绘图技能即可直观地查看和编辑逻辑。

请注意,业务流程、数据转换和业务规则中可用的较低级别选项之间存在重叠。有关比较,请参阅 Developing Productions 中的“业务逻辑工具的比较”。在决定如何组织逻辑之前,有必要查看这些选项。

0
0 174
文章 姚 鑫 · 五月 12, 2023 4m read

第二章 介绍Productions - 互操作性制作简介

互操作性产品的目的是使能够连接系统,以便可以在它们之间转换和路由消息。要连接系统,需要开发、配置、部署和管理集成多个软件系统的产品。本章介绍产生式和一些基本术语。

介绍Productions

互操作性产品是用于轻松连接系统和开发互操作性应用程序的集成框架。产品提供到各种消息格式和通信协议的内置连接。可以轻松添加其他格式和协议,并通过编码或使用图形界面定义业务逻辑和消息转换。Products提供了消息的持久存储,允许跟踪消息的路径并审核消息是否成功传递。一部作品中的元素被称为business hosts。business hosts.有三种,用途不同,具体如下:

  • 业务服务Business services与外部系统连接并接收来自它们的消息。业务服务将消息中继到生产中的其他业务主机。
  • 业务流程Business processes允许定义业务逻辑,包括路由和消息转换。业务流程从生产中的其他业务主机接收消息,然后处理请求或将请求转发给其他业务主机。
  • 业务操作Business operations与外部系统连接,并将消息发送给外部系统。业务操作从生产中的其他业务主机接收消息,并通常将它们发送到外部系统。

下图提供了生产和业务主机的概念性概述。

业务主机通过消息相互通信。所有消息都存储在 IRIS 数据库中,可以通过管理门户查看。

0
0 188
文章 姚 鑫 · 五月 11, 2023 3m read

第一章 IRIS 基础知识:使用互操作性制作连接系统

本文介绍了如何将系统与 IRIS 数据平台互操作性产品连接在一起。

为什么要连接系统?

连接系统涉及允许来自一个系统的消息由另一个系统处理。例如,以下场景需要连接系统:

  • 为了提高效率,需要集成最初设计用于执行单一功能的系统。例如,可以通过集成跟踪库存、订购材料、记录销售和控制运输的各个系统来提高效率。
  • 合并后,在独立组织中执行相同功能的系统需要协同工作,以使统一组织有效。

将系统连接在一起时,可能会面临以下挑战:

  • 系统使用不同的通信协议:一个系统可能使用 TCP,另一个使用 SOAP,第三个使用 REST
  • 系统使用不同格式或基于不同标准的不同消息。
  • 可能需要保证消息成功传递到正确的系统,并能够检测和纠正故障。
  • 必须监视传输消息的系统,如果一次有太多消息,则提供消息队列,并监视整体系统性能以确保没有任何障碍。

虽然可以编写自定义应用程序来连接系统,但开发IRIS 产品会更容易、更快捷。 IRIS 提供了一个框架,允许连接系统并最大限度地减少或消除对自定义代码的需求。

介绍Productions

IRIS 产品是一个集成框架,用于轻松连接系统和开发应用程序以实现互操作性。产品提供与各种消息格式和通信协议的内置连接。可以轻松添加其他格式和协议,并通过编码或使用图形向导定义业务逻辑和消息转换。

0
0 151
文章 姚 鑫 · 五月 10, 2023 3m read

第五十四章 镜像中断程序

由于计划维护或计划外问题,镜像中一个或两个故障转移成员上的 IRIS 实例可能变得不可用。当故障转移成员的 IRIS 实例不可用时,其 ISCAgent 可能继续可用(如果主机系统仍在运行),也可能不可用(如主机系统关闭时)。本节提供了处理各种计划内和计划外中断场景的过程,这些场景涉及实例中断或一个或两个故障转移成员的全部中断。

如自动故障转移机制中所述,从主要故障转移成员到备份故障转移成员的安全和成功故障转移有两个要求:

  • 确认主实例确实已关闭,并且没有被临时网络问题隔离。
  • 确认备份具有来自主数据库的最新日志数据,因为它在主数据库发生故障时处于活动状态(请参阅镜像同步)或因为它已被手动捕获(请参阅主数据库的计划外中断而没有自动故障转移)。

在阅读和使用本材料时,可能需要参考自动故障转移规则来查看管理自动故障转移的规则。

有关使用镜像监视器确定备份故障转移成员是否处于活动状态或 DR 异步是否被赶上的信息,请参阅镜像成员日志传输和取消日志状态和监控镜像。

0
0 141
文章 姚 鑫 · 五月 9, 2023 2m read

第五十三章 管理镜像 - Production自动启动如何在镜像环境中工作

当镜像系统启动时(此时还没有成员成为主故障转移成员):

  1. IRIS 不会启动任何访问镜像数据的生产,即使在 ^Ens.AutoStart 中指定了生产。如果成员成为主实例,则这些产品将在那时开始。
  2. IRIS 确定实例上是否存在不访问镜像数据的命名空间。如前所述, 建议只在镜像成员上安装镜像产品。但是,如果安装了任何带有非镜像数据库的产品, IRIS 将启动 ^Ens.AutoStart 中指定的产品。 (此逻辑确保如果在镜像成员上安装了非镜像命名空间,它会在 IRIS 启动时启动。)

稍后,当该成员成为主要故障转移成员时, IRIS 会找到引用镜像数据的名称空间,以便它可以在这些名称空间中启动生产。如果遵循 的建议,则在实例成为主镜像成员之前,不应运行任何生产访问镜像数据。 IRIS 在开始生产之前首先检查生产是否已经在运行,特别是:

  1. IRIS 通过计算在命名空间中作为 _Ensemble 用户运行的作业来确定生产是否已经在运行。如果有两个以上的此类作业,表明生产已经在运行, IRIS 会在消息日志中记录警告,并且不会尝试开始生产。
  2. 如果正如预期的那样,生产没有运行, IRIS 会自动启动 ^Ens.AutoStart 中指定的生产。
0
0 160
文章 姚 鑫 · 五月 8, 2023 3m read

第五十二章 管理镜像 - 使用^DATABASE例程重新创建现有镜像数据库

使用^DATABASE例程重新创建现有镜像数据库

^DATABASE 例程的 10) Recreate a database 选项使可以在不更改数据库名称或大小的情况下清除现有数据库中的数据。 (有关例程的信息,请参阅 ^DATABASE。)可以将此选项用于镜像数据库,但必须在出现数据库的每个镜像成员上使用它,并且顺序与使用创建数据库选项的顺序相同创建一个新的镜像数据库——首先在主数据库上,然后是备份数据库,然后是数据库作为镜像一部分的任何异步数据库。

注意:如果使用 10) 重新创建数据库选项在主数据库上重新创建数据库,则必须对备份和镜像中的任何 DR 异步操作重复该操作;如果不这样做,数据库可能会在发生故障转移或灾难恢复时变得过时。强烈建议也对报告异步重复重新创建操作。

挂载/卸载镜像数据库

可以在任一故障转移成员上安装/卸载镜像数据库。但是,如果在备份故障转移成员上卸载,数据库将保持“陈旧”状态,直到重新安装,之后镜像会尝试自动赶上数据库。如果所需的日志文件在主要故障转移成员上可用,自动更新应该会成功,但如果主要成员上的任何所需日志文件已被清除,则必须从主要成员上的最近备份还原数据库。

0
0 139
文章 姚 鑫 · 五月 7, 2023 4m read

第五十一章 管理镜像 - 镜像的数据库注意事项

镜像的数据库注意事项

本节提供配置和管理镜像数据库时要考虑的信息:

IRIS 实例兼容性

镜像中的 IRIS 实例必须以多种方式兼容,如下所示:

  1. 镜像中的所有 IRIS 实例必须:
  • 使用相同的字符宽度(8 位或 Unicode;请参阅安装指南“准备安装”一章中的字符宽度设置)。
  • 使用相同的语言环境(请参阅系统管理指南的“配置 IRIS”一章中的使用管理门户的 NLS 设置页面)。

注意:这些要求的一个例外是使用基于 ISO 8859 Latin-1 字符集的区域设置的 8 位实例与使用相应宽字符区域设置的 Unicode 实例兼容。例如,使用 enu8 语言环境的 8 位主实例与使用 enuw 语言环境的 Unicode 备份实例兼容。但是,使用 heb8 语言环境的 8 位主实例与使用 hebw 语言环境的 Unicode 备份实例不兼容,因为这些语言环境不基于 ISO 8859 Latin-1

  1. 故障转移成员必须启用相同的数据库块大小。此外,在故障转移成员上启用的大小必须在异步成员上启用。
0
0 141
文章 姚 鑫 · 五月 6, 2023 4m read

第五十章 管理镜像 - 在报告异步上使用 Dejournal 过滤器

在报告异步上使用 Dejournal 过滤器

仅在报告异步上,可以在给定镜像上设置用户定义的 dejournal 过滤器,让为每个日志记录执行自己的代码以确定哪些记录应用于该镜像中的读写数据库。定义过滤器后,可以在任意数量的镜像上设置它,并且可以随时设置、更改和删除过滤器。

重要提示:此功能仅适用于高度专业化的情况。应仔细考虑替代方案。为了控制将哪些全局变量复制到镜像成员,到非镜像数据库的全局映射提供了一种更简单、轻量级的解决方案。对于监控应用程序数据库的更新,在应用程序级别构建的解决方案通常更加灵活。

dejournal 过滤器允许报告异步跳过从主要接收的日志文件中的某些记录的 dejournaling。但是,这仅适用于读写数据库——最初以读写报告异步方式添加到镜像中的数据库,或者自数据库以只读方式添加到镜像后已清除 FailoverDB 标志的数据库。 (有关 FailoverDB 标志和镜像数据库在报告异步时的装载状态的详细说明,请参阅清除报告异步镜像成员上的 FailoverDB 标志。)如果在数据库上设置了 FailoverDB 标志,这意味着该数据库被装载为读取- 只是,dejournal 过滤器代码仍然执行,但所有记录总是在该数据库上 dejournaled,无论过滤器代码返回什么。

0
0 224
文章 姚 鑫 · 五月 5, 2023 6m read

第四十九章 管理镜像 - 停止备份和异步成员的镜像

停止备份和异步成员的镜像

可以暂时停止在备份或异步成员上进行镜像。例如,可能希望在短时间内停止备份成员上的镜像以进行维护或重新配置,或者在主数据库维护期间停止镜像,并且可能暂时停止报告异步成员上的镜像以减少网络使用。为此,请执行以下操作:

  1. 导航到要停止镜像的成员的“系统操作”>“镜像监控”页面
  2. 如果该成员是备份故障转移成员,请单击停止在此成员上镜像按钮。
  3. 如果该成员是异步成员,请单击希望异步停止镜像的镜像所在行中的“在此成员上停止镜像”链接。 (停止一个镜像的镜像不会影响报告异步所属的其他镜像。)

该操作需要几秒钟。当刷新镜像监视器时,“在此成员上停止镜像”将替换为“在此成员上开始镜像”,可以使用它来恢复镜像。

重要提示:当停止对某个成员进行镜像时,镜像将保持停止状态,直到如前所述再次明确启动它。镜像的重新初始化或成员的重新启动都不会在成员上启动镜像。

注意:还可以使用镜像 SYS.Mirror.StopMirror()SYS.Mirror.StartMirror() API 方法或 ^MIRROR 例程(请参阅使用 ^MIRROR 例程)来执行这些操作任务。

管理数据库取消日志记录

如镜像同步中所述,去日志化是通过将日志数据从主要故障转移成员应用到另一个镜像成员上的镜像数据库来同步镜像数据库的过程。

0
0 175