嗨社区!
想与您分享我在Telegram中使用GPT创建“我自己的”聊天的练习。
这个应用需要用到 Open Exchange 上的两个组件:@Nikolay Solovyev 的Telegram Adapter和@Kurro Lopez的IRIS Open-AI 
因此,通过此示例,您可以在 Telegram 中使用 ChatGPT 设置自己的聊天。
让我们看看如何让它发挥作用!
InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。
嗨社区!
想与您分享我在Telegram中使用GPT创建“我自己的”聊天的练习。
这个应用需要用到 Open Exchange 上的两个组件:@Nikolay Solovyev 的Telegram Adapter和@Kurro Lopez的IRIS Open-AI 
因此,通过此示例,您可以在 Telegram 中使用 ChatGPT 设置自己的聊天。
让我们看看如何让它发挥作用!
如果您已经使用%UnitTest 框架构建了单元测试,或者正在考虑这样做,请查看InterSystems 测试管理器Test Manager。
无需离开 VS Code,您现在可以浏览单元测试、运行或调试它们,并查看之前的运行结果。
InterSystems 测试管理器适用于 ObjectScript 扩展支持的两种源代码位置范例。您的单元测试类可以在 VS Code 的本地文件系统(“客户端编辑”范例)或服务器命名空间(“服务器端编辑”)中掌握。在这两种情况下,实际测试运行都发生在服务器命名空间中。
欢迎反馈。
当数据资产已经成为医院的核心资产,如何有效利用数据核心资产,持续挖掘互联互通平台和各种数据中心的价值,成为医疗信息化工作的重中之重。欢迎扫码注册(或点击链接注册)观看多位大咖针对这一话题的解读。
.png)
在开发业务流程时,请考虑以下关键原则:
BPL 中的 中执行)。当业务流程A同步调用业务流程B时,流程A不会继续,直到收到响应。如果进程 A 需要完成对其他进程 (B) 的调用才能完成自身,并且如果这些进程共享参与者作业池,则如果没有空闲的参与者作业来处理被调用的业务流程,则参与者池可能会陷入死锁( ).
发生这种情况是因为在被调用业务流程返回之前,调用业务流程无法完成并释放参与者作业,但被调用业务流程无法执行,因为没有空闲的参与者作业来执行它。
另请注意, 无法在真正的同步调用期间关闭。
最好使用 并在 OnResponse() 方法中处理响应消息。如果需要同步调用,可以通过配置被调用的业务流程(B)使用自己的作业池来避免这个问题。
FIFO 功能。因为来自
本页介绍如何定义业务服务类。
提示: IRIS® 提供使用特定入站适配器的专用业务服务类,其中之一可能适合需要。如果是这样,则不需要编程。有关部分列表,请参阅 Introducing Interoperability Productions 中的连接选项。
业务服务负责接受来自外部应用程序的请求到 IRIS。下图显示了它是如何工作的:
请注意,此图仅显示数据的输入流,而不是可选响应。
业务服务负责以下活动:
TCP 消息等)。业务服务的目的通常是接收数据输入。在大多数情况下,业务服务有一个与之关联的入站适配器。但是,在某些情况下不需要适配器,因为应用程序能够将请求消息发送到服务中,或者因为业务服务已被编写为处理特定类型的外部调用,例如来自复合应用程序的调用。这种类型的业务服务称为无适配器业务服务。
当业务服务具有入站适配器时,它处于数据拉取(而不是推送)模式。在这种模式下,业务服务会定期轮询适配器,看它是否有数据。
InterSystems 支持的硬件OS平台更新 2023年2季度
我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架列表最近和即将发生的变化的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的已知的情况,但预测未来是一项棘手的工作,不应将其视为承诺的路线图。
话虽如此,关于更新……
Hi 开发者们!一年一度的 InterSystems IRIS 开发者大奖赛已启动!
我们非常高兴地邀请大家参加此次编程大赛——使用 InterSystems IRIS 数据平台构建开源解决方案!
时间: 2023年6月12日-7月9日(美国东部时间)
奖金池: 26,000 美元
.png)
除了同步(等待)和异步(不等待)的直接选择之外,还可以使用称为延迟响应的机制在 IRIS 之外发送消息。
假设一个业务流程希望在 IRIS 之外调用一个动作。它向业务操作发送请求,业务操作执行调用并返回响应。业务流程是任何响应的预期接收者;业务操作只是请求发出和响应进来的方式。如果业务流程同步发出请求,或者如果它发出请求并请求异步响应,业务操作将中继回响应。下图总结了这种机制。
现在假设从业务流程接收请求的业务操作已被编写为使用延迟响应功能。原始发件人不知道响应将被业务操作延迟这一事实。延迟响应是业务运营开发人员做出的设计决策。如果业务操作确实延迟了响应,那么当原始发送者在延迟期结束时收到响应时,它不知道响应曾经被延迟过。
业务操作通过调用其 DeferResponse() 方法来生成表示原始发送者和原始请求的令牌来延迟响应。业务运营还必须找到一种方法将此令牌传达给外部实体,然后外部实体负责将此令牌包含在对 IRIS 的任何后续响应中。例如,如果外部目的地是电子邮件,业务操作可以在外发电子邮件的主题行中包含令牌字符串。接收此电子邮件的实体可以从请求主题行中提取此令牌,并在响应主题行中使用它。在下图中,项目 t 代表此令牌。
当定义业务主机类(可能还有适配器类)时,应该考虑如何控制这些项目的任何设置的默认值。 IRIS 可以从三个来源之一获取设置的默认值:
production定义。IRIS 实例定义的值,但存储在production定义之外。有关信息,请参阅配置制作中的定义制作默认值。InitialExpression 属性关键字确定。某些设置取决于环境,例如 地址或文件路径;通常,将这些设置配置为在生产之外提供它们的源,而其他设置(例如 )是设计决策,并且很可能开发应用程序以从生产定义中检索这些设置。
可以开发作品,使配置设置来自不同的来源。主要目的是更轻松地将制作从一个 IRIS 实例转移到另一个实例,例如从测试转移到现场。
定义生产后,可以在管理门户的生产配置页面上更改生产和业务主机设置的来源。有关详细信息,请参阅配置制作。
默认设置的使用允许在定义之外定义Productions和业务主机设置,可以在生产升级期间保留它们。为了便于更新产品或将产品从一个系统移动到另一个系统,可以省略设置并从系统上安装的结构中获取它们的值。当设置缺失时, 会从生产定义之外检索默认设置(如果存在的话)。
Manifest也许应该被翻译成“清单”, 字典上是这么解释的: 提供船舶及其货物和其他物品、乘客和船员的全面细节的文件,供海关官员使用,比如:飞机上的乘客或货物清单; 一辆货运列车的车厢清单。
在计算机语言中, Manifest可以是各种格式,用的最多的是xml和json,在IRIS中,manifest是xml格式的, 放在objectscript类的XDATA块里。
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.AbstractLogger) As %Status [ CodeMode = objectgenerator, Internal ]
{
Quit ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "MyInstall")
}
XData MyInstall [ XMLNamespace = INSTALLER ]{
<Manifest>
<SystemSetting Name="Config.config.gmheap" Value="50000"/>
<SystemSetting Name="Config.config.locksiz" Value="5000000"/>
<SystemSetting Name="Config.config.routines" Value="256"/>
<SystemSetting Name="Config.config.globals8kb" Value="600"/>
<SystemSetting Name="Config.config.wijdir" Value="/cache/wij"/>
<SystemSetting Name="Config.Journal.CurrentDirectory" Value="/journal1"/>
<SystemSetting Name="Config.Journal.AlternateDirectory" Value="/journal2"/>
<SystemSetting Name="Config.Miscellaneous.EnableLongStrings" Value="1"/>
<Namespace Name="TUOTANTO" Create="yes" Code="TUOTANTO-R" Data="TUOTANTO-D">
<Configuration>
<Database Name="TUOTANTO-R" Create="yes" Dir="/cache/database/TUOTANTO-R"/>
<Database Name="TUOTANTO-D" Create="yes" Dir="/cache/database/TUOTANTO-D"/>
</Configuration>
</Namespace>
</Manifest>
}
}
互操作性产品允许连接可能使用不同通信协议和不同消息格式的系统。可以使用 Java、.NET、ObjectScript、 或业务流程、数据转换和业务规则的图形编辑器来开发产品。
文档
ObjectScript 中开发PEX 在 或 .NET 中开发在线内容
本页介绍产品开发的过程。
只能在具有特定 应用程序的支持互操作性的名称空间内使用 互操作性。创建类时,应避免使用保留的包名称。以下小节提供了详细信息。
支持互操作性的名称空间是具有全局映射、例程映射和包映射的名称空间,这些映射使支持产品的类、数据和菜单对其可用。有关映射的一般信息,请参阅系统管理指南中的配置命名空间。
安装 时创建的系统提供的名称空间不支持互操作性,但在社区版中,USER 名称空间是支持互操作性的名称空间。创建的任何新命名空间在默认情况下都启用了互操作性。如果在创建命名空间时清除了为互操作性Production
实现医疗系统之间的互操作性是一项艰巨的挑战。随着FHIR日渐普及,对FHIR标准的兼容如今已成为许多国家医疗信息系统的全国性强制性要求。FHIR标准最有价值的一方面就是所有内容可被机器读取,使得FHIR应用跨机构使用成为可能,帮助您距离“语义互操作性”更近一步。
不同系统在“对话”时候,如何让它们明白“带黑色条纹的白马”和“带白色条纹的黑马”是同一种动物(斑马)呢?FHIR是HL7国际(HL7 International)为满足当前医疗数据环境中的互操作性需求而创建的医疗数据标准,如今已成为许多国家医疗信息系统的全国性强制性要求。本视频介绍了FHIR的设计理念和关键构成,包括FHIR资源、FHIR Profile、FHIR扩展等。
Productions开发的最佳实践本章是一个总体概述,旨在帮助团队成员为从事生产项目做好准备。它概述了开发任务并确定了有关 数据平台和企业集成的信息来源。本章中的信息适用于所有类型的生产项目。
任何Productions开发项目的目标都是连接两个或多个系统。Productions是专门的软件和文档包,可为企业客户解决特定的集成问题。有关概述,请参阅互操作性产品简介。
本节从应用程序开发人员必须创建和配置以提供解决方案的软件元素的角度描述 IRIS。下一节“项目交付”总结了 开发项目的顺序和结果。
产品架构支持向企业交付的各种风格:
Productions可能包含企业的整个集成解决方案,或者产品可以适合企业已有的现有解决方案(或部分解决方案)。Productions可以根据需要替换、升级遗留系统或向遗留系统添加新功能,而无需删除或更改遗留系统的任何部分。IRIS 支持增量开发项目,因此开发团队可以根据企业的需要选择快速或缓慢地推进新旧系统之间的界限。许多 IRIS 开发项目遵循与此类似的阶段顺序:
| Order | Phase | Goal | Focus |
|---|---|---|---|
| 1 | Specification |
明确Productions要求。 |
Productions必须能够做什么? |
| 2 | Design |
Productions - 规划 IRIS 服务器部署IRIS 服务器的性能通过其处理峰值消息负载的能力来衡量。 服务器的性能取决于许多组件和设置之间的复杂交互。 IRIS 服务器的负载主要取决于:
在许多情况下, IRIS 系统上的消息负载会随着时间的推移而增加。这种增加可能是由于在生产中支持更多的业务功能或业务量的增加。服务器处理此负载的能力取决于许多组件和配置设置之间的复杂交互,包括 内核数量、多处理器架构、存储大小和速度、网络带宽和配置、操作系统缓冲区分配以及 配置。没有简单的公式可以预测 服务器的性能,因为它是一个复杂的交互,但可以估计、计划、原型和跟踪性能以确保 服务器满足业务需求。
为确保 服务器具有足够的容量并能够有效地处理其负载,应该
IRIS 系统将处理的消息数量是多少?服务器启动后负载会逐渐增加吗?消息需要保存多长时间才能存档并从服务器存储中删除?IRIS 服务器的经验。以下部分概述了可能希望从中着手的文档资源,具体取决于角色。
IRIS 生产开发人员如果是准备使用 IRIS 产品的开发人员,请参阅以下资源:
Introducing Interoperability Productions 概述了 IRIS 互操作性和可能希望包含在productions中的选项,并提供了指向更详细信息的指针。
创建作品的最佳实践描述了设计、开发和维护作品的最佳实践。
,反过来,它会向指出应用程序开发集中的特定主题:创建和其他指南。
配置Productions描述了在作品中配置项目的详细信息。
IRIS 管理员如果是准备使用产品的管理员,请参阅以下资源:
Introducing Interoperability Productions 概述了产品功能。Monitoring Productions 解释了如何监控生产环境和各种生产组件。本章描述了在部署 服务器时必须考虑的主要问题。
Caché, IRIS在系统产生了最严重的问题时会产生错误信息并通知客户,但这并不足够。一是客户需要更多更灵活的通知消息,二是客户通常会有第3方的监控系统,因此得到Cache, IRIS的监控指标是必须的。
在所有的指标中,用户最关心的是以下几类:
除此之外,第3方监控系统还需要获得Caché的一些系统信息,比如版本,instance名字等等。
有以下几个获得指标的方法
Caché的系统仪表板显示的数据包括:系统性能;系统运行状态 (运行时间,上一次备份,数据库,Journal状况等; 事务和进程情况;软件许可使用情况;任务,ECP等,还有就是错误和警告的数量。
系统仪表板包含4个子面板:Global和Routine统计数据;ECP统计数据;磁盘和缓冲器统计数据;系统资源统计数据。(IRIS和Caché稍有不同,缺少了“磁盘和缓冲器统计数据”) 。它们分别对应主仪表板中的相应模块,给出了更详细的数据。

Monitoring Web Service默认随系统的启动而开启,远程用户或者第3方系统可以访问该服务得到所以的系统监控指标,也就是系统仪表板上的所有数据。
本章概述了与制作相关的其他选项。
与 Studio 和管理门户等后端工具不同,用户门户(正式名称为 用户门户)旨在供最终用户直接使用。下面显示了一个例子:
用户门户旨在使最终用户能够执行以下任务:
IRIS 为制作中的工作流程提供支持。工作流使得将人机交互合并到自动化业务流程中成为可能。企业内工作流的使用可能包括订单输入、订单履行、合同批准或服务台活动。
production 使用业务流程和业务操作集实现工作流。业务流程接收请求,组织完成该请求所需的任务,然后调用业务操作来执行这些任务。
这些业务操作中的每一个都将任务分配给一个工作流角色,该角色将任务放入属于该角色的每个用户的工作流收件箱中。要访问此收件箱,用户需要使用上一主题中介绍的用户门户。
当用户将任务标记为完成时,工作流引擎将继续执行下一个处理步骤。
IRIS 包括将业务活动监控 (BAM) 作为企业集成项目的一部分所需的所有元素。
首先,它提供业务指标,这是专门的业务服务类,可以在可配置的时间间隔内计算特定值。
本章描述业务流程中支持的逻辑种类。
业务流程是production的中间部分。它们接受来自production内部主机类(业务服务或业务流程)的请求,然后处理请求或将它们转发到production内部的其他主机类进行处理。
建议在中进行以下分工:使用业务服务从生产外部接收输入并将其(作为消息)简单地转发到中。使用业务流程来处理任何需要的业务逻辑。使用业务操作从生产内部接收消息,并简单地为生产外部的目的地生成输出。也就是说,将业务逻辑集中在业务流程中。
因此,IRIS 为业务流程中的复杂逻辑提供了广泛的支持,并且该逻辑可以由非技术用户定义。
首先,业务流程可以包含自己的复杂逻辑。它还可以使用以下可重复使用的物品:
数据转换计算消息内容并将更改应用到消息内容。
业务规则在决策点更改业务流程的行为,或根据消息类型、消息内容或消息来源将消息发送到特定目的地。
提供的工具使非技术用户能够定义业务流程、数据转换和业务规则。这些用户无需编程或绘图技能即可直观地查看和编辑逻辑。
请注意,业务流程、数据转换和业务规则中可用的较低级别选项之间存在重叠。有关比较,请参阅 Developing Productions 中的“业务逻辑工具的比较”。在决定如何组织逻辑之前,有必要查看这些选项。
IRIS
互操作性产品的目的是使能够连接系统,以便可以在它们之间转换和路由消息。要连接系统,需要开发、配置、部署和管理集成多个软件系统的产品。本章介绍产生式和一些基本术语。
Productions互操作性产品是用于轻松连接系统和开发互操作性应用程序的集成框架。产品提供到各种消息格式和通信协议的内置连接。可以轻松添加其他格式和协议,并通过编码或使用图形界面定义业务逻辑和消息转换。Products提供了消息的持久存储,允许跟踪消息的路径并审核消息是否成功传递。一部作品中的元素被称为business hosts。business hosts.有三种,用途不同,具体如下:
Business services与外部系统连接并接收来自它们的消息。业务服务将消息中继到生产中的其他业务主机。Business processes允许定义业务逻辑,包括路由和消息转换。业务流程从生产中的其他业务主机接收消息,然后处理请求或将请求转发给其他业务主机。下图提供了生产和业务主机的概念性概述。
业务主机通过消息相互通信。所有消息都存储在 数据库中,可以通过管理门户查看。
本文介绍了如何将系统与 IRIS 数据平台互操作性产品连接在一起。
连接系统涉及允许来自一个系统的消息由另一个系统处理。例如,以下场景需要连接系统:
将系统连接在一起时,可能会面临以下挑战:
TCP,另一个使用 SOAP,第三个使用 REST。虽然可以编写自定义应用程序来连接系统,但开发IRIS 产品会更容易、更快捷。 IRIS 提供了一个框架,允许连接系统并最大限度地减少或消除对自定义代码的需求。
Productions 产品是一个集成框架,用于轻松连接系统和开发应用程序以实现互操作性。产品提供与各种消息格式和通信协议的内置连接。可以轻松添加其他格式和协议,并通过编码或使用图形向导定义业务逻辑和消息转换。 Productions
由于计划维护或计划外问题,镜像中一个或两个故障转移成员上的 IRIS 实例可能变得不可用。当故障转移成员的 IRIS 实例不可用时,其 ISCAgent 可能继续可用(如果主机系统仍在运行),也可能不可用(如主机系统关闭时)。本节提供了处理各种计划内和计划外中断场景的过程,这些场景涉及实例中断或一个或两个故障转移成员的全部中断。
如自动故障转移机制中所述,从主要故障转移成员到备份故障转移成员的安全和成功故障转移有两个要求:
在阅读和使用本材料时,可能需要参考自动故障转移规则来查看管理自动故障转移的规则。
有关使用镜像监视器确定备份故障转移成员是否处于活动状态或 DR 异步是否被赶上的信息,请参阅镜像成员日志传输和取消日志状态和监控镜像。
当镜像系统启动时(此时还没有成员成为主故障转移成员):
IRIS 不会启动任何访问镜像数据的生产,即使在 ^Ens.AutoStart 中指定了生产。如果成员成为主实例,则这些产品将在那时开始。IRIS 确定实例上是否存在不访问镜像数据的命名空间。如前所述, 建议只在镜像成员上安装镜像产品。但是,如果安装了任何带有非镜像数据库的产品, 将启动 ^Ens.AutoStart 中指定的产品。 (此逻辑确保如果在镜像成员上安装了非镜像命名空间,它会在 启动时启动。)稍后,当该成员成为主要故障转移成员时, IRIS 会找到引用镜像数据的名称空间,以便它可以在这些名称空间中启动生产。如果遵循 的建议,则在实例成为主镜像成员之前,不应运行任何生产访问镜像数据。 在开始生产之前首先检查生产是否已经在运行,特别是:
IRIS 会在消息日志中记录警告,并且不会尝试开始生产。将镜像与 IRIS for Health™
^DATABASE例程重新创建现有镜像数据库^DATABASE 例程的 10) Recreate a database 选项使可以在不更改数据库名称或大小的情况下清除现有数据库中的数据。 (有关例程的信息,请参阅 ^DATABASE。)可以将此选项用于镜像数据库,但必须在出现数据库的每个镜像成员上使用它,并且顺序与使用创建数据库选项的顺序相同创建一个新的镜像数据库——首先在主数据库上,然后是备份数据库,然后是数据库作为镜像一部分的任何异步数据库。
注意:如果使用 ) 重新创建数据库选项在主数据库上重新创建数据库,则必须对备份和镜像中的任何 DR 异步操作重复该操作;如果不这样做,数据库可能会在发生故障转移或灾难恢复时变得过时。强烈建议也对报告异步重复重新创建操作。
可以在任一故障转移成员上安装/卸载镜像数据库。但是,如果在备份故障转移成员上卸载,数据库将保持“陈旧”状态,直到重新安装,之后镜像会尝试自动赶上数据库。如果所需的日志文件在主要故障转移成员上可用,自动更新应该会成功,但如果主要成员上的任何所需日志文件已被清除,则必须从主要成员上的最近备份还原数据库。
本节提供配置和管理镜像数据库时要考虑的信息:
IRIS 实例兼容性镜像中的 IRIS 实例必须以多种方式兼容,如下所示:
IRIS 实例必须:8 位或 Unicode;请参阅安装指南“准备安装”一章中的字符宽度设置)。IRIS”一章中的使用管理门户的 NLS 设置页面)。注意:这些要求的一个例外是使用基于 ISO 8859 Latin-1 字符集的区域设置的 位实例与使用相应宽字符区域设置的 实例兼容。例如,使用 语言环境的 位主实例与使用 语言环境的 备份实例兼容。但是,使用 语言环境的 位主实例与使用 语言环境的 备份实例不兼容,因为这些语言环境不基于 。
仅在报告异步上,可以在给定镜像上设置用户定义的 dejournal 过滤器,让为每个日志记录执行自己的代码以确定哪些记录应用于该镜像中的读写数据库。定义过滤器后,可以在任意数量的镜像上设置它,并且可以随时设置、更改和删除过滤器。
重要提示:此功能仅适用于高度专业化的情况。应仔细考虑替代方案。为了控制将哪些全局变量复制到镜像成员,到非镜像数据库的全局映射提供了一种更简单、轻量级的解决方案。对于监控应用程序数据库的更新,在应用程序级别构建的解决方案通常更加灵活。
dejournal 过滤器允许报告异步跳过从主要接收的日志文件中的某些记录的 dejournaling。但是,这仅适用于读写数据库——最初以读写报告异步方式添加到镜像中的数据库,或者自数据库以只读方式添加到镜像后已清除 FailoverDB 标志的数据库。 (有关 标志和镜像数据库在报告异步时的装载状态的详细说明,请参阅清除报告异步镜像成员上的 标志。)如果在数据库上设置了 标志,这意味着该数据库被装载为读取- 只是, 过滤器代码仍然执行,但所有记录总是在该数据库上 ,无论过滤器代码返回什么。
重要提示:设置 过滤器会减慢它所设置的镜像的 ;这种影响可能很大,具体取决于过滤器的内容。
要创建
可以暂时停止在备份或异步成员上进行镜像。例如,可能希望在短时间内停止备份成员上的镜像以进行维护或重新配置,或者在主数据库维护期间停止镜像,并且可能暂时停止报告异步成员上的镜像以减少网络使用。为此,请执行以下操作:
该操作需要几秒钟。当刷新镜像监视器时,“在此成员上停止镜像”将替换为“在此成员上开始镜像”,可以使用它来恢复镜像。
重要提示:当停止对某个成员进行镜像时,镜像将保持停止状态,直到如前所述再次明确启动它。镜像的重新初始化或成员的重新启动都不会在成员上启动镜像。
注意:还可以使用镜像 SYS.Mirror.StopMirror() 和 SYS.Mirror.StartMirror() API 方法或 例程(请参阅使用 ^MIRROR 例程)来执行这些操作任务。
如镜像同步中所述,去日志化是通过将日志数据从主要故障转移成员应用到另一个镜像成员上的镜像数据库来同步镜像数据库的过程。
WIN SQL是大多数用户使用的普通编辑器。但是我们不能使用winsql下载大量数据。所以我写了一个教程如何连接一个新的基于 Java 的编辑器,叫做 Squirrel SQL,它可以很容易地下载或导出 excel 或任何其他格式的数据。我还包括一个 Java JCBC 连接程序来连接 IRIS 数据库,尤其是镜像/故障转移服务器。
基于 SQL Java 的编辑器导出大量数据和用于 IRIS 连接的 Java JDBC 程序
基于 SQL Java 的编辑器导出大量数据
WinSql 是通常用于从 Iris 数据库中提取数据的编辑器,但是,如果没有许可的 winsql,则无法导出大量数据。
解决方案是使用基于 java 的编辑器,称为 Squirrel SQL。这是一个基于 java 的编辑器,您可以在从 IRIS 数据库执行 fetch 从编辑器中导出大量数据。这是用 Java 构建的开源 SQL 客户端,它使用 JDBC 连接到 IRIS 数据库。
除了将 DR 异步提升为故障转移成员外,还可以执行相反的操作 — 将不是当前主要成员的故障转移成员降级为 DR 异步,这样镜像就只剩下一个故障转移镜像。当不希望故障转移成员响应镜像配置中的临时更改时,这在计划中断情况下很有用。例如:
IRIS 实例重新启动(无论出于何种原因)时,它在重新启动后无法成为主系统,因为它无法联系备份实例或其 ISCAgent,因此无法确定它是否是最近的主节点。但是,如果在关闭备份之前将备份降级为 DR 异步,如备份故障转移成员的维护中所述,则可以避免这种风险,因为主要知道没有当前备份,因此它可以在重新启动后成为主要。然后,可以在重启后将降级的 异步提升为备份(如将 异步成员提升为故障转移成员中所述),我们客户的一个共同需求是配置 HealthShare HealthConnect 和 IRIS的高可用性模式。
市场上的其他集成引擎通常被宣传为具有“高可用性”配置,但事实并非如此。通常,这些解决方案与外部数据库一起使用,因此,如果这些数据库未配置为高可用性,当发生数据库崩溃或与它的连接丢失时,整个集成工具将变得不可用。
对于 InterSystems 解决方案,这个问题不存在,因为数据库是工具本身的一部分和核心。 InterSystems 如何解决高可用性问题?深奥的配置会把我们拖入异化和疯狂的漩涡?不!在 InterSystems,我们倾听并处理了您的投诉(正如我们一直努力做的那样 ;)),并且我们已将镜像功能提供给所有用户和开发人员。
镜像如何工作?这个概念本身非常简单。如您所知,IRIS 和 HealthShare 都使用一个日志系统,该系统记录每个实例的数据库上的所有更新操作。这个日志系统是后来帮助我们在崩溃后恢复实例而不会丢失数据的系统。好吧,这些日志文件在镜像中配置的实例之间发送,允许并保持镜像中配置的实例永久更新。
让我们简要解释一下在 Mirror 中配置的系统架构是什么样的: