文章 姚 鑫 · 六月 4, 2023 4m read

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

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

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

介绍

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

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

业务服务负责以下活动:

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

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

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

0
0 94
文章 姚 鑫 · 五月 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 128
文章 姚 鑫 · 五月 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
文章 姚 鑫 · 五月 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 123
文章 姚 鑫 · 五月 18, 2023 5m read

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

容量和性能清单

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

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

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

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

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

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

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

用户门户

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

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

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

工作流

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

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

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

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

业务活动监控

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

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

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

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

业务流程和业务逻辑

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

介绍

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

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

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

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

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

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

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

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

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

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

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

介绍Productions

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

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

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

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

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

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

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

为什么要连接系统?

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

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

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

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

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

介绍Productions

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

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

第五十四章 镜像中断程序

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

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

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

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

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

0
0 143
文章 姚 鑫 · 五月 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 162
文章 姚 鑫 · 五月 8, 2023 3m read

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

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

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

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

挂载/卸载镜像数据库

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

0
0 140
文章 姚 鑫 · 五月 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 146
文章 姚 鑫 · 五月 6, 2023 4m read

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

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

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

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

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

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

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

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

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

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

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

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

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

管理数据库取消日志记录

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

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

第四十八章 管理镜像 - 将备份降级为 DR 异步

除了将 DR 异步提升为故障转移成员外,还可以执行相反的操作 — 将不是当前主要成员的故障转移成员降级为 DR 异步,这样镜像就只剩下一个故障转移镜像。当不希望故障转移成员响应镜像配置中的临时更改时,这在计划中断情况下很有用。例如:

  • 当关闭备份故障转移成员及其主机系统进行维护并且主系统上的 IRIS 实例重新启动(无论出于何种原因)时,它在重新启动后无法成为主系统,因为它无法联系备份实例或其 ISCAgent,因此无法确定它是否是最近的主节点。但是,如果在关闭备份之前将备份降级为 DR 异步,如备份故障转移成员的维护中所述,则可以避免这种风险,因为主要知道没有当前备份,因此它可以在重新启动后成为主要。然后,可以在重启后将降级的 DR 异步提升为备份(如将 DR 异步成员提升为故障转移成员中所述),
  • 当通过故意故障转移到 DR 异步来测试灾难恢复功能时,如计划故障转移到提升的 DR 异步中所述,并关闭主实例以触发故障转移,可能希望重新启动它以在没有它的情况下保持同步自动成为备份(因为在真正的灾难中它不太可能可用)。在这种情况下,可以在重新启动之前将其降级为异步 DR(通过其 ISCAgent),然后在准备好后将其提升为故障转移成员。
0
0 131
文章 姚 鑫 · 五月 2, 2023 5m read

第四十六章 管理镜像 - 更新镜像成员网络地址

当必须更新一个或多个镜像成员(包括主要成员)的一个或多个网络地址时,如编辑或删除故障转移成员中所述,通常会在主要成员上更改此信息。当您保存更改时,主节点将它们传播到所有连接的镜像成员(并在它们重新连接时传播到断开连接的成员)。不能更改连接的备份或异步成员上的任何镜像成员网络地址,因为镜像成员必须从主成员接收所有此类信息。但是,一般情况下有一些例外情况,如下所示:

  • 由于 IRIS 实例的超级服务器端口是其常规配置的一部分,因此必须在本地进行更改。因此,镜像成员的超级服务器端口是唯一始终在成员本身上更新的镜像网络信息。要更改主服务器的超级服务器端口,请转到主服务器的“编辑镜像”页面,要更改备份的,请转到备份的“编辑镜像”页面,依此类推。

注意:当在“编辑网络地址”对话框中单击本地成员超级服务器端口的“编辑端口”链接时,将出现一个包含管理门户内存和启动页面的对话框,以便更改端口号。但是,不要直接转到此页面来更改镜像成员的超级服务器端口;始终使用“编辑镜像”或“编辑异步配置”页面和“编辑网络地址”对话框来进行此更改。

  • 当故障转移成员或异步成员断开连接并且主要网络地址已更改时,必须首先确保当前主要成员上的所有镜像网络地址都是正确的,然后更新断开连接的成员或成员上的主要网络地址(请参阅编辑或删除故障转移成员或编辑或删除异步成员)。
0
0 124
文章 姚 鑫 · 五月 1, 2023 5m read

第四十五章 管理镜像 - 使用 ^MIRROR 状态监视器

使用 ^MIRROR 状态监视器

^MIRROR 例程提供基于字符的镜像状态监视器。 ^MIRROR Status Monitor 选项显示镜像成员的状态,包括类型、状态、日志传输延迟和 dejournal 延迟(请参阅镜像成员日志传输和 Dejournaling 状态)。监视器可以在任何镜像成员上运行,但在故障转移成员上运行它会提供有关仲裁器配置和所有连接的异步成员的信息,而在异步成员上运行它则不会。

要启动状态监视器,请打开终端窗口,在 %SYS 命名空间中运行 ^MIRROR 例程(请参阅使用 ^MIRROR 例程),然后从镜像状态菜单中选择状态监视器。

0
0 185
文章 姚 鑫 · 四月 30, 2023 3m read

第四十四章 管理镜像 - 传入日记传输率

传入日记传输率

在备份和异步成员的镜像成员状态列表下方,自上次刷新镜像监视器以来日志数据从主服务器到达的速率显示在该成员的传入日志传输率下。

首次加载镜像监控页面时,该区域显示文本---(将在刷新时显示)。下次刷新页面时,显示的信息取决于传入的日志数据是否压缩(参见镜像流量压缩),如下:

  • 如果日志数据未压缩,则传入日志数据速率以每秒千字节 (KB) 为单位提供,例如:
42345 KB/s (22s interval)
  • 如果传入的日志数据是压缩的,则显示包括传入的压缩数据速率、传入的日志(未压缩)数据速率以及后者与前者的比率,例如:
14288 KB/s network; 39687 KB/s journal; ratio 2.78:1 (143s interval)

镜像数据库状态

重要提示:在备份和 DR 异步成员上,镜像监视器页面上的丢失镜像数据库报告会提醒存在于主成员上但不存在于当前成员上的任何镜像数据库。这一点非常重要,因为备份或 DR 异步(如果提升为备份)如果没有完整的镜像数据库集,则无法在主中断的情况下成功接管。列出了每个缺失数据库的完整镜像数据库名称。如果没有缺失数据库,则不会显示缺失镜像数据库报告。

0
0 177
文章 姚 鑫 · 四月 29, 2023 4m read

第四十三章 管理镜像 - 镜像成员日记传输和取消日记状态

当一个 IRIS 实例属于一个镜像时,它的成员类型和状态、日志传输状态和 dejournaling 状态由镜像监视器和 ^MIRROR 例程状态监视器选项显示,如监视镜像中所述。

下表描述了可能显示的类型和状态;第一个显示特定成员类型的特定状态,而第二个中的状态适用于所有成员类型。

Type Status Description
Failover `Primary Current primary.
Failover Backup Connected to primary as backup.
Failover In Trouble 作为主要的,由于与备份失去连接而处于故障状态;
Disaster Recovery Connected Connected to primary as async.
Read-Only Reporting Connected (as above)
Read-Write Reporting Connected (as above)
Indeterminate Not Initialized 成员未初始化(尚未加载镜像配置)。
0
0 229
文章 姚 鑫 · 四月 28, 2023 4m read

第四十二章 管理镜像 - 监控镜像

本章涵盖与管理和维护可操作的 IRIS 镜像相关的主题。

监控镜像

可以使用以下两种方法之一监视现有镜像的操作:

  • 管理门户的镜像监控页面
  • ^MIRROR 例程的状态监视器选项

这两种方法都显示有关镜像及其成员的操作状态和传入日志传输率的信息,以及有关镜像数据库状态的信息。此外,镜像监视器还允许您对镜像数据库执行多项操作。

监控镜像通信进程描述了在镜像成员上运行的镜像通信进程。

注意:基本镜像成员信息,包括指向镜像监视器的链接,也会出现在管理门户主页消息窗格中(请参阅系统管理指南的“使用管理门户”一章中的管理门户消息窗格。

许多与数据库和镜像相关的操作,例如安装或卸载数据库以及将数据库添加到镜像或从镜像中删除数据库,都记录在消息日志中。

使用镜像监视器

要显示镜像监视器,请导航到任何镜像成员上的“系统操作”>“镜像监视器”页面。

在故障转移成员上,镜像监视器包含以下按钮和部分:

  • 查看镜像日志文件按钮允许您查看和搜索成员的镜像日志文件或非镜像日志文件;有关详细信息,请参阅数据完整性指南的“日志记录”一章中的查看日志文件。

  • Stop Mirror On This Member 按钮(仅备份)暂时停止备份镜像,如停止备份和异步成员镜像中所述。

  • 将备份降级为 DR 异步的两个按钮之一,使镜像只有一个故障转移成员;有关详细信息,请参阅将备份降级为 DR 异步。

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

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

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

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

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

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

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

0
0 161
文章 姚 鑫 · 四月 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
文章 姚 鑫 · 四月 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 158
文章 姚 鑫 · 四月 20, 2023 3m read

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

在镜像中激活日志加密

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

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

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

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

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

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

0
0 169