文章 姚 鑫 · 五月 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 102
文章 姚 鑫 · 五月 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 89
文章 Michael Lei · 五月 26, 2021 阅读大约需 1 分钟 Intersystems IRIS 安装手册 https://www.intersystems.com/isc-resources/wp-content/uploads/sites/24/I... #InterSystems IRIS for Health 0 4 0 339
文章 姚 鑫 · 五月 25, 2021 阅读大约需 7 分钟 第六章 从POP3服务器提取电子邮件 第六章 从POP3服务器提取电子邮件 从POP3服务器提取电子邮件 与POP3服务器通信 如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执行一系列影响邮箱的操作,然后提交或回滚任何更改。要在系统间IRIS中执行此操作,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 89
文章 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 143
文章 姚 鑫 · 五月 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 阅读大约需 2 分钟 InterSystems 最佳实践系列之数据平台和性能 - 第 6 部分 Caché 存储 IO 配置文件 我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。 在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。 #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 123
文章 Michael Lei · 五月 24, 2021 阅读大约需 7 分钟 InterSystems 数据平台和性能 – 第 1 篇 您的应用程序已部署,一切运行正常。 很好,击个掌! 然后电话突然响个不停 – 用户投诉应用程序有时很“慢”。 这是什么意思? 有时? 您有哪些工具,查找和解决这个缓慢问题应查看哪些统计数据? 您的系统基础架构是否能承担用户负载的任务? 在投入生产之前,应该询问哪些基础架构设计问题? 如何自信地为新硬件规划容量,而不会过度规定? 如何停止电话铃声? 如何一开始就不让它响? #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 183
文章 姚 鑫 · 五月 23, 2021 阅读大约需 7 分钟 第四章 收发电子邮件 第四章 收发电子邮件 本主题描述如何使用InterSystems IRIS发送和接收MIME电子邮件消息。 注意:本主题中的示例是经过组织的,因此管理电子邮件的方法可以用于不同的电子邮件服务器,这在测试和演示期间非常有用。这不一定是最适合生产需要的代码组织。 支持电子邮件协议 电子邮件使用标准协议通过Internet发送消息。 InterSystems IRIS支持以下三种协议: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 69
文章 姚 鑫 · 五月 23, 2021 阅读大约需 6 分钟 第三章 发送HTTP请求 第三章 发送HTTP请求 发送HTTP请求 创建HTTP请求后,使用以下方法之一发送该请求: Delete() method Delete(location As %String = "", test As %Integer = 0, reset As %Boolean = 1) as %Status 发出HTTP DELETE请求。 Get() method Get(location As %String = "", test As %Integer = 0, reset As %Boolean = 1) as %Status 发出HTTP GET请求。此方法使Web服务器返回请求的页面。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 109
文章 姚 鑫 · 五月 21, 2021 阅读大约需 6 分钟 第二章 设置和获取HTTP标头 第二章 设置和获取HTTP标头 设置和获取HTTP标头 可以设置和获取HTTP标头的值。 %Net.HttpRequest的以下每个属性都包含具有相应名称的HTTP标头的值。如果不设置这些属性,则会自动计算它们: #.NET #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 169
文章 姚 鑫 · 五月 20, 2021 阅读大约需 9 分钟 第一章 发送HTTP请求 第一章 发送HTTP请求 本主题介绍如何发送HTTP请求(如POST或GET)和处理响应。 HTTP请求简介 可以创建%Net.HttpRequest的实例来发送各种HTTP请求并接收响应。此对象相当于Web浏览器,可以使用它发出多个请求。它会自动发送正确的cookie,并根据需要设置Referer标头。 要创建HTTP请求,请使用以下常规流程: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 221
文章 Nicky Zhu · 五月 20, 2021 阅读大约需 7 分钟 互操作消息统一管理系列:SearchTable加速检索 在上一篇文章《互操作消息统一管理系列:Message Bank》中,我们了解到在Message Bank中,消息均以半结构化(XML)或非结构化(Stream)的形式保存,因此无法与客户端的结构化消息一样,直接支持基于索引的检索。为此,需要在Message Bank中定义Search Table以支持查询。关于Search Table的定义和作用,请查阅https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI...。 #API #InterSystems 业务解决方案和架构 #互操作性 #企业消息库 #消息搜索 #监视 #系统管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 152
文章 Nicky Zhu · 五月 20, 2021 阅读大约需 7 分钟 互操作消息统一管理系列:MessageBank 一. 企业信息库简介 企业信息库(MessageBank)是一个可选的远程归档设施,可以从多个来自不同实例的互操作性Production中收集信息、事件日志项目和搜索表项。如下图所示: 这套环境由两种角色的实例构成: 企业信息库服务器,它本身也是一个Production,完全由Message Bank服务组成,接收来自任何数量的客户Production提交的消息、日志等。 客户端Operation(Message Bank Operation),将其添加到一个正在运行的Production中,并用企业信息库服务器的地址进行配置。如连接通畅,消息和日志即可自动转发到Message Bank并在其中存储。 为了使你能方便地看到信息库中的信息,InterSystems IRIS®提供了以下附加选项。 对于企业信息库实例,管理门户自动包括企业监控器页面,在那里你可以监控客户端Production的状态,浏览消息库,并对被监控客户的消息进行检索。 对于每个客户端实例,你在消息库实例中配置一个到企业监控器的链接。 #API #InterSystems 业务解决方案和架构 #消息搜索 #监视 #互操作性 #企业消息库 #系统管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 183
文章 姚 鑫 · 五月 19, 2021 阅读大约需 2 分钟 IRIS 单元测试 IRIS 单元测试 第一章 单元测试概述☆☆☆☆ 第二章 使用%UnitTest进行单元测试☆☆☆☆ 第三章 执行测试☆☆☆ 第四章 使用Setup和tear Down方法执行测试☆☆☆ 前言 #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
文章 姚 鑫 · 五月 18, 2021 阅读大约需 6 分钟 第四章 使用Setup和tear Down方法执行测试 第四章 使用Setup和tear Down方法执行测试 示例:使用Setup和tear Down方法执行测试 以通常的方式执行新的单元测试。 #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 53
文章 Michael Lei · 五月 17, 2021 阅读大约需 2 分钟 iris-fhir-portal 概述 我创建了 iris-fhir-portal 来参加当前竞赛 InterSystems IRIS for Health FHIR,本篇快速概述旨在介绍我的应用程序提供的功能。 iris-fhir-portal 的目标是说明使用 IRIS for Health 中的 FHIR 功能创建患者图表并让用户拥有自己的数据有多么简单。 #FHIR #InterSystems IRIS for Health #Open Exchange Open Exchange app 0 0 0 94
文章 姚 鑫 · 五月 17, 2021 阅读大约需 5 分钟 第三章 执行测试 第三章 执行测试 示例:执行测试 现在使用%UnitTest.Manager.RunTest执行单元测试。以下是方法: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 80
文章 Michael Lei · 五月 16, 2021 阅读大约需 8 分钟 将普通 ObjectScript 持久化类暴露为 FHIR 代码系统和值集 FHIR 术语服务规范描述了一组对 CodeSystem、ValueSet 和 ConceptMap 资源的操作。 在这些操作中,以下四种操作似乎是最为广泛采用的: CodeSystem ValueSet $lookup$validate-code $expand$validate-code 开发该规范的部分实现一直是探索 IRIS for Health 2020.1 中引入的全新 FHIR 框架的有效途径。 本实现包括上述四种操作,并支持与 CodeSystem 和 ValueSet 资源的读取和搜索交互。 需要注意的是,本实现使用普通 ObjectScript 持久化类作为源术语表。 #FHIR #ObjectScript #InterSystems IRIS for Health Open Exchange app 0 0 0 169
文章 姚 鑫 · 五月 16, 2021 阅读大约需 6 分钟 第二章 使用%UnitTest进行单元测试 第二章 使用%UnitTest进行单元测试 本教程的第二部分介绍了如何使用%UnitTest包对InterSystems IRIS代码进行单元测试。完成本教程的这一部分后,将能够: 解释%UnitTest包中三个主要类的角色。 列出基于%UnitTest包的单元测试类和方法的要求。 创建并执行方法的单元测试。 浏览%UnitTest.Manager创建的测试报告。 执行单元测试时,使用%UnitTest.TestCase方法初始化和还原数据库数据。 什么是%UnitTest? %UnitTest包是一组为IRIS提供测试框架的类。在结构上,它类似于xUnit测试框架。%UnitTest为创建和执行以下各项的单元测试提供类和工具: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 77
文章 姚 鑫 · 五月 15, 2021 阅读大约需 4 分钟 第一章 单元测试概述 第一章 单元测试概述 本教程的第一部分概述了单元测试。完成本教程的这一部分后,将能够: - 定义单元测试并区分单元测试和集成测试 - 列出单元测试的几个好处 - 描述InterSystems IRIS %UnitTest包和xUnit测试框架之间的相似性。 - 列出软件开发中测试优先方法经常声称的几个好处。 什么是单元测试? 单元测试是对单个代码模块的正确性的测试,例如,方法或类的测试。通常,开发人员在开发代码时为其代码创建单元测试。典型的单元测试是一种执行方法的方法,该方法测试并验证该方法是否为给定的一组输入生成了正确的输出。 单元测试不同于集成测试。集成测试验证了一组代码模块交互的正确性。单元测试仅单独验证代码模块的正确性。一组代码模块的集成测试可能会失败,即使每个模块都通过了单元测试。 为什么要进行单元测试? 单元测试提供了许多好处,包括: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 56
文章 姚 鑫 · 五月 14, 2021 阅读大约需 2 分钟 Caché Global Caché Global 第一章 简介global☆☆☆☆☆ 第二章 全局变量结构(一)☆☆☆☆☆ 第二章 全局变量结构(二)☆☆☆☆☆ 第三章 使用多维存储(全局变量)(一)☆☆☆☆☆ 第三章 使用多维存储(全局变量)(二)☆☆☆☆☆ #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 167
文章 姚 鑫 · 五月 14, 2021 阅读大约需 3 分钟 第六章 临时全局变量和IRISTEMP数据库 第六章 临时全局变量和IRISTEMP数据库 对于某些操作,可能需要全局变量的功能,而不需要无限期保存数据。例如,可能希望使用全局对某些不需要存储到磁盘的数据进行排序。对于这些操作,InterSystems IRIS提供了临时全局机制。该机制的工作方式如下: 对于应用程序名称空间,可以定义一个全局映射,以便将具有特定命名约定的全局变量映射到IRISTEMP数据库,该数据库是一个特殊的数据库,如下所述。 例如,可以定义一个全局映射,以便将名称为^AcmeTemp*的所有全局变量映射到IRISTEMP数据库。 - 当代码需要临时存储数据并再次读取它时,代码将向使用该命名约定的全局变量写入数据,并从全局变量读取数据。 例如,要保存值,代码可能会执行以下操作: set ^AcmeTempOrderApp("sortedarray")=some value 然后,稍后代码可能会执行以下操作: #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 76
文章 姚 鑫 · 五月 13, 2021 阅读大约需 4 分钟 第五章 管理全局变量(二) 第五章 管理全局变量(二) 在全局变量中查找值 “查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。 要访问和使用此页,请执行以下操作: 显示“全局变量”页。 选择要使用的全局变量。为此,请参阅“全局页简介”一节中的步骤2和3。 单击查找按钮。 对于查找内容,输入要搜索的字符串。 (可选)清除大小写匹配。默认情况下,搜索区分大小写。 单击Find First或Find All。 然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。 如果使用的是Find First,请根据需要单击Find Next以查看下一个节点。 完成后,单击关闭窗口。 执行批量更换 注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 61
文章 姚 鑫 · 五月 13, 2021 阅读大约需 4 分钟 第五章 管理全局变量(二) 第五章 管理全局变量(二) 在全局变量中查找值 “查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。 要访问和使用此页,请执行以下操作: 显示“全局变量”页。 选择要使用的全局变量。为此,请参阅“全局页简介”一节中的步骤2和3。 单击查找按钮。 对于查找内容,输入要搜索的字符串。 (可选)清除大小写匹配。默认情况下,搜索区分大小写。 单击Find First或Find All。 然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。 如果使用的是Find First,请根据需要单击Find Next以查看下一个节点。 完成后,单击关闭窗口。 执行批量更换 注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 63
文章 Michael Lei · 五月 12, 2021 阅读大约需 16 分钟 InterSystems 最佳实践系列之数据平台和性能 – 第 9 篇 InterSystems IRIS VMware 最佳实践指南 本贴提供了在 VMware ESXi 5.5 及更高版本的环境中部署 Caché 2015 及更高版本时,关于配置、系统规模调整和容量规划等方面的指南。 我假定您已经了解 VMware vSphere 虚拟化平台,所以直接给出推荐。 本指南中的推荐不特定于任何具体硬件或站点特定的实现,也不应作为规划和配置 vSphere 部署的全面指南,而是一份您可以做出选择的最佳实践配置清单。 我希望您的 VMware 专家实施团队能针对具体站点对这些推荐进行评估。 这里是 InterSystems 数据平台和性能系列的其他帖子的列表。 注:本帖更新于 2017 年 1 月 3 日,强调必须为生产数据库实例设置虚拟机内存预留,以保证 Caché 有足够内存可用,并且不会出现内存交换或膨胀而对数据库性能产生负面影响。 更多详细信息,请参见下面的内存部分。 #InterSystems 业务解决方案和架构 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health #文档 0 0 0 286
文章 Michael Lei · 五月 12, 2021 阅读大约需 17 分钟 InterSystems 最佳实践系列之--数据平台和性能 – 虚拟机备份和 Caché 冻结/解冻脚本 在本帖中,我将展示使用外部备份来备份 Caché 的策略,以及与基于快照的解决方案集成的示例。 如今,大多数解决方案部署在基于 VMware 的 Linux 上,因此许多帖子都以展示解决方案如何集成 VMware 快照技术为例。 Caché 备份 - 包括电池? Caché 安装后即包含 Caché 在线备份,可提供不间断的 Caché 数据库备份。 但随着系统规模的扩大,您应该考虑更高效的备份解决方案。 集成了快照技术的外部备份是推荐的系统(包括 Caché 数据库)备份解决方案。 外部备份有特殊注意事项吗? 外部备份的在线文档包含了全部详细信息。 一个关键考虑事项是: “为确保快照的完整性,Caché 提供了在创建快照时冻结数据库写操作的方法。 在创建快照期间,只冻结对数据库文件的物理写入,从而允许用户进程继续在内存中不间断地执行更新。” #InterSystems 业务解决方案和架构 #备份 #提示和技巧 #系统管理 #部署 #镜像 #Caché #InterSystems IRIS #InterSystems IRIS for Health #文档 0 0 0 523
文章 Michael Lei · 五月 12, 2021 阅读大约需 11 分钟 InterSystems 数据平台和性能 - 第 5 篇 使用 SNMP 进行监控 InterSystems 数据平台和性能 - 第 5 部分 使用 SNMP 进行监控 在之前的帖子中,我展示了如何使用 pButtons 收集历史性能指标。 我首选 pButtons 是因为我知道它随每个数据平台实例(Ensemble、Caché、...)一起安装。 不过,还有其他方法可以实时收集、处理和显示 Caché 性能指标,以进行简单的监视,或进行更重要的并且复杂得多的运营分析和容量计划。 最常见的数据收集方法之一是使用 SNMP(简单网络管理协议)。 SNMP 是 Caché 向各种管理工具提供管理和监控信息的标准方式。 Caché 在线文档包含了 Caché 和 SNMP 之间接口的详细信息。 虽然 SNMP 应该可以直接与 Caché 配合工作,但仍有一些配置技巧和陷阱。 我经历了很多次错误的开始,并且在 InterSystems 其他同事的帮助下,才让 Caché 与操作系统 SNMP 主代理建立对话,所以我写了这篇帖子,希望您可以避免同样的痛苦。 在本帖中,我将介绍如何为 Red Hat Linux 上的 Caché 设置和配置 SNMP,您应该能够对其他 *nix 版本使用相同步骤。 我使用 Red Hat 写这篇文章是因为在 Linux 上进行设置更棘手一些;在 Windows 上,Caché 会自动安装一个 DLL 来与标准 Windows SNMP 服务连接,所以应该更容易配置。 #InterSystems 业务解决方案和架构 #性能 #监视 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 2 1 258
文章 姚 鑫 · 五月 12, 2021 阅读大约需 4 分钟 第五章 管理全局变量(一) 第五章 管理全局变量(一) 管理门户提供管理全局变量的工具,系统类提供执行某些相同任务的方法。本章介绍如何使用这些工具。 一般建议 与ObjectScript命令SET、MERGE、KILL和其他命令一样,这里描述的工具提供了直接访问操作全局变量的权限。如果通过全局访问删除或修改,则会绕过所有对象和SQL完整性检查,并且没有撤消选项。因此,在执行这些任务时要非常小心,这一点很重要。(查看和导出不会影响数据库,并且是安全活动。) 使用本章中介绍的工具时,请确保以下事项: IRIS使用哪些全局变量。并不是所有这些都被视为“系统”全局变量-也就是说,即使没有选中“系统”复选框,它们中的一些也是可见的。其中一些全局变量存储代码,包括的代码。 确保知道应用程序使用哪些全局变量。 即使应用程序从不执行任何直接全局访问,应用程序也会使用全局变量。请记住,如果创建持久类,则它们的数据和任何索引都存储在全局变量中,全局变量的名称基于类名(默认情况下)。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 66
文章 Michael Lei · 五月 12, 2021 阅读大约需 7 分钟 InterSystems 数据平台和性能 – 第 2篇 部分 在上个帖子中,我们安排了使用 pButtons 进行 24 小时的性能指标收集。 在本帖中,我们将研究几个收集到的关键指标,以及它们与底层系统硬件的关系。 我们还将开始探索 Caché(或任一 InterSystems 数据平台)指标与系统指标之间的关系。 以及如何使用这些指标来了解系统的每日节拍率并诊断性能问题。 #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 189