文章
· 五月 2, 2023 阅读大约需 5 分钟
第四十六章 管理镜像 - 更新镜像成员网络地址

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

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

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

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

0 0
0 57
文章
· 五月 17, 2023 阅读大约需 2 分钟
第七章 准备创建Productions - 使用 Productions 的路线图

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

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

IRIS 生产开发人员

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

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

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

  3. Developing Productions,反过来,它会向指出应用程序开发集中的特定主题:创建Productions和其他指南。
  4. 配置Productions描述了在作品中配置项目的详细信息。

IRIS 管理员

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

0 0
0 67

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

定义消息处理程序方法

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

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

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

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

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

0 0
0 41

嗨,开发者,

欣赏InterSystems Bilibili上的新视频:

为什么水平可扩展性就像团队合作 @ 2022 年全球峰会

//player.bilibili.com/player.html?aid=997773248&bvid=BV1xs4y1r7Yo&cid=1179092746&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

1 0
0 58
文章
· 八月 30, 2023 阅读大约需 1 分钟
使用代码获取数据库剩余空间

大家可以通过InterSystems IRIS 管理门户SMP查看当前数据库剩余空间,路径是 Management Portal: System Operation > Database

当然大家也可以通过下面的代码查看数据库的可用磁盘空间:

0 0
0 46
文章
· 一月 31 阅读大约需 21 分钟
用Java开发互操作产品 - PEX

InterSystems IRIS、Health Connect和上一代的Ensemble提供了优秀的互操作架构,但即便有低代码开发能力,很多开发者还是希望能用自己的技术栈语言在InterSystems的产品上开发互操作产品。

考虑到互操作产品本身的开放性要求和各个技术栈背后庞大的生态价值,InterSystems IRIS和Health Connect提供了Production EXtension (PEX)架构,让开发者使用自己的技术栈语言来开发互操作解决方案。目前PEX支持Java、.net、Python。

这里我们介绍使用Java利用PEX进行互操作产品的开发。

一 InterSystems IRIS上使用Java开发的基础

在进入PEX主题前,需要简单介绍一下Java在InterSystems IRIS上开发的各种技术选项,因为PEX也是以这些技术选项为基础的。

2 0
1 77
文章
· 三月 19 阅读大约需 3 分钟
IRIS/Caché SQL优化经验分享 - 检查索引的完整性

Caché/IRIS的特点是运行Global的修改,而这个修改和SQL是无关的,因此非常容易出现数据库表数据完整性的问题,也就是表中的数据是不是符合定义的表约束。

这样的情况非常常见。有些是人为的对Global的错误修改, 有些是应用系统的事务性管理写的不对,造成事务回滚的时候破坏了索引的完整性。无论什么原因,只要使用Global操作,破坏SQL的完整性非常难以避免。结果就是SQL查询给出错误结果。

最简单的解决方法就是执行“索引检查(Validate Indices)"

我们来做个实验

- 先修改一个global: 如下图, 将Patient表的一个记录的SEX字段,从'M'改到‘F'.

运行索引检查, 结果会提示您问题在什么地方。

1 0
0 16
文章
· 五月 4, 2023 阅读大约需 6 分钟
IRIS, Caché监控指导 - 警告和告警

当系统发生严重危机,一般错误,以及其他需要管理员关注的其他事件发生时, 管理员必须及时的收到系统发出的警告信息。

上篇文章中介绍了控制台日志。这是个文本文件,包含几乎所有的系统级别的错误信息,并且有严重级别的标识,那么使用工具来监控控制台日志文件,并给管理员发送通知是可行的方案吗?

当然。实际上,有些用户正是这样来管理Caceh'/IRIS的。他们有自己熟悉的监控工具,实时读取控制台日志,分析内容,并完成警告通知的发送。

这篇文章我来介绍的是Cache'/IRIS内置的处理警告的机制和配置方法。 通过把严重的错误和事件写入另一个文本文件alert.log,并配置邮件,SNMP, API接口发送通知,可以基本的实现caceh'/IRIS系统的警告通知工作。

Alerts.log

控制台日志中最严重的两个级别(级别2和3), 的记录会被写入另一个文本文件,名字是Alert.log。 默认存储于\installDir\mgr\路径。

  • 在操作门户中“系统>系统日志>控制台日志” ,你会发现 Alerts.log的内容会以红色的字体显示在最上方。比如下图中有2个严重级别的Alert。

2 0
0 252
文章
· 六月 13, 2023 阅读大约需 13 分钟
IRIS镜像的监控和警告

在维护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模式。

1 0
1 289

第五十二章 开发Productions - ObjectScript Productions - 不常见的任务 - 在目标是动态的情况下渲染连接

在目标是动态的情况下渲染连接

当用户选择业务主机时,管理门户会自动显示与给定业务主机之间的连接。例如:

为此,IRIS 读取业务主机的配置设置并使用它们。

但是,如果业务服务在运行时动态托管其目标, IRIS 将无法自动显示此类连接。在这种情况下,要显示此类连接,请实施 OnGetConnections() 回调方法。 IRIS 在呈现配置图时自动调用此方法(默认情况下不执行任何操作)。

OnGetConnections() 具有以下签名:

ClassMethod OnGetConnections(Output pArray As %String, item As Ens.Config.Item) [ CodeMode = generator ]

其中参数如下:

0 0
0 55
文章
· 八月 31, 2023 阅读大约需 1 分钟
常见问题--如何根据ID重建索引

InterSystems 常见问题解答

通过在持久类(=table)定义中提供的%BuildIndices() 方法的参数中指定要重建索引的 ID 的开始值和结束值,您可以仅重建该范围内的索引。

例如,要仅针对 ID=10 到 20 重建 Sample.Person 类中的 NameIDX 索引和 ZipCode 索引,请执行以下代码(ID 范围在第 5 个和第 6 个参数中指定)。

0 0
0 91
文章
· 五月 4, 2023 阅读大约需 11 分钟
在 Docker 中配置镜像

我们客户的一个共同需求是配置 HealthShare HealthConnect 和 IRIS的高可用性模式。

市场上的其他集成引擎通常被宣传为具有“高可用性”配置,但事实并非如此。通常,这些解决方案与外部数据库一起使用,因此,如果这些数据库未配置为高可用性,当发生数据库崩溃或与它的连接丢失时,整个集成工具将变得不可用。

对于 InterSystems 解决方案,这个问题不存在,因为数据库是工具本身的一部分和核心。 InterSystems 如何解决高可用性问题?深奥的配置会把我们拖入异化和疯狂的漩涡?不!在 InterSystems,我们倾听并处理了您的投诉(正如我们一直努力做的那样 ;)),并且我们已将镜像功能提供给所有用户和开发人员。

镜像

镜像如何工作?这个概念本身非常简单。如您所知,IRIS 和 HealthShare 都使用一个日志系统,该系统记录每个实例的数据库上的所有更新操作。这个日志系统是后来帮助我们在崩溃后恢复实例而不会丢失数据的系统。好吧,这些日志文件在镜像中配置的实例之间发送,允许并保持镜像中配置的实例永久更新。

架构

让我们简要解释一下在 Mirror 中配置的系统架构是什么样的:

1 0
0 223
文章
· 五月 19, 2023 阅读大约需 3 分钟
第九章 Productions最佳实践 - Productions开发的最佳实践

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

Productions开发的最佳实践

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

项目目标

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

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

项目交付

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

1 0
0 65
文章
· 七月 12, 2023 阅读大约需 4 分钟
如何利用 InterSystems 开放交换工具进行快速 API 开发

在本文中,我将分享我们在 2023 年全球峰会技术交流室中提出的主题。我和@Rochael.Ribeiro

借此机会,我们就以下话题进行探讨:

  • 用于快速 API 的开放交换工具
  • 开放API规范
  • 传统与快速 Api 开发
  • 复合 API(互操作性)
  • 规范优先或 API 优先方法
  • API 治理和监控
  • 演示(视频)

用于快速 API 的开放交换工具

当我们谈论快速现代 API 开发(Rest / json)时,我们将使用两个 Intersystems Open Exchange 工具:

第一个是用于快速开发 API 的框架,我们将在本文中详细介绍。

https://openexchange.intersystems.com/package/IRIS-apiPub

1 0
0 79
文章
· 九月 3, 2023 阅读大约需 7 分钟
在 Python 上使用IRIS REST API 进行 SQL 迁移

对于即将到来的Python 竞赛,我想制作一个小型演示,介绍如何使用 Python 创建一个简单的 REST 应用程序,该应用程序将使用 IRIS 作为数据库。使用这个工具

  • FastAPI框架,高性能,易学,快速编码,可用于生产
  • SQLAlchemy 是 Python SQL 工具包和对象关系映射器,为应用程序开发人员提供 SQL 的全部功能和灵活性
  • Alembic 是一个轻量级数据库迁移工具,可与 SQLAlchemy Database Toolkit for Python 一起使用。
  • Uvicorn 是 Python 的 ASGI Web 服务器实现。

1 0
0 69
文章
· 十一月 20, 2023 阅读大约需 2 分钟
Java 大赛作品展示--基于IRIS 原生 Java API 的Global编辑器

这是Java 编程比赛的相关文章。

我决定推出一个基于 IRIS Native API for Java 的 CRUD++ Global编辑器。
++因为它不仅仅是C reate、 R ead、 U pdate、 D elete
Global可视化对于立即查看结果始终很重要。

  • 为此,我使用模仿 ZWrite 的树查看器扩展了 API,并且还允许检查子树。
  • $Query Style Navigator 正向和反向操作可轻松找到感兴趣的全局节点。
  • 最后,ZKill 添加了一个选项,可以删除全局节点的内容而不删除下面的子树。

这需要在服务器端有一个小的帮助器类作为默认 API 的扩展

我的策略是拥有一个可从命令行使用的相当适度的界面
就像在 Docker 控制台或终端上一样,并使其尽可能简单。
花哨的图形界面只会分散示例的基本内容。

0 0
0 70

近日,InterSystems宣布 InterSystems IRIS® Cloud SQL 和 InterSystems IRIS® Cloud IntegratedML® 服务全面上市。 这些全面托管的云原生智能数据服务使开发人员能够轻松地在SQL环境中构建云原生数据库和机器学习(ML)应用程序。

通过 Cloud SQLCloud IntegratedML,开发人员可以访问下一代关系数据库即服务(DBaaS),DBaaS快速且易于配置和使用。 嵌入式AutoML功能支持开发人员在全面托管的、弹性的云原生环境中,仅仅通过几条类似SQL的命令即可轻松开发并执行机器学习模型。

0 0
0 17
文章
· 五月 4, 2023 阅读大约需 4 分钟
第四十八章 管理镜像 - 将备份降级为 DR 异步

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

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

0 0
0 52

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

//player.bilibili.com/player.html?aid=355449009&bvid=BV1MX4y1z79w&cid=1108550416&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

0 0
0 94
文章
· 六月 14, 2023 阅读大约需 3 分钟
使用LangChain 修复 SQL

本文是 SqlDatabaseChain 的简单快速入门(我所做的)。

希望大家会感兴趣。

非常感谢:

sqlalchemy-iris 作者@Dmitry Maslennikov

您的项目使我的试验变得可能。

文章脚本使用 openai API,因此请注意不要在外部共享您不打算共享的表信息和记录。

如果需要,可以插入本地模型。

2 0
1 190
文章
· 九月 5, 2023 阅读大约需 11 分钟
HTTP请求监控响应时间

嗨,开发者们!

今天我想谈谈一个让我感到困难的话题。我相信你们中的很多人一定已经遇到过这种情况(所谓的“瓶颈”)。由于这是一个广泛的主题,因此本文将仅重点关注识别可能导致缓慢问题的传入 HTTP 请求。我还将向您提供我开发的一个小工具来帮助识别它们。

我们的软件变得越来越复杂,处理来自不同来源的大量请求,无论是前端还是第三方后端应用程序。为了确保最佳性能,必须有一个能够记录一些关键测量的日志系统,例如响应时间、global引用的数量以及每个 HTTP 响应执行的代码行数。作为工作的一部分,我参与了 EMR 软件的开发以及事件分析。由于用户负载主要来自 HTTP 请求(REST API 或 CSP 应用程序),因此在发生普遍缓慢问题时进行此类测量的需求变得显而易见。

0 0
0 107
文章
· 三月 20 阅读大约需 2 分钟
IRIS/Caché SQL优化经验分享 - 复合索引的使用

复合索引(combined index)也被称为组合索引或者联合索引,顾名思义,就是一个索引建立在多个字段上。当用这些字段为条件查询时,相比对每个字段单独做索引,复合索引能给出很好的性能,还能减少索引的数量。

为什么能减少索引的数量? 通常来说,也就是在其他数据库,联合索引符合”最左匹配“的原则。在BING上搜索“复合索引,得到的第一个搜索结果的这篇文章就说的就很简单明了:

下面这个SQL语句在 列X,列Y,列Z 上建立了一个复合索引。

mysql
CREATE INDEX 索引名 ON 表名(列名X, 列名Y, 列名Z);

其实这相当于建立了三个索引,分别是:

0 0
0 32