公告 Michael Lei · 七月 25, 2022 InterSystems 即将举办“推动女性健康-FemTech不止是利基市场“在线论坛 Hi 大家好! 我们很荣幸地宣布InterSystems 将在剑桥总部举办 推动女性健康-FemTech不止是利基市场 高层论坛,论坛将在线上线下同步举行! ⏱ 时间: 7月 29日, 5:30 AM – 7:30 AM ,北京时间(July 28,5:30 PM – 7:30 PM ,EDT/美国东部时间)📍 地点: InterSystems 总部,1 Memorial Drive, Cambridge, MA #活动 #开发者社区官方 0 0 0 89
文章 姚 鑫 · 七月 23, 2022 阅读大约需 2 分钟 第五章 修改实现(IMPL)类 第五章 修改实现(IMPL)类 本章讨论如何修改 REST 服务的实现类。 初始方法定义 实现类最初包含存根方法,如下例所示: #REST API #Caché 0 0 0 89
文章 Michael Lei · 六月 26, 2022 阅读大约需 1 分钟 以程序化的方式检查审计设置 下面的代码允许用户查看其实例的审计设置。通过运行类方法 "test "来运行该代码。: #Code Snippet #ObjectScript #Caché 0 0 0 89
文章 姚 鑫 · 六月 20, 2022 阅读大约需 4 分钟 第五章 操作位和位串 第五章 操作位和位串 有时可能希望在基于数据平台的应用程序中存储一系列相关的布尔值。可以创建许多布尔变量,也可以将它们存储在数组或列表中。或者可以使用称为“位串”的概念,它可以定义为位序列,首先呈现最低有效位。位串允许您以非常有效的方式存储此类数据,无论是在存储空间还是处理速度方面。 位串可以以两种方式之一存储,作为压缩字符串或整数。如果在没有上下文的情况下听到术语“位串”,则表示位序列存储为压缩字符串。本文向介绍了这两种类型的位串,然后介绍了一些可用于操作它们的技术。 将位序列存储为位串 存储位序列的最常见方式是在位串中,这是一种特殊的压缩字符串。除了节省存储空间外,还可以使用 ObjectScript 系统函数有效地操作位串。 这样的系统函数是 $factor,它将整数转换为位串。我们可以通过执行以下语句将整数 11744 转换为位串: set bitstring = $factor(11744) 要查看位串内容的表示,可以使用 zwrite 命令: #SQL #Caché 0 0 0 89
文章 姚 鑫 · 六月 15, 2022 阅读大约需 5 分钟 第一章 锁定和并发控制制(一) 第一章 锁定和并发控制(一) 任何多进程系统的一个重要特征是并发控制,即防止不同进程同时更改特定数据元素的能力,从而导致损坏。 提供了一个锁管理系统。本文提供了一个概述。 此外,%Persistent 类提供了一种控制对象并发访问的方法,即 %OpenId() 的并发参数和该类的其他方法。这些方法最终使用本文讨论的 ObjectScript LOCK 命令。所有持久对象都继承这些方法。同样,系统会自动对 INSERT、UPDATE 和 DELETE 操作执行锁定(除非指定 %NOLOCK 关键字)。 %Persistent 类还提供方法 %GetLock()、%ReleaseLock()、%LockId()、%UnlockId()、%LockExtent() 和 %UnlockExtent()。 #SQL #Caché 0 0 0 89
文章 姚 鑫 · 五月 21, 2022 阅读大约需 4 分钟 第149章 SQL函数 TRIM 第149章 SQL函数 TRIM 字符串函数,它返回删除了指定的前导和/或尾随字符的字符串。 #SQL #Caché 0 0 0 89
文章 姚 鑫 · 十二月 6, 2021 阅读大约需 2 分钟 第七章 SQL谓词 %FIND 第七章 SQL谓词 %FIND 使用位图块迭代将一个值匹配到一组生成的值。 #SQL #Caché 0 0 0 89
文章 姚 鑫 · 六月 22, 2021 阅读大约需 5 分钟 第十五章 XML检查属性 第十五章 XML检查属性 检查属性的基本方法 可以使用%XML.Node的以下方法。以检查当前节点的属性。 - AttributeDefined() 如果当前元素具有具有给定名称的属性,则返回非零(TRUE)。 - FirstAttributeName() 返回当前元素的第一个属性的属性名称。 - GetAttributeValue() 返回给定属性的值。如果元素没有该属性,则该方法返回NULL。 - GetNumberAttributes() 返回当前元素的属性数。 - LastAttributeName() 返回当前元素的最后一个属性的属性名称。 - NextAttributeName() 在给定属性名称的情况下,无论指定的属性是否有效,此方法都会按排序顺序返回下一个属性的名称。 - PreviousAttributeName() 在给定属性名称的情况下,无论指定的属性是否有效,此方法都会按排序顺序返回上一个属性的名称。 #Caché #InterSystems IRIS 0 0 0 89
文章 Hao Ma · 四月 15, 2024 阅读大约需 3 分钟 IRIS/Caché SQL优化经验分享 - SQL性能分析工具 SQL Performance Analysis Toolkit,或者叫SQL性能分析工具,并不是给维护人员使用的。 在RIS文档里是这么说的: 这个工具包里的工具收集SQL执行的详细信息,用来找出一个查询计划的特殊问题。 使用这些信息,开发人员改善这个查询的效率。 它可以非常大的增加服务器的开销。..., 它不应该被持续执行。 要做分析,首先您需要打开一个采集“SQL runtime Statistics"的开关来收集详细信息,这个开关默认的状态是OFF。 文档里说: The SQL Performance Analysis Toolkit offers support specialists the ability to profile specific SQL statements or groups of statements. 这里的"support specialists"指的是厂家的技术支持人员。 因此,总结如下: #SQL #开发运维 #InterSystems IRIS 0 0 0 88
文章 姚 鑫 · 九月 10, 2023 阅读大约需 2 分钟 第二十四章 Classes - 指定属性关键字 第二十四章 Classes - 指定属性关键字 指定属性关键字 在属性定义中,可以包含影响属性使用方式的可选属性关键字。以下列表显示了一些最常见的关键字: Required 指定可以将此类实例之前设置的属性值存储到磁盘。默认情况下,属性不是必需的。在子类中,可以将可选属性标记为必需,但不能执行相反的操作。 InitialExpression 指定属性的初始值。默认情况下,属性没有初始值。子类继承InitialExpression关键字的值并且可以覆盖它。指定的值必须是有效的 ObjectScript 表达式。 Transient 指定该属性不存储在数据库中。默认情况下,属性不是瞬态的。子类继承 Transient 关键字的值并且不能覆盖它。 Private 指定该属性是私有的。子类继承 Private 关键字的值并且不能覆盖它。 #InterSystems IRIS for Health 0 0 0 88
文章 姚 鑫 · 九月 8, 2023 阅读大约需 2 分钟 第二十二章 Classes - 调用类方法的快捷方式 第二十二章 Classes - 调用类方法的快捷方式 调用类方法的快捷方式 使用 ObjectScript 调用类方法时,在以下情况下可以省略包(或更高级别的包): - 引用是在一个类内,并且被引用的类在同一个包或子包中。 - 引用位于类内,并且该类使用 IMPORT 指令导入包含引用的类的包或子包。 - 该引用位于方法内,并且该方法使用 IMPORT 指令导入包含引用的类的包或子包。 从 ObjectScript 或 Python 调用类方法时,在以下情况下可以省略包(或更高级别的包): #InterSystems IRIS for Health 0 0 0 88
文章 姚 鑫 · 八月 19, 2023 阅读大约需 1 分钟 第三章 IRIS 编程简介 - SQL 第三章 IRIS 编程简介 - SQL SQL IRIS 提供了 SQL 的实现,称为 SQL。可以在方法和例程中使用 SQL。 从 ObjectScript 使用 SQL 可以使用以下一种或两种方式从 ObjectScript 执行 SQL: #InterSystems IRIS for Health 1 0 0 88
文章 姚 鑫 · 七月 7, 2023 阅读大约需 3 分钟 第五十一章 开发Productions - ObjectScript Productions - 不常见的任务 第五十一章 开发Productions - ObjectScript Productions - 不常见的任务 定义自定义实用函数 IRIS提供了一组可以从业务规则和DTL中调用的实用函数;这些在开发业务规则的Productions中使用的效用函数中有所描述。可以添加自己的功能,业务规则引擎和业务规则编辑器会自动适应您的扩展。 要添加新的效用函数: #InterSystems IRIS for Health 0 0 0 88
文章 姚 鑫 · 六月 9, 2023 阅读大约需 2 分钟 第三十章 开发Productions - ObjectScript Productions - 定义业务操作 - 调用适配器方法 第三十章 开发Productions - ObjectScript Productions - 定义业务操作 - 调用适配器方法 调用适配器方法 最常见的是,业务操作不包含用于与外部系统通信的逻辑。相反,业务操作使用处理此逻辑的出站适配器。一旦业务操作与出站适配器相关联,它就会调用适配器的方法来发送和接收数据。有关调用适配器方法的详细信息,请参阅从业务主机访问属性和方法。 向生产中的目标发送请求 尽管业务操作主要负责向特定的外部应用程序传递请求,但它也可以根据需要向其他业务操作或业务流程发送消息。要将消息发送到生产中的目标,请调用 SendRequestSync()、SendRequestAsync() 或 SendDeferredResponse()。 Ens.BusinessOperation 定义了一个可以使用的附加方法:DeferResponse()。 #InterSystems IRIS for Health 0 0 0 88
问题 liu jun · 二月 7, 2023 Why does the IRIS mirror connection cause serious network timeout? After the image is disconnected, the network returns to normal Why does the IRIS mirror connection cause serious network timeout? After the image is disconnected, the network returns to normal #InterSystems IRIS 0 1 0 87
文章 姚 鑫 · 十月 8, 2022 阅读大约需 2 分钟 第十章 CSP 架构 - Category 第十章 CSP 架构 - Category Category: AllowPrefix 如果应用程序依赖于调用以同一组字符开头的多个类或包,请使用AllowPrefix选项。 重要提示:如果应用程序依赖于调用上面列出的以外的任何类,则使用它可能是不安全的。建议确定是否需要调用此类,并为部署执行风险评估,以便了解使类可用的含义。 要使给定的Web应用程序能够调用以相同字符集开头的类或程序包,请在%sys命名空间中使用以下命令: Set ^SYS("Security", "CSP", "AllowPrefix", "web-app-name", "prefix") = value 其中 #CSP #Caché 1 0 0 88
文章 姚 鑫 · 七月 5, 2022 阅读大约需 5 分钟 第十九章 使用工作队列管理器(二) 第十九章 使用工作队列管理器(二) 基本工作流程 可以通过执行以下步骤来使用工作队列管理器: 将ObjectScript 代码划分为工作单元,这些工作单元是满足特定要求的类方法或子例程。 创建一个工作队列,它是 %SYSTEM.WorkMgr 类的一个实例。为此,请调用 %SYSTEM.WorkMgr 类的 %New() 方法。该方法返回一个工作队列。 可以指定要使用的并行worker jobs的数量,也可以使用默认值,这取决于机器和操作系统。此外,如果已创建类别,则可以指定应从中获取job的类别。 创建工作队列时,工作队列管理器会创建以下工件: - 包含有关工作队列的信息的全局变量,例如工作队列在哪个命名空间中运行 - 工作队列必须处理的序列化工作单元的位置和事件队列 - 在工作队列完成处理工作单元时创建的完成事件的位置和事件队列 #SQL #Caché 0 0 0 88
Job Tingting Jiang · 六月 21, 2022 InterSystems热招职位(3):Technical Specialist(Product Support) InterSystems正在招聘Technical Specialist(Product Support),欢迎您的自荐、推荐。 #工作机会 0 0 0 88
公告 Michael Lei · 五月 11, 2022 InterSystems Kubernetes Operator 3.3 发布! InterSystems Kubernetes Operation(IKO)3.3版现已通过WRC下载页面和InterSystems容器注册中心提供。IKO通过提供一个易于使用的irisCluster资源定义,简化了在Kubernetes中使用InterSystems IRIS或InterSystems IRIS for Health的工作。完整的功能清单见IKO文档,包括轻松的分片、镜像和ECP的配置。 IKO 3.3 亮点: 支持InterSystems IRIS和InterSystems IRIS for Health 2021.2 以及 2022.1版本 支持 Kuberentes 1.21 将常见的系统警报和监控(SAM)配置作为irisCluster的一部分进行部署 InterSystems API Manager(IAM)现在也可以作为 irisCluster的一部分进行部署和管理 自动标记Mirror对的活跃端,因此服务可以始终指向激活的镜像成员 #Kubernetes #容器化 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 88
文章 姚 鑫 · 四月 20, 2022 阅读大约需 2 分钟 第118章 SQL函数 REVERSE 第118章 SQL函数 REVERSE 标量字符串函数,它以相反的字符顺序返回一个字符串。 大纲 REVERSE(string-expression) 参数 string-expression - 要反转的字符串表达式。表达式可以是列名、字符串文字、数字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHAR 或 VARCHAR)。 描述 REVERSE 返回字符顺序颠倒的字符串表达式。例如 'Hello World!' 返回为 '!dlroW olleH'。这是一个简单的字符串顺序反转,没有额外的处理。 返回的字符串是数据类型 VARCHAR,与输入值的数据类型无关。数字转换为规范形式,数字字符串在反转之前不会转换为规范形式。 前导和尾随空白不受反转的影响。 反转 NULL 值会导致 NULL。 #SQL #Caché 0 0 0 88
文章 姚 鑫 · 十一月 30, 2021 阅读大约需 1 分钟 第一章 SQL谓词的概述(一) 第一章 SQL谓词的概述(一) 描述计算结果为真或假的逻辑条件。 使用谓词 谓词是一个条件表达式,其计算结果为布尔值(true或false)。 谓词可以如下使用: #SQL #Caché 0 0 0 88
文章 姚 鑫 · 八月 26, 2021 阅读大约需 2 分钟 Storage关键字IdFunction,IdLocation,IndexLocation,SqlRowIdName 第149章 Storage关键字 - IdFunction 指定使用默认存储为持久类分配新ID值的系统函数。 大纲 <IdFunction>increment</IdFunction> 值 这个元素的值可以是increment(使用$increment函数)或sequence(使用$sequence函数)。 描述 如果持久化类不使用IdKey来确定对象ID值,则该元素允许指定用于分配ID值的函数($increment函数或$sequence函数)。 如果类使用$increment函数,则通过对<IdLocation>元素中定义的全局位置中存储的值进行递增来创建新的id。 #Caché 0 0 0 88
文章 姚 鑫 · 六月 23, 2021 阅读大约需 4 分钟 第十六章 创建或编辑DOM 第十六章 创建或编辑DOM 创建或编辑DOM 要创建DOM或修改现有DOM,请使用%XML.Document的以下方法在: CreateDocument() classmethod CreateDocument(localName As %String, namespace As %String) as %XML.Document 在仅包含根元素的返回%XML.Document新实例。 AppendCharacter() method AppendCharacter(text As %String) 将新的字符数据节点追加到此元素节点的子节点列表中。当前节点指针不变;此节点仍然是追加的子节点的父节点。 #Caché 0 0 0 88
文章 姚 鑫 · 四月 3, 2021 阅读大约需 12 分钟 第十五章 使用管理门户SQL接口(二) 第十五章 使用管理门户SQL接口(二) 过滤模式内容 Management Portal SQL界面的左侧允许查看模式(或匹配筛选器模式的多个模式)的内容 1. 通过单击SQL interface页面顶部的Switch选项,指定希望使用的名称空间。 这将显示可用名称空间的列表,可以从中进行选择。 2. 应用筛选器或从模式下拉列表中选择模式。 可以使用Filter字段通过输入搜索模式来筛选列表。 可以在一个模式或多个模式中筛选模式,或筛选表/视图/过程名(项)。 搜索模式由模式名、点(.)和项目名组成——每个名称由文字和通配符的某种组合组成。字面值不区分大小写。 通配符是: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 88
文章 Hao Ma · 三月 21, 2024 阅读大约需 1 分钟 IRIS/Caché SQL优化经验分享 - Bitmap Extent Bitmap索引是指对某个,或者某几个字段建立的bit map(位图映射)。如果是对整个表的记录,也就是表的%ID做位图映射,得到的特殊的bitmap索引在IRIS/Caché里被称为Bitmap Extent。 建立Bitmap Extent索引的目的就是加快COUNT(*)的执行。提高了多少呢? 下面两个显示的是最简单的全表查询花费的时间: 不使用Bitmap Extent : 1.3810s 使用Bitmap Extent: 0.0038 相差有几百倍。 #SQL #新手 #InterSystems IRIS 0 0 0 87
文章 Louis Lu · 八月 30, 2023 阅读大约需 1 分钟 使用代码获取数据库剩余空间 大家可以通过InterSystems IRIS 管理门户SMP查看当前数据库剩余空间,路径是 Management Portal: System Operation > Database 当然大家也可以通过下面的代码查看数据库的可用磁盘空间: #InterSystems IRIS 0 0 0 87
文章 姚 鑫 · 七月 5, 2023 阅读大约需 3 分钟 第四十九章 开发Productions - ObjectScript Productions - 使用复杂记录映射器 - 复杂的记录映射类结构 第四十九章 开发Productions - ObjectScript Productions - 使用复杂记录映射器 - 复杂的记录映射类结构 复杂的记录映射类结构 有两个类以类似于描述记录映射的两个类的方式描述复杂的记录映射。描述复杂记录映射的两个类是: 复杂记录映射,描述复杂记录的外部结构并实现复杂记录解析器和编写器。 生成的复杂记录类定义了包含数据的对象的结构。该对象允许在数据转换和路由规则条件中引用数据。 一个复杂的记录映射业务服务读取并解析传入的数据并创建一条消息,该消息是生成的记录类的一个实例。业务流程可以读取、修改或生成生成的复杂记录类的实例。最后,复杂记录映射业务操作使用实例中的数据,使用复杂记录映射作为格式化模板写入输出数据。复杂记录映射类和生成的复杂记录类都具有描述数据的层次结构。复杂记录映射类和生成的复杂记录类具有并行结构。这与 RecordMap 类不同,其中生成的记录类可以具有不同的层次结构。 #InterSystems IRIS for Health 0 0 0 87
文章 姚 鑫 · 六月 17, 2023 阅读大约需 4 分钟 第六十章 镜像中断程序 - 使用主 ISCAgent 的日志数据进行 DR 提升和手动故障转移 第六十章 镜像中断程序 - 使用主 ISCAgent 的日志数据进行 DR 提升和手动故障转移 使用主 ISCAgent 的日志数据进行 DR 提升和手动故障转移 如果 IRIS A 的主机系统正在运行,但 IRIS 实例没有且无法重新启动,您可以使用以下过程在通过升级后使用来自 IRIS A 的最新日志数据更新升级的 IRIS C IRIS A 的 ISCAgent。 #InterSystems IRIS for Health 1 0 0 87
文章 姚 鑫 · 六月 15, 2023 阅读大约需 3 分钟 第五十八章 镜像中断程序 - 主要故障转移成员的计划外隔离 第五十八章 镜像中断程序 - 主要故障转移成员的计划外隔离 主要故障转移成员的计划外隔离 如自动故障转移机制中所述,当主节点同时与备份节点和仲裁节点失去联系时,它会进入无限期的故障状态并且不能再作为主节点运行。通常,发生这种情况时,备份会接管并成为主要的。当主服务器与备份服务器的连接恢复时,备份服务器强制关闭主服务器;或者,可以在恢复连接之前自行强制关闭主服务器。 但是,如果一个网络事件(或一系列网络事件)导致故障转移成员和仲裁器同时(或几乎同时)彼此失去联系,则可能没有主节点,因为备份无法接管并且主节点不再存在作为主要操作。这种情况显示为自动故障转移机制详细部分中仲裁模式下对丢失连接的镜像响应表中的最终方案。当主数据库变得孤立并且备份由于错误而无法接管时,可能会发生类似的情况。 当这些情况发生时,有以下选择: #InterSystems IRIS for Health 1 0 1 87