转到文章 Louis Lu · 三月 16, 2022 既然是再研究,何不试试我们最新的InterSystems IRIS。如果以前研究过Caché 会发现,IRIS 还是同样的架构、同样的开发语言、同样的global存储,只是人机交互更流畅、性能更快,增加更多扩展,机器学习、python、丰富的外部BI工具适配、容器化部署、API管理等等等等,都等着你探索。 要想体验就在社区主页左边,选择下载InterSystems IRIS。 WRC可以说是我们对客户的支持中心,所以只面对我们的客户开放注册。
转到文章 Louis Lu · 三月 16, 2022 不知道你在哪里找文档找了一个星期,可以直接去docs.intersytems.com,选择你要对应的版本,然后再查找框里输入jdbc url, 比如我在最新的InterSystems IRIS for health 2021.2的文档中查到: jdbc:IRIS://<host>:<port>/<namespace>/<logfile>:<eventclass>:<nodelay>:<ssl> 比如: jdbc:IRIS://127.0.0.1:1972/User 原文在这里:https://docs.intersystems.com/irisforhealth20212/csp/docbook/DocBook.UI.Page.cls?KEY=BJAVA_connecting#BJAVA_connecting_url
转到文章 Louis Lu · 三月 16, 2022 我们推荐的高可用性方案是Mirror。也就是配置至少主备两个镜像成员+灾备异步镜像成员,可选配置多个异步报表镜像成员以及多个灾备异步镜像成员。 当然同时推荐的是建立健全的外部备机机制,以及使用外部备份进行恢复的演练,手动升级灾备异步镜像成员为主机的演练。 对于大型应用一般使用ECP创建多台应用服务器,进行多用户的负载分配,再将多台应用服务器连接至数据服务器,数据服务器进行高可用性配置。
转到文章 Louis Lu · 三月 16, 2022 “shutdown standby member“的操作应该与上面提到的"当备库因为主机故障或者网络隔离等因素导致不可用"是不一样的: shutdown standby member是一个主动的将备机下线的过程,这个过程中,主机已经主动的将备机标注为“非激活”状态,这个时候主机不会等待备机的收到journal的信号,所以不会影响主机上的业务。 ”当备库因为主机故障或者网络隔离等因素导致不可用“ 这个过程是一个被动不可预料的情况,这种情况下会有下面情况发生:1. 在Qos规定的时间内,主机收到了备机的反馈信息,主机继续业务。 2a.在Qos规定时间内主机没有收到备机反馈信息,但是从仲裁服务收到冲裁服务仍能正常连接到备机的信息。会切换镜像状态监控模式为ISCAgent模式,业务访问主机不受影响。 2b. 在Qos规定时间内主机没有收到备机反馈信息,并且从仲裁服务也没有收到备机的情况,主机切换为ISCAgent监控模式,将备机置为trouble状态,主机继续承载业务。备机也会切换为ISCAgent监控模式,尝试重连主机。 3. 在Qos规定时间内主机没有收到备机反馈信息,也没有收到仲裁服务的信息。主机置为trouble状态。此时如果备机仍然保持和仲裁之间的连接,备机将会升级为主机,接管业务访问。当与原主机恢复连接后,会强制将原主机关机,以提醒管理员需要检查主机丢失连接的原因。 值得注意的是,IRIS/Caché 并不是直接将Journal的内容写入磁盘中的数据库文件中,Journal记录的是数据库的所有变化内容,而Write image journal(WIJ文件)则记录的是所有在内存中变化的但是还没有写到数据库的内容,写入磁盘的过程分两步,第一步将更新的内容从内存写入WIJ文件,WIJ标记准备写入磁盘的blocks 。第二步将标记的blocks写入磁盘,写完后,将第一步的标记清空。写入journal的过程是将journal buffer中记录的数据库内容的变化写入磁盘中的journal文件中。也就是说没有打开Journal功能的数据库文件依然是可以写入数据的(当然没有打开Journal功能是不能配置Mirror的)。 所以,说了那么多,对于终端用户基本上是感觉不到上面各种主备切换情况发生的。但是在系统终端是可以记录到的。
转到文章 Louis Lu · 二月 27, 2022 Production 重启的过程包括了关闭Production和启动Production。 关闭Production的过程需要把所有活动Job中的消息放入队列中,这个过程如果发生在业务量非常大的时候,也就是job非常多,每个job中的待处理消息很多的时候会花费很长时间。 而启动Production的过程会逆向关闭的过程,恢复关闭前的job以及的消息,同样这个时间与关闭production前业务繁忙、队列的大小有关。 当关闭的时间过长,会提示是否需要“强制”关闭production,如果强制关闭,后果就是无法保证恢复关闭production前的业务。 如果想等待或设置较长的等待时间,可以在terminal中执行 Ens.Director 类的StopProduction函数: ClassMethod StopProduction(pTimeout As %Numeric = 10, pForce As %Boolean = 0) As %Status 第一个参数设置超时时间,第二个参数设置是否强制关闭。
转到文章 Louis Lu · 二月 25, 2022 不知道你问题里的日志是不是指的journal文件。 没有直接读取journal的方法,只有类似MirrorDejournal的方法对写入异步镜像成员的journal进行操作, 比如将内容写入到你自己的一个数据global中。 在写journal的同时将journal中记录的内容存放在另一个地方。 具体做法可以参考社区里的另一篇文章:CDC系列之一 :使用Dejournal Filter在InterSystems IRIS/Caché上通过Mirroring实现CDC功能 对于较早版本还没有镜像Mirror的配置,则可以使用Shadow服务器的Dejournaling filter routine。 可以参考:CDC系列之二 :使用Dejournaling filter routine在Caché上通过Shadow实现CDC
转到文章 Louis Lu · 十月 7, 2021 IRIS 没有默认的删除备份文件的任务。 你可以通过命令$zf(-100)或者%File下面的Delete方法实现通过ObjectScript删除磁盘文件的操作,再将代码添加入定时任务中实现定时删除。 同时注意,不建议在生产环境将IRIS自带的在线备份工具作为灾备恢复使用,因为该工具仅仅备份 IRIS.Dat 中的内容,而这些内容对于灾难恢复是不够的。 推荐使用外部备份的方式进行备份,详细内容参见(https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI...)
转到文章 Louis Lu · 九月 16, 2021 可以参考 %SYS.Journal.File.cls 这个类下的代码是如何使用$$$JRNNEWVAL(Address) 、$$$JRNOLDVAL(Address)的。
转到文章 Louis Lu · 九月 13, 2021 使用的产品版本是什么?Dejournal filter是在Mirror report类型的异步镜像成员做的还是在shadow上做的?不同给的版本对应不同的处理方式。 同时还是建议将问题提到WRC:support@intersystems.com,他们会给予更详细的错误分析以及解决方案。
转到文章 Louis Lu · 九月 13, 2021 注意文章中的提示: 1. $$$JRNNEWVAL(Address) 、$$$JRNOLDVAL(Address)`这2个宏定义在%syJrnRecord.inc文件里,因此需要将这个include文件加入ZCustom.MirrorDejournal类定义:Include %syJrnRecord 2.在InterSystems IRIS上修改并编译dejournal过滤器类后,需要重启异步镜像成员的Mirror,以使更改生效。
转到文章 Louis Lu · 九月 12, 2021 可以通过Ens.Config.Production 的 %OpenId 方法打开现有的Production, 新建一个Ens.Config.Item的对象,该对象对应于Production界面中的各个组件(BusinessHost) 再使用production.Items.Insert方法将该Item对象插入到现有Production中,就可实现使用代码的方式创建Production 的 BusinessHost。 同时可以通过创建Ens.Config.Setting的实例以及设置相关属性的方式,对创建的BusinessHost中的配置在代码中进行设定,比如设定加载BO的URL、凭据等。 #Dim businessHost as Ens.Config.Item = ##class(Ens.Config.Item).%New() #Dim setting as Ens.Config.Setting = ##class(Ens.Config.Setting).%New() #Dim production as Ens.Config.Production = ##class(Ens.Config.Production).%OpenId("MyPkg.DemoProduction") Set setting.Name="WebServiceURL" Set setting.Value="http://localhost:52773/MyWS/Demo.Test.cls" Set businessHost.ClassName="MyPkg.Operation.HISWSOperation" Set businessHost.Name ="HIS web 服务" Set businessHost.Production = production Do businessHost.Settings.Insert(setting) Do production.Items.Insert(businessHost) Set tsc = production.%Save()
转到文章 Louis Lu · 六月 9, 2021 USER>set file="box.xml" USER>set sc=$system.OBJ.Export("box.GBL",.file) Exportieren in XML gestartet am 06/08/2021 11:46:58 Exportiere Global: ^box Export erfolgreich abgeschlossen. USER>$type box.XML <?xml version="1.0" encoding="UTF-8"?> <Export generator="Cache" version="25" zv="IRIS for Windows (x86-64) 2021.1 (Build 209U)" ts="2021-06-08 11:46:58"> <Global> <Node><Sub>^box</Sub> <Node><Sub>1</Sub> <Node><Sub>1</Sub> <Data> </Data> <Node><Sub>0</Sub> <DataBase64>G1syOzRI </DataBase64> </Node> <Node><Sub>1</Sub> <Data>1</Data> </Node> <Node><Sub>2</Sub> <Data>...456..9</Data> </Node> </Node> <Node><Sub>2</Sub> <Data> </Data> <Node><Sub>0</Sub> <DataBase64>G1syOzEwSA== </DataBase64> - - - - removed ------- </Node> </Node> <Data> </Data> USER>
转到文章 Louis Lu · 六月 7, 2021 我在 IRISHealth_Community-2020.1.1.408.0-win_x64 安装版本中可以看到该%Service_Telnet服务 注意服务名称前有%
转到文章 Louis Lu · 六月 3, 2021 一般由 Ensemble 生成的Soap 服务的 URL 地址有下面几个部分组成: http(s)://DomainName:port/web application name/bs类名.cls组成 前面域名端口由提供服务的服务器地址以及web server决定. web application name可以在SMP的菜单:系统管理 -- 安全 -- 应用程序 -- web 应用程序中设置 bs类名为创建包含web method 的类的类名。在将类添加到Ensemble 的 BS中时,默认服务名为类名。如果你手动设置了服务名称,则需要在soap url中使用 CfgItem 参数来指明. 例如:http://Myserver/MyApplication/MyClass.cls?CfgItem=MyServiceName
转到文章 Louis Lu · 六月 1, 2021 请参考下面资料检查是否符合运行需求以及相关配置是否正确:https://docs.intersystems.com/irisforhealth20201/csp/docbook/Doc.View.cl... 其中的检查包括JDK版本、安装时的选项、服务%Service_CallIn是否打开以及环境变量CLASSPATH 的设置
转到文章 Louis Lu · 五月 30, 2021 为了方便的将FHIR转化为SDA3的格式,可以直接添加HS.FHIR.DTL.Util.HC.FHIR.SDA3.Process 到 Production配置界面中的流程部分,而不需直接调用DT。 更详细内容请参考:https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c...
转到文章 Louis Lu · 五月 30, 2021 不知您测试使用的具体是IRIS哪个版本,以及运行在哪个操作系统上。 还有提到的客户端使用的是哪个IRIS版本。低版本的客户端没法连上高版本的IRIS服务端,Caché客户端更加连不上IRIS的服务器。