文章 姚 鑫 · 六月 16, 2021 阅读大约需 7 分钟 第九章 将XML导入到对象中 第九章 将XML导入到对象中 本章介绍如何使用%XML.Reader将XML文档导入到 IRIS对象中。 注意:使用的任何XML文档的XML声明都应该指明该文档的字符编码,并且文档应该按照声明的方式进行编码。如果未声明字符编码, IRIS将使用前面的“输入和输出的字符编码”中描述的默认值。如果这些默认值不正确,请修改XML声明,使其指定实际使用的字符集。 还可以使用%XML.Reader读取任意XML文档并返回DOM(文档对象模型)。 创建XML读取器概述 IRIS提供了一些工具,用于读取XML文档并创建与该文档的元素相对应的启用XML的 IRIS对象的一个或多个实例。基本要求如下: 该对象的类定义必须扩展%XML.Adaptor。除了少数例外,该对象引用的类还必须扩展%XML.Adaptor。 提示:如果相应的XML模式可用,可以使用它来生成类(以及任何支持的类)。 #Caché #InterSystems IRIS 0 0 0 119
公告 jieliang liu · 六月 15, 2021 InterSystems IRIS、IRIS for Health和HealthShare Health Connect 2021.1现已正式发布。 InterSystems非常高兴地宣布,InterSystems IRIS数据平台、InterSystems IRIS for Health和HealthShare Health Connect的2021.1版本现已向我们的客户和合作伙伴全面开放。 这个版本的为开发者提供了更大的自由度,使他们可以用自己选择的编程语言在服务器端和客户端建立快速和强大的应用程序。这个版本还使用户能够通过新的和更快的分析能力更有效地消费大量的信息。 #版本 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 161
文章 姚 鑫 · 六月 15, 2021 阅读大约需 5 分钟 第八章 Other Options of the Writer 第八章 Other Options of the Writer Other Options of the Writer Canonicalize() 方法的作用是:以规范化的形式编写XML节点。此方法具有以下签名: #Caché #InterSystems IRIS 0 0 0 73
文章 Michael Lei · 六月 15, 2021 阅读大约需 8 分钟 InterSystems 最佳实践之--LVM PE 条带化使超融合存储吞吐量最大化 本帖概述了通过为 InterSystems 数据平台(InterSystems IRIS、Caché 和 Ensemble)上的数据库磁盘创建 LVM 物理盘区 (PE) 条带来实现低延迟存储 IO 的最佳实践配置,并提供了有用链接。 一致的低延迟存储是获得最佳数据库应用程序性能的关键。 例如,对于在 Linux 上运行的应用程序,经常在数据库磁盘中使用逻辑卷管理器 (LVM) ,因为它能够扩展卷和文件系统,或者为在线备份创建快照。 对于数据库应用程序,在使用 LVM PE 条带化逻辑卷的情况下,并行写入还可提高数据 I/O 的效率,从而有助于提高大规模连续读取和写入的性能。 #InterSystems 业务解决方案和架构 #Red Hat Enterprise Linux (RHEL) #平台 #系统管理 #部署 #Caché #InterSystems IRIS 0 0 0 363
文章 姚 鑫 · 六月 13, 2021 阅读大约需 6 分钟 第六章 控制名称空间的使用 第六章 控制名称空间的使用 控制名称空间的使用 如将对象投射到XML中所述,可以将类分配给名称空间,以便相应的XML元素属于该名称空间,还可以控制类的属性是否也属于该名称空间。 将类中的对象导出为XML时,%XML.Write提供其他选项,例如指定元素是否为其父级的本地元素。本节包括以下主题: 默认情况下,%XML.Writer如何处理命名空间 如何指定本地元素是否合格 如何指定元素是否为其父元素的本地元素 如何指定属性是否合格 命名空间分配方式的摘要 注意:在InterSystems IRIS XML支持中,可以按类指定名称空间。通常,每个类都有自己的命名空间声明;但是,通常只需要一个或少量的命名空间。还可以在逐个类的基础上指定相关信息(而不是以某种全局方式)。这包括控制元素是否为其父元素的本地元素以及子元素是否合格的设置。为简单起见,建议使用一致的方法。 #Caché #InterSystems IRIS 0 0 0 101
文章 姚 鑫 · 六月 12, 2021 阅读大约需 6 分钟 第五章 生成XML元素 第五章 生成XML元素 生成XML元素 如果使用RootElement()启动文档的根元素,则负责生成该根元素内的每个元素。有三个选择: 将对象生成为元素 可以从InterSystems IRIS对象生成输出作为元素。在本例中,使用object()方法,该方法写入支持XML的对象。输出包括该对象中包含的所有对象引用。可以指定此元素的名称,也可以使用在对象中定义的默认值。 只能在RootElement()和EndRootElement()方法之间使用object()方法。 此示例为给定启用XML的类的所有已保存实例生成输出: #Caché #InterSystems IRIS 0 0 0 90
文章 姚 鑫 · 六月 11, 2021 阅读大约需 4 分钟 第四章 添加命名空间声明 第四章 添加命名空间声明 添加命名空间声明 默认行为 在%XML.Writer会自动插入命名空间声明,生成命名空间前缀,并在适当的地方应用前缀。例如,以下类定义: Class Sample.Person Extends (%Persistent, %Populate, %XML.Adaptor) { Parameter NAMESPACE = "http://www.yaoxin.com"; } 如果导出此类的多个对象,则会看到类似以下内容: #Caché #InterSystems IRIS 0 0 0 114
文章 姚 鑫 · 六月 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 148
问题 Michael Lei · 六月 8, 2021 来自海外社区的问题:是否有办法通过管理门户将Global以XML形式导出? Hi colleagues! Is there a way to export globals in XML if I have the access to Management Portal or any other web app? Currently, it gives the option to export into gof format only. Hi 同事们好! 是否有办法通过管理门户或任何其他的web app以XML的形式导出globals? 目前,它只提供了导出为gof格式的选项。 #Globals #管理门户 #InterSystems IRIS 0 1 0 100
文章 姚 鑫 · 六月 9, 2021 阅读大约需 6 分钟 第二章 从对象写入XML输出 第二章 从对象写入XML输出 本章介绍如何从InterSystems IRIS对象生成XML输出。 创建XML编写器概述 InterSystems IRIS提供了用于为InterSystems IRIS对象生成XML输出的工具。可以指定XML投影的详细信息,如将对象投影到XML中所述。然后创建一个Writer方法,该方法指定XML输出的整体结构:字符编码、对象的显示顺序、是否包括处理指令等。 基本要求如下: 如果需要特定对象的输出,则该对象的类定义必须扩展%XML.Adaptor。除了少数例外,该对象引用的类还必须扩展%XML.Adaptor。 输出方法必须创建%XML.Writer的实例,然后使用该实例的方法。 下面的终端会话显示了一个简单的示例,在该示例中,我们访问启用了XML的对象并为其生成输出: #Caché #InterSystems IRIS 1 0 1 90
文章 姚 鑫 · 六月 8, 2021 阅读大约需 8 分钟 第一章 InterSystems XML工具简介 第一章 InterSystems XML工具简介 介绍了如何使用 IRIS XML工具。 InterSystems IRIS为XML处理带来了对象的力量--可以使用对象作为XML文档的直接表示,反之亦然。由于InterSystems IRIS包括本机对象数据库,因此可以将此类对象直接用于数据库。此外,InterSystems IRIS提供了用于处理XML文档和DOM(文档对象模型)的工具,即使它们与任何InterSystems IRIS类无关。 用XML表示对象数据 有些InterSystems IRIS XML工具主要用于支持XML的类。要为类启用XML,需要将%XML.Adaptor添加到其超类列表中。%XML.Adaptor类使能够将该类的实例表示为XML文档。可以添加类参数和属性参数来微调投影。 #XML #Caché #InterSystems IRIS 0 0 0 178
文章 Michael Lei · 六月 7, 2021 阅读大约需 1 分钟 翻译文章:用IRIS来建立数据服务Build a digital service with IRIS 这是一个系列的第一篇文章。我将使用bpmn符号提供细节,如何开发、部署、保护、运营和消费IRIS数字服务,并与IRIS文档相联系。每一个子流程都将用一个单独的bpmn图来描述。这就是宏观过程。 Documentation links: #InterSystems 业务解决方案和架构 #InterSystems IRIS 0 0 0 79
文章 姚 鑫 · 六月 5, 2021 阅读大约需 5 分钟 第七章 Caché JSON %JSON快速参考 第七章 Caché JSON %JSON快速参考 %JSON快速参考 本节提供本章中讨论的%JSON方法、属性和参数的快速参考。 %JSON.Adaptor方法 这些方法提供了从JSON序列化和序列化到JSON的能力。 %JSONExport() %JSON.Adaptor.%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。 #JSON #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 160
文章 姚 鑫 · 六月 5, 2021 阅读大约需 7 分钟 第六章 Caché JSON 使用JSON适配器 第六章 Caché JSON 使用JSON适配器 JSON适配器是一种将ObjectScript对象(registered, serial or persistent)映射到JSON文本或动态实体的方法。本章涵盖以下主题: #JSON #Caché #Ensemble #InterSystems IRIS 0 0 0 133
文章 Hao Ma · 六月 4, 2021 阅读大约需 3 分钟 JSON in IRIS (1) - Dynamic Object 之所以称为Dynamic,是说这个对象在代码编译的时候可以不定义对象的属性和结构,在runtime时才根据装入的数据来产生对象定义。IRIS里用Dynamic Object来处理JSON数据。简单说: 先定义一个Dynamic Object, 把JSON数据装进去,然后用对象的方式处理JSON文档。 让我们看看是它是怎么工作的。 创建一个Dynamic Object很简单, 标准而且啰嗦的写法是: set dynObject1 = ##class(%DynamicObject).%New() 大家通常用简单的写法,像这样用一个{}来定义Dynamic Object: #JSON #新手 #InterSystems IRIS 0 0 0 211
文章 姚 鑫 · 六月 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
文章 姚 鑫 · 六月 2, 2021 阅读大约需 2 分钟 第十四章 其他InterSystems %Net工具 第十四章 其他InterSystems %Net工具 下面是%Net中其他一些有用类的简短列表: %Net.URLParser InterSystems IRIS提供了一个实用程序类%Net.URLParser,可以使用它将URL字符串解析为其组成部分。例如,当您重定向HTTP请求时,这很有用。 该类包含一个类方法Parse(),它接受一个包含URL值的字符串,并通过引用返回一个包含URL各部分的数组。例如: #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 81
文章 姚 鑫 · 六月 1, 2021 阅读大约需 3 分钟 第十三章 使用SSH 第十三章 使用SSH %Net.SSH软件包支持SSH(安全外壳)通信。本主题简要介绍此包中的类。 创建SSH会话 %Net.SSH.Session表示SSH会话。要使用此类,请执行以下操作: 创建类的实例。 使用Connect()实例方法连接到服务器。 使用AuthenticateWithKeyPair()或AuthenticateWithUsername()向服务器验证身份。 使用%Net.SSH.Session的其他方法执行进出远程系统的单个文件的SCP(安全复制)操作、执行远程命令、传输TCP通信或执行SFTP操作。 例如,使用SFTP将会话用于SFTP操作。此方法通过引用返回可用于SFTP操作的%Net.SSH.SFTP实例。 #SSL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 106
文章 Michael Lei · 六月 1, 2021 阅读大约需 4 分钟 使用 InterSystems IRIS 实现 Data Fabric 架构 什么是 Data Fabric? “这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。 (Alan McSweeney) #InterSystems 业务解决方案和架构 #InterSystems IRIS 0 0 0 313
文章 姚 鑫 · 五月 31, 2021 阅读大约需 4 分钟 第十二章 IBM WebSphere MQ检索邮件 第十二章 IBM WebSphere MQ检索邮件 检索邮件 要检索邮件,请执行以下操作: 按照“创建连接对象”中的说明创建连接对象。在这种情况下,请创建%Net.MQRecv的实例。Connection对象有一个消息队列,可以从中检索消息。 根据需要调用以下方法: - %Get()-通过引用返回字符串消息作为第一个参数。 - %GetStream()-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename属性才能对其进行初始化。不支持二进制流。 #FTP #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 110
文章 Louis Lu · 五月 30, 2021 阅读大约需 7 分钟 如何保存、查询 List 类型数据 本文主要总结了在InterSystems IRIS 中如何保存、查询List类型数据 假设我们设计的对象中包含姓名,同时每个姓名下可以包含多个电话。我们可以使用下面方法进行处理。 1. 传统方式 我们可以把每一个姓名和电话放在不同列中。 Class Test.Person Extends %Persistent { Property Name As %String; Property Phone As %String; } 我们使用SQL语句插入数据: #InterSystems IRIS 0 0 0 146
文章 姚 鑫 · 五月 30, 2021 阅读大约需 8 分钟 第十一章 发送和接收IBM WebSphere MQ消息 第十一章 发送和接收IBM WebSphere MQ消息 InterSystems IRIS为IBM WebSphere MQ提供了一个接口,可以使用该接口在InterSystems IRIS和IBM WebSphere MQ的消息队列之间交换消息。要使用此接口,必须能够访问IBM WebSphere MQ服务器,并且IBM WebSphere MQ客户端必须与InterSystems IRIS在同一台计算机上运行。 该接口由%Net.MQSend和%Net.MQRecv类组成,这两个类都是%Net.abstractMQ的子类。这些类使用由InterSystems IRIS在所有合适的平台上自动安装的动态链接库。(这是Windows上的MQInterface.dll;其他平台的文件扩展名不同。)。反过来,InterSystems IRIS动态链接库需要IBM WebSphere MQ动态链接库。 该界面仅支持发送和接收文本数据,不支持二进制数据。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 296
文章 姚 鑫 · 五月 29, 2021 阅读大约需 4 分钟 第十章 使用FTP 第十章 使用FTP IRIS提供了一个类%Net.FtpSession,可以使用它从InterSystems IRIS内建立与FTP服务器的会话。 # 建立FTP会话 要建立FTP会话,请执行以下操作: #FTP #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 131
文章 姚 鑫 · 五月 28, 2021 阅读大约需 4 分钟 第九章 创建、编写和阅读MIME邮件 第九章 创建、编写和阅读MIME邮件 Iris提供了一个可以用于创建MultiPart Mime消息(%Net.MimePart)的类。创建要添加到SOAP消息的附件时,请使用此类;请参阅创建Web服务和Web客户端。因为MIME是一个常见的标准,所以有许多其他可能的应用程序,例如电子邮件处理和HTTP Multipart Post。 # MIME消息概述 MIME格式的文档被称为MIME部分。每个MIME部件都有标题,包含邮件正文(文本或二进制)或包含额外的MIME部件。具有MIME版本标题的MIME部分可以用作顶级文档,称为MIME消息。下图显示了示例: 在该示例中,E和F具有未显示的附加子部分。 要表示MIME部件,请使用 %Net.MIMEPart类,该类提供用于设置零件的标题和内容的属性。 # 创建MIME部分 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 100
文章 姚 鑫 · 五月 27, 2021 阅读大约需 5 分钟 第八章 处理收到的电子邮件 第八章 处理收到的电子邮件 处理收到的电子邮件 本节介绍如何处理通过%Net.POP3检索到的电子邮件(%Net.MailMessage)。 Message Basics 检索电子邮件(%Net.MailMessage)后,通常首先确定它是哪种类型的邮件以及如何阅读它;也就是说,它是否是多部分邮件以及各部分是否是二进制的。在此步骤中,您可以使用ContentType属性。或者,可以使用IsBinary、IsHTML和IsMultiPart属性,它们间接提供与contentType相同的信息。 如果消息是多部分消息,则每个部分都是%Net.MailMessagePart的一个实例。 Message Headers 消息本身和消息的每个部分都有一组标头。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 122
文章 姚 鑫 · 五月 26, 2021 阅读大约需 6 分钟 第七章 从POP3服务器提取电子邮件 第七章 从POP3服务器提取电子邮件 将附件另存为文件 Content-Disposition标头可以指定附件,可以带文件名,也可以不带文件名。例如: Content-Disposition: attachment; filename=genome.jpeg; 如果Content-Disposition标头确实指定了附件,则%Net.POP3实例可以将邮件中的所有附件保存到文件。要实现这一点,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 90
文章 姚 鑫 · 五月 25, 2021 阅读大约需 7 分钟 第六章 从POP3服务器提取电子邮件 第六章 从POP3服务器提取电子邮件 从POP3服务器提取电子邮件 与POP3服务器通信 如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执行一系列影响邮箱的操作,然后提交或回滚任何更改。要在系统间IRIS中执行此操作,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 90
文章 Michael Lei · 五月 24, 2021 阅读大约需 1 分钟 大数据平台的五个等级 作为一个软件架构师,如果要设计一个企业级的架构来满足当前的业务需求时,你需要达到5级的水平,这是一个巨大的挑战。有了InterSystems IRIS。这是有可能的。通过1个产品,你可以得到SQL + NoSQL + ESB + BI + Open Analytics + Real Time Virtual cubes + NLP + AutoML + ML(使用Python)和高级云支持 + Sharding支持。 #InterSystems 业务解决方案和架构 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 145
文章 姚 鑫 · 五月 24, 2021 阅读大约需 7 分钟 第五章 向邮件添加附件 第五章 向邮件添加附件 向邮件添加附件 可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart或%Net.MailMessage的实例)。要执行此操作,请使用以下方法: 这些方法中的每一种都会将附件添加到原始邮件(或邮件部分)的Parts数组中,并自动将IsMultiPart属性设置为1。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 72
文章 Michael Lei · 五月 24, 2021 阅读大约需 3 分钟 将 pButtons 数据提取到 csv 文件以便绘制图表 本帖的目的是回答一个问题。 在本系列的第二篇帖子中,我包括了从 pButtons 提取的性能数据的图表。 有人在线下问我,有没有比剪切/粘贴更快的方法从 pButtons .html文件中提取 mgstat 等指标,以便在 Excel 中绘图。 参见:- 第 2 部分 - 研究收集的指标 pButtons 将其收集的数据编译成一个 html 文件,以便发送给 WRC 和查看整理的数据。 不过,尤其是对于长时间(如 24 小时)进行收集的 pButtons 来说,一些基于时间的数据(如 mgstat、vmstat 等)以图形方式查看更容易查找趋势或模式。 #CSV #性能 #系统管理 #InterSystems IRIS 0 0 0 104