文章 姚 鑫 · 七月 30, 2022 阅读大约需 3 分钟 第十二章 使用中的 OpenAPI 属性 第十二章 使用中的 OpenAPI 属性 本附录列出了 API 管理工具在生成 REST 服务类时使用的 OpenAPI 2.0 规范的属性。此处未列出的属性将被忽略。有几个扩展属性;它们的名称以 x-ISC 开头。 Swagger basePath consumes host produces definitions (请注意,API 管理工具在生成代码时不使用 Schema 对象的任何属性) parameters (for details, see “Parameter Object”) #REST API #Caché 0 0 0 76
文章 Michael Lei · 八月 9, 2022 阅读大约需 1 分钟 Caché ObjectScript 快速参考 在Caché基础课程中,同学们同时学习了Caché开发和ObjectScript语法。为了帮助大家完成练习,我们提供了ObjectScript快速参考(俗称 "小抄")。 它不是所有ObjectScript的参考资料! 它是学生在课程中使用的ObjectScript命令和函数的列表,以及对象、集合等的常用语法。它还包含一些有用的宏。 我们正在为开发者社区提供一个pdf版本。 #对象数据模型 #ObjectScript #语言 #Caché 0 0 0 274
文章 姚 鑫 · 八月 20, 2022 阅读大约需 3 分钟 第七章 配置命名空间(二) 第七章 配置命名空间(二) 将全局、例程和包映射添加到命名空间 除了可以访问映射数据库中的全局变量和例程之外,还可以映射来自相同或不同系统上的其他数据库的全局变量、例程和类包。这允许对可以存在于任何地方的数据进行简单引用,并且是命名空间的主要特征。可以映射整个全局变量或全局变量;此功能允许数据轻松跨磁盘。 注意:映射按字母顺序排序;如果指定了下标,则按名称和下标排序。 单击适当的选项开始映射: Global Mappings Routine Mappings Package Mappings Mapping Data to All Namespaces 以下是映射如何在示例航空公司预订应用程序中工作的示意图: 数据和程序存储在数据库数据库中,即物理存储位置,并由名称空间引用,即逻辑引用。 #Caché 0 0 0 55
文章 姚 鑫 · 九月 3, 2022 阅读大约需 2 分钟 第二十一章 控制进程(二) 第二十一章 控制进程(二) 显示进程详细信息 进程详细信息页面显示有关任何进程的详细信息。要从管理门户访问此信息: 显示进程页面(系统操作 > 进程)。 单击相应进程行中的详细信息。 (此选项仅存在于有权维护的进程上。) 该页面还包括特定于所选进程的信息,这些信息被组织成一个通用信息表、一个客户端应用程序详细信息表和一个执行详细信息表: #Caché 0 0 0 28
文章 姚 鑫 · 十二月 16, 2022 阅读大约需 2 分钟 第十五章 使用系统监视器 - 系统监控健康状态 第十五章 使用系统监视器 - 系统监控健康状态 基于发布到消息日志的通知,包括由IRIS 实例直接生成的系统警报以及由 System Monitor 和它的 Health Monitor 组件 System Monitor 在共享内存中的寄存器中维护一个总结整个系统健康状况的单一值。 在启动时,系统健康状态是根据在启动过程中发布到消息日志的系统(而不是系统监视器)警报的数量来设置的。系统监视器运行后,可以通过系统警报或系统监视器警报或警告来提升健康状态。自上次系统警报或系统监视器警报或警告发布后 30 分钟过去后,状态将清除到下一个较低级别。下表显示了如何确定系统健康状态。 #Caché 0 0 0 74
问题 Michael Lei · 一月 9, 2023 如何知道Globals的大小 是否存在返回Global行数量的命令? 例如: ^test(1)="aa"^test(2)="aa"^test(3)="aa"^test(4)="aa"总行数 = 4 #Globals #Caché 0 1 0 162
文章 姚 鑫 · 一月 29, 2023 阅读大约需 3 分钟 第六十章 使用 ^PERFSAMPLE 监控进程 - 预定义分析示例 第六十章 使用 ^PERFSAMPLE 监控进程 - 预定义分析示例 预定义分析示例 以下是从过程状态维度开始的分析示例。 在此示例中,^PERFSAMPLE 在 319994 个样本中找到了 76755 个处于可样本状态的进程样本(如果选择了忽略空闲的选项,则为非空闲): #Caché 0 0 0 62
文章 姚 鑫 · 二月 12, 2023 阅读大约需 2 分钟 第七十四章 使用 irisstat 实用程序监控 IRIS - 查看 irisstat 输出 第七十四章 使用 irisstat 实用程序监控 IRIS - 查看 irisstat 输出 查看 irisstat 输出 可以立即查看 irisstat 数据(通过终端)或重定向到输出文件以供以后分析。查看数据的最常见方法是: 注意:当 IRIS 被强制关闭时,irisstat 会运行以捕获系统的当前状态。作为紧急关闭程序的一部分,输出被添加到消息日志中。 irisstat 文本文件 irisstat 报告可以重定向到文件而不是终端,如果想收集一组 IRIS 工具(诊断报告任务、IRISHung 脚本、^SystemPerformance 实用程序)未提供的一组 irisstat 选项,这可能很有用或者如果在运行这些工具时遇到问题。 诊断报告任务 诊断报告任务会创建一个包含基本信息和高级信息的 HTML 日志文件,InterSystems 全球响应中心 (WRC) 可以使用该文件来解决系统问题。 #Caché 0 0 0 92
文章 姚 鑫 · 三月 26, 2023 阅读大约需 4 分钟 第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移 第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移 备份处于活动状态时自动进行故障转移 当备份处于活动状态时,如果它可以确认故障转移的第二个条件——即主服务器未作为主服务器运行并且在没有人为干预的情况下无法继续运行,则它有资格作为主服务器接管。备份可以通过以下三种方式之一执行此操作: 通过接收来自主要请求它接管的通信。 这发生在主实例正常关闭期间或当主实例检测到它已挂起时。一旦主要发送此消息,它就不能再充当主要并且活动备份可以安全地接管。如果前一个主节点挂起,新的主节点会迫使它关闭。 通过从仲裁器接收到它已与主节点失去联系的信息。 主要和备用 IRIS 实例与仲裁器保持持续联系,仲裁器会在与其他故障转移成员的联系中断或恢复时更新每个实例。当一个网络事件同时将主节点与备份节点和仲裁节点隔离开来时,它就会无限期地进入故障状态。因此,如果一个活动的备份失去了与主的联系,并从仲裁器得知它也失去了与主的联系,备份可以安全地接管,因为主必须要么已经失败,要么被隔离并处于故障状态,因此不能再充当主要角色。恢复连接时,如果以前的主节点挂起,新的主节点会强制关闭它。 #Caché #InterSystems IRIS 0 0 0 75
文章 Louis Lu · 一月 7, 2021 阅读大约需 3 分钟 采用软件定义数据中心 (SDDC) 和超融合基础架构 (HCI) 解决方案的 InterSystems 客户需要重点关注的事项 本文介绍了 InterSystems 客户围绕 SDDC 和 HCI 解决方案的注意事项。 采用软件定义数据中心 (SDDC) 和超融合基础架构 (HCI) 解决方案的 InterSystems 客户需要重点关注的事项 越来越多的 IT 组织正在探究使用SDDC 和 HCI 解决方案的可行性。 这些解决方案看上去很有吸引力,其市场定位为跨异构数据中心和云基础设施可以使得 IT 管理更容易、投入的成本花费更少。 对于 IT 组织来说,潜在的好处是巨大的,许多 InterSystems 客户正在拥抱 SDDC、HCI 或两者兼有。 如果您正在考虑 SDDC 或 HCI 解决方案,请联系您的销售客户经理或销售工程师,安排与技术架构师的通话。 这对于确保成功非常重要。 #性能 #系统管理 #部署 #Caché #Ensemble #InterSystems IRIS 0 0 0 194
文章 姚 鑫 · 二月 4, 2021 阅读大约需 5 分钟 第二十四章 Caché 变量大全 $ZA 变量 # <center> 第二十四章 Caché 变量大全 $ZA 变量 包含当前设备上最后一次读取的状态。 # 大纲 ```java$ZA``` # 描述 `$ZA`包含当前设备上最后一次读取的状态。 不能使用`SET`命令修改此特殊变量。尝试这样做会导致`<SYNTAX>`错误。 # 注意 ## `$ZA`,带终端I / O `$ZA`被实现为一系列位标志,每个位表示一条特定的信息。下表显示了可能的值、它们的含义,以及如何使用模(`#`)和整数除(`\`)运算符测试它们: #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 92
文章 姚 鑫 · 二月 20, 2021 阅读大约需 6 分钟 第四十二章 Caché 变量大全 $ZTIMESTAMP 变量 第四十二章 Caché 变量大全 $ZTIMESTAMP 变量 包含协调世界时间格式的当前日期和时间。 大纲 $ZTIMESTAMP $ZTS 描述 $ZTIMESTAMP包含协调的通用时间值形式的当前日期和时间。这是世界范围内的时间和日期标准;此值很可能与当地的时间(和日期)值不同。 $ZTIMESTAMP将日期和时间表示为以下格式的字符串: ddddd,sssss.fff 其中ddddd是一个整数,指定自1840年12月31日起的天数;sssss是一个整数,指定自当天午夜以来的秒数,fff是一个可变的数字,指定小数秒。这种格式类似于$HOROLOG,只是$HOROLOG不包含分数秒。 假设当前日期和时间(世界协调时)如下: #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 70
文章 姚 鑫 · 三月 7, 2021 阅读大约需 17 分钟 第五章 SQL定义表(二) 第五章 SQL定义表(二) 主键 InterSystems IRIS提供了两种方法来唯一标识表中的行:RowID和主键。 可选的主键是一个有意义的值,应用程序可以使用该值唯一地标识表中的行(例如,联接中的行)。主键可以是用户指定的数据字段,也可以是多个数据字段的组合。主键值必须是唯一的,但不必是整数值。 RowID是一个内部用于标识表中行的整数值。通常,主键是由应用程序生成的值,而RowID是由InterSystems IRIS生成的唯一整数值。 系统会自动创建一个主map,以使用RowID字段访问数据行。如果定义主键字段,系统将自动创建并维护主键索引。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 81
文章 姚 鑫 · 三月 21, 2021 阅读大约需 9 分钟 第十二章 使用嵌入式SQL(五) 第十二章 使用嵌入式SQL(五) 嵌入式SQL变量 以下局部变量在嵌入式SQL中具有特殊用途。这些局部变量名称区分大小写。在过程启动时,这些变量是不确定的。它们由嵌入式SQL操作设置。也可以使用SET命令直接设置它们,或使用NEW命令将其重置为未定义。像任何局部变量一样,值将在过程持续期间或直到设置为另一个值或使用NEW进行定义之前一直存在。例如,某些成功的嵌入式SQL操作未设置%ROWID。执行这些操作后,%ROWID是未定义的或保持设置为其先前值。 %msg %ROWCOUNT %ROWID SQLCODE 这些局部变量不是由Dynamic SQL设置的。 (请注意,SQL Shell和Management Portal SQL接口执行Dynamic SQL。)相反,Dynamic SQL设置相应的对象属性。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 113
文章 姚 鑫 · 四月 15, 2021 阅读大约需 10 分钟 第二章 定义和构建索引(三) # 第二章 定义和构建索引(三) # 位图索引 位图索引是一种特殊类型的索引,它使用一系列位串来表示与给定索引数据值相对应的一组ID值。 位图索引具有以下重要功能: 位图是高度压缩的:位图索引可以比标准索引小得多。这大大减少了磁盘和缓存的使用量。 位图操作针对事务处理进行了优化:与使用标准索引相比,可以在表中使用位图索引,而不会降低性能。 位图上的逻辑操作(counting、AND和OR)经过优化以获得高性能。 SQL引擎包括许多可以利用位图索引的特殊优化。 位图索引的创建取决于表的唯一标识字段的性质: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 71
问题 Michael Lei · 四月 21, 2021 来自英文社区的问题:如何访问另一个进程的对象变量属性,例如%session和%request。 嗨,社区, 我正在尝试访问对象的另一个进程的内容,例如%request和%session。我正在使用类/方法“%SYS.ProcessQuery:VariableByPid”。有谁知道如何从数据库服务器上运行的一个进程中获取诸如%request.Data(“ ID”,1)之类的属性的值? 我想做的例子: set rs=##class(%ResultSet).%New("%SYS.ProcessQuery:VariableByPid") set tsc=rs.Execute(ProcessID,"%request") while rs.%Next() { w "Name:"_$g(rs.Data("Name")),! w "Value:"_$g(rs.Data("Value")),! } do rs.Close() Output: Name:%requestValue:1@%CSP.Request #ObjectScript #Caché 0 1 0 100
文章 Hao Ma · 四月 29, 2021 阅读大约需 3 分钟 WebGateway系列(4): 配置HTTPS访问IRIS的Web服务 经常被问到有关IRIS如何支持SSL,HTTPS的问题,有必要写个东西介绍一下。 HTTPS的原理 简单的说,https实现两个目的:一是访问网站加密,2是确认被访问的网站是真的。 首先,被访问的网站要申请一个证书,这个证书必须是权威机构发放的,比如google, VeriSign等等,所有的浏览器里有预装了这些组织的公钥(Public Key),因此能确认你提供的证书真是这些组织给出的,而这个证书可以证明你的网站的身份。注意证书证明的是提供服务的组织和服务的真实性,和用什么设备没关系,也就是说,IRIS不管证书的事儿。 接下去,被访问的服务器可以生成公钥和私钥,和客户端交换key,生成整个世界只有两者知道的security code,用来两者之间数据的交换。详细的过程和消息交互可以在网上找到很多很好的文章和视频,比如这个: How does HTTPS work? What's a CA? What's a self-signed Certificate?。 #新手 #部署 #Caché 0 0 0 265
文章 姚 鑫 · 五月 6, 2021 阅读大约需 5 分钟 第三章 使用多维存储(全局变量)(二) 第三章 使用多维存储(全局变量)(二) 遍历全局变量中的数据 有许多方法可以遍历(迭代)存储在全局变量中的数据。 $ORDER(下一个/上一个)函数 ObjectScript $Order函数允许顺序访问全局中的每个节点。 $ORDER函数返回给定级别(下标编号)的下一个下标的值。例如,假设定义了以下全局设置: Set ^Data(1) = "" Set ^Data(1,1) = "" Set ^Data(1,2) = "" Set ^Data(2) = "" Set ^Data(2,1) = "" Set ^Data(2,2) = "" Set ^Data(5,1,2) = "" 要查找第一个第一级下标,我们可以使用: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 94
问题 Michael Lei · 五月 18, 2021 来自英文社区:带ECC的SSLConfig 大家好,我可以在RSA和DSA之间进行选择。 ECC似乎不受支持。有没有不使用外部二进制(例如curl)的解决方法? RY #SSL #Caché 0 1 0 73
文章 Michael Lei · 五月 24, 2021 阅读大约需 2 分钟 InterSystems 最佳实践系列之数据平台和性能 - 第 6 部分 Caché 存储 IO 配置文件 我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。 在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。 #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 128
文章 姚 鑫 · 六月 3, 2021 阅读大约需 10 分钟 第十五章 Caché WebSocket 第十五章 Caché WebSocket 使用WebSockets (RFC 6455) web是围绕请求/响应范例构建的:客户机向服务器发送请求,服务器通过向客户机发送响应进行响应。此范式和HTTP本身不允许此通信协议的反向形式,即服务器与客户机启动请求/响应周期。已经开发了许多技术来解决了这个问题,即服务器可以启动与客户机的对话。这些技术通常被称为基于推送或 comet-based的技术,它们都存在不适合在web基础设施上进行全面部署的问题。目前使用的三种主要技术如下所述。 Short Polling 短轮询 使用这种技术,客户端定期发送HTTP请求来检测服务器状态的变化,服务器被编程为立即响应。空响应表示没有变化。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 87
文章 姚 鑫 · 六月 10, 2021 阅读大约需 4 分钟 第三章 指定输出的字符集 第三章 指定输出的字符集 指定输出的字符集 若要指定要在输出文档中使用的字符集,可以设置Writer实例的Charset属性。选项包括“UTF-8”、“UTF-16”以及InterSystems IRIS支持的其他字符集。 Writing the Prolog XML文件的序言(根元素之前的部分)可以包含文档类型声明、处理指令和注释。 影响Prolog的属性 在writer实例中,以下属性会影响prolog: Charset 控制两件事:XML声明中的字符集声明和(相应的)输出中使用的字符集编码。 NoXmlDeclaration 控制输出是否包含XML声明。在大多数情况下,默认值是0,这意味着已经编写了声明。如果没有指定字符集,并且输出定向到字符串或字符流,则默认为1,并且不写入任何声明。 #Caché #InterSystems IRIS 0 0 0 150
文章 姚 鑫 · 六月 22, 2021 阅读大约需 5 分钟 第十五章 XML检查属性 第十五章 XML检查属性 检查属性的基本方法 可以使用%XML.Node的以下方法。以检查当前节点的属性。 - AttributeDefined() 如果当前元素具有具有给定名称的属性,则返回非零(TRUE)。 - FirstAttributeName() 返回当前元素的第一个属性的属性名称。 - GetAttributeValue() 返回给定属性的值。如果元素没有该属性,则该方法返回NULL。 - GetNumberAttributes() 返回当前元素的属性数。 - LastAttributeName() 返回当前元素的最后一个属性的属性名称。 - NextAttributeName() 在给定属性名称的情况下,无论指定的属性是否有效,此方法都会按排序顺序返回下一个属性的名称。 - PreviousAttributeName() 在给定属性名称的情况下,无论指定的属性是否有效,此方法都会按排序顺序返回上一个属性的名称。 #Caché #InterSystems IRIS 0 0 0 73
文章 Claire Zheng · 七月 6, 2021 Caché从零基础到精通-第3讲_语法规则 //player.bilibili.com/player.html?aid=974040954&bvid=BV1y44y1q7yo&cid=365368802&page=1[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。] #视频 #Caché 0 0 0 98
文章 姚 鑫 · 七月 15, 2021 阅读大约需 4 分钟 第四章 使用目录 第四章 使用目录 使用目录 %Library。File类提供了几个类方法,允许对目录执行各种操作。 创建目录 若要创建目录,请使用CreateDirectory()方法,该方法返回一个布尔值来指示成功或失败。这个方法需要两个参数。第一个参数是要创建的目录的名称。第二个参数是输出参数。如果为负,它包含操作系统返回的错误代码,以防方法失败。 如果e:\temp已经存在,以下命令将失败,并显示Windows系统错误代码183,这意味着“当文件已经存在时,无法创建该文件。” #Caché 0 0 0 90
文章 姚 鑫 · 八月 9, 2021 阅读大约需 6 分钟 方法关键字SoapRequestMessage,SoapTypeNameSpace,SqlName,SqlProc 第八十一章 方法关键字 - SoapRequestMessage 当多个web方法具有相同的SoapAction时使用此方法。 在默认场景中,该关键字指定请求消息的SOAP正文中的顶级元素的名称。 仅适用于定义为web服务或web客户端的类。 用法 要在请求消息的SOAP体中指定顶级元素的名称,请使用以下语法: Method name(formal_spec) As returnclass [ WebMethod, SoapAction = "MyAct", SoapRequestMessage="MyReqMessage" ] { //implementation } 其中soaprequestmessage是有效的XML标识符。 详解 注意:此关键字仅对包装的文档/文字document/literal消息有效。 #Caché 0 0 0 60
文章 姚 鑫 · 八月 21, 2021 阅读大约需 3 分钟 查询关键字WebMethod,CodeMode,Event,Final 第129章 查询关键字 - WebMethod 指定这个类查询是否为web方法。 仅应用于定义为web服务或web客户端的类。 用法 要指定这个查询是一个web方法,请使用以下语法: Query name(formal_spec) As classname [ WebMethod ] { //implementation } 否则,忽略该关键字或将Not放在该关键字之前。 详情 这个关键字指定这个类查询是否是一个web方法,是否可以通过SOAP协议调用。 默认 如果忽略此关键字,则无法以web方法调用查询。 生成的类 当你将这个关键字添加到类查询并编译类时,类编译器会生成两个额外的类: #Caché 0 0 0 69
文章 Claire Zheng · 九月 2, 2021 Caché从零基础到精通-第15讲 间接寻址 //player.bilibili.com/player.html?aid=674371552&bvid=BV1AU4y1H7Wc&cid=374521031&page=1[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。] #视频 #Caché 0 0 0 72
文章 姚 鑫 · 九月 5, 2021 阅读大约需 6 分钟 第七章 SQL命令 CREATE INDEX(二) 第七章 SQL命令 CREATE INDEX(二) UNIQUE关键字 使用UNIQUE关键字,可以指定索引中的每条记录都有一个唯一的值。 更具体地说,这确保了索引(以及包含索引的表)中的两条记录不能具有相同的排序值。 默认情况下,大多数索引使用大写字符串排序(使搜索不区分大小写)。 在本例中,值“Smith”和“SMITH”被认为是相等的,而不是唯一的。 CREATE INDEX不能指定非默认索引字符串排序规则。 通过在类定义中定义索引,可以为各个索引指定不同的字符串排序规则。 可以更改名称空间的默认排序规则,使字段/属性在默认情况下区分大小写。 更改此选项需要重新编译命名空间中的所有类并重新构建所有索引。 转到Management Portal,选择Classes选项,为存储的查询选择名称空间,并使用Compile选项重新编译相应的类。 然后重建所有指数。 它们将区分大小写。 注意:当表的数据被其他用户访问时,不要重建索引。 这样做可能会导致不准确的查询结果。 #SQL #Caché 0 0 0 115