搜索​​​​

清除过滤器
文章
Jingwei Wang · 九月 1, 2023

JWT - JSON Web Token Authentication

JWT Authentication 原理及验证流程 原理 JWT 是一种结构紧凑、URL 安全的身份验证、授权或信息交换方式。在身份验证的情况下,服务器会向已通过身份验证的客户端提供一个 JWT,这样客户端在 JWT 过期之前就无需再提供密码来访问服务器上受保护的资源。 验证流程: 客户端发送Login到服务端 服务端返回 JWT给客户端 客户端校验JWT签名 客户端发送带有JWT签名的request到服务端 服务端检查JWT签名的有效期,在有效期内,则返回response给客户端,不在有效期内,返回error JWT 配置步骤 创建REST服务 配置Web Application 安全配置 客户端发送Login,从服务器获取JWT 配置成功,发送带有JWT的request 1. 创建REST服务 在InterSystems IRIS中,可以使用/api/mgmnt自动创建REST的 .disp .impl 和 .spec 类,本篇文章不介绍具体创建REST服务的流程,具体内容请参考社区文章创建REST 服务。 2. 配置Web Application IRIS管理门户:系统管理 -> 安全 -> 应用程序 -> Web 应用程序 选中 ‘Use JWT Authentication’ 复选框,并设置‘JWT Access Token Timeout’ 和‘JWT Refresh Token Timeout’, 其中,JWT Access Token Timeout 为JWT 令牌超时秒数,如果你打算长时间测试 API,建议将此值设为 1 小时(3600 秒),JWT Refresh Token Timeout(令牌刷新超时的秒数)设为 900 秒。 3. 安全配置 IRIS管理门户:系统管理 -> 安全 -> 系统安全 -> 身份验证/Web 会话选项 ‘JWT Issuer field’用于签名和验证 JWT 的签名算法。‘JWT Issuer field’将出现在 JWT 的声明部分,其目的是告知是谁给了你这个令牌。您可以将其设置为 "InterSystems"。 4. 客户端发送Login,从服务器获取JWT 使用基本 HTTP 身份验证或在请求正文中使用有效凭证发送POST请求到http://<api>/login端点,服务器端会返回一个访问令牌和一个刷新令牌,可在后续请求中使用。 body样例: { "user": "superuser", "password": "iris" } 5.配置成功,发送带有JWT的request 到此为止,您已经成功配置JWT,可以发送带有JWT的请求了。只需要在Header中添加Authorization,如下所示: -H "Authorization: Bearer {access_token}"
文章
Michael Lei · 八月 31, 2023

常见问题--如何根据ID重建索引

InterSystems 常见问题解答 通过在持久类(=table)定义中提供的%BuildIndices() 方法的参数中指定要重建索引的 ID 的开始值和结束值,您可以仅重建该范围内的索引。 例如,要仅针对 ID=10 到 20 重建 Sample.Person 类中的 NameIDX 索引和 ZipCode 索引,请执行以下代码(ID 范围在第 5 个和第 6 个参数中指定)。 set status = ##class (Sample.Person). %BuildIndices ( $LB ( "NameIDX" , "ZipCode" ), 1 ,, 1 , 10 , 20 ) $LB() 是$ListBuild() 函数。 %BuildIndices() 方法使用它来指定索引名称。 有关如何重建索引的更多信息,请参阅文档。 2018.1版本请参考此文档。
问题
li liao · 八月 30, 2023

Caché 2016.1 CDC

参考 https://blog.csdn.net/InterSystems/article/details/115350635 搭建 mirror ,获取数据变更,示例给出了获取数据变更的代码: Class ZCustom.MirrorDejournal Extends SYS.MirrorDejournal{ Method RunFilter( MirrorDBName As %String, GlobalReference As %String, RecordType As %String, Address As %Integer) As %Integer{ Set ^CDCLog( $I($^CDCLog))=$lb(MirrorDBName,GlobalReference,RecordType,Address) Quit 1} 示例代码将变更存储在 global 对象 CDCLog 中,想请问下获取变更前后数据,发送到外部系统,有哪些方式? 可以参考我们的CDC系列文章https://cn.community.intersystems.com/node/491941,谢谢!
文章
Louis Lu · 八月 30, 2023

使用代码获取数据库剩余空间

大家可以通过InterSystems IRIS 管理门户SMP查看当前数据库剩余空间,路径是 Management Portal: System Operation > Database 当然大家也可以通过下面的代码查看数据库的可用磁盘空间: /// ZISJ.mac Set stmt=##class(%SQL.Statement).%New() Set status=stmt.%PrepareClassQuery("SYS.Database","FreeSpace") Set rs=stmt.%Execute() While rs.%Next() { Write ! For i=1:1:9 { Write rs.%GetData(i),"," } }
文章
Jingwei Wang · 八月 30, 2023

使用 SQLAlchemy 将表传输到 IRIS 或从 IRIS 获取表

案例描述 假设您是一名 Python 开发人员或拥有一支训练有素的 Python 专业团队,但您分析 IRIS 中某些数据的期限很紧迫。当然,InterSystems 提供了许多用于各种分析和处理的工具。然而,在给定的场景中,最好使用旧的 Pandas 来完成工作,然后将 IRIS 留到下次使用。对于上述情况和许多其他情况,您可能需要从 IRIS 获取表来管理 InterSystems 产品之外的数据。但是,当您有任何格式(即 CSV、TXT 或 Pickle)的外部表时,您可能还需要以相反的方式执行操作,您需要在其上导入并使用 IRIS 工具。无论您是否必须处理上述问题,Innovatium让我明白,了解更多解决编码问题的方法总是能派上用场。好消息是,从 IRIS 引入表时,您不需要经历创建新表、传输所有行以及调整每种类型的繁琐过程。本文将向您展示如何通过几行代码快速将 IRIS 表转换为 Pandas 数据框架并向后转换。您可以在我的GitHub上查看代码,您可以在其中找到包含本教程每个步骤的 Jupiter Notebook。 从 IRIS 引入一张Table 当然,您应该首先导入该项目所需的库。 import pandas as pd import sqlalchemy as db 下一步将是在 Python 文件和 IRIS 实例之间创建连接。为此,我们将使用 SQLAlchemy 的函数 create_engine(),并以字符串作为参数。该字符串应包含有关操作方法、用户名和密码、实例的主机和端口以及目标命名空间的信息。有关使用 sqlalchemy-iris 的基本概念的更多信息,请查看我之前的一篇文章SQLAlchemy - 在 IRIS 数据库中使用 Python 和 SQL 的最简单方法。 engine = db.create_engine( "iris://_system:SYS@localhost:1972/SAMPLE" ) connection = engine.connect() 然后,我们可以声明将保存数据帧的变量,并在此连接上调用 Pandas 的 read_sql_table() 函数,将表名指定为带有Schema的字符串。您还可以在另一个参数中声明Schema,事实上,这是更好的选择,因为名称字符串上有一个点在某些情况下可能会导致错误。 df = pd.read_sql_table( "NameAge" , connection, schema= "PD" ) 最好仔细检查我们正在使用的表是否存在于我们想要使用的Schema中,当然,首先还要检查是否存在我们需要的Schema。在本文的最后一部分中,您将了解如何执行此操作以及更多提示。从现在开始,如果您有办法使用 Pandas,您可以执行任何您想要的更改和分析,因为您知道该怎么做。探索以下示例以了解其工作原理。 向 IRIS 发送表 在开始之前,让我们更改数据框中的某些内容作为示例。我们可以调整列的值以满足我们的需求(例如,添加行和列等)。经过一番尝试后,我将名称改为小写,并根据现有数据添加了一个新人和一列。您可以查看下图来查看结果。 现在我们可以用一行代码将其发送回 IRIS。我们需要的只是指定引擎和表名。 df.to_sql( "NameAge" , con=engine, schema= "PD" , if_exists= "replace" ) 再次,我们需要将Schema与表名分开放在参数中,以避免一些错误和不良行为。除此之外,if_exists 参数指定如果给定Schema中已经存在同名表时要执行的操作。可能的值为:replace、fail(默认)和append。当然,replace 选项会删除表并使用 SQL 命令创建一个新表,而append 会将数据添加到现有表中。请记住,此方法不会检查重复值,因此使用此属性时要小心。最后,失败值会引发以下错误: 请记住,如果您指定的表名不存在,该函数将创建它。 现在,您可以查询 IRIS 以查看新增内容,或者转至管理门户查看专用于 SQL 的部分。请记住,如果您使用替换值,您应该考虑该类的源代码,因为该方法完全重写了它。这意味着如果您实现了任何方法,则应该将它们保留在超类中。 有关 sqlalchemy-iris 的更多提示 如果您有任何问题无法通过其他社区或论坛中共享的与您的应用程序代码相关的信息来解决,您可能会在本节中找到所需的帮助。在这里您将找到有关如何查找有关engine和dialect的详细信息的提示列表。 方言特有的特征 SQL Alchemy 使用根据您的engine自动选择的dialect。当您使用函数 create_engine() 连接到 IRIS 数据库时,选择的dialect是Dmitry Maslennikov 的 sqlalchemy-iris 。您可以使用engine的dialect属性访问和编辑其功能。 engine = db.create_engine( "iris://_system:SYS@localhost:1972/SAMPLE" ) engine.dialect 通过 VSCode 的 IntelliCode 扩展,您可以从此属性中搜索每个选项,或者在CaretDev 的 GitHub上检查源代码。 检查engine中的可用Schema 该dialect中值得强调的一个特殊函数是 get_schema_names() 函数。注意!如果您想避免代码和迭代中出现错误,以下信息可能对您至关重要。 connection = engine.connect() engine.dialect.get_schema_names(connection) 检查Schema中的可用表 我们来看看类似的情况。您可能还需要了解Schema中的可用表。在这种情况下,您可以使用检查。在引擎上运行函数inspect()并将其保存在变量中。您将使用相同的变量来访问另一个函数 get_table_names()。它将返回一个列表,其中包含指定Schema中的表名称或默认的“SQLUser”。 inspection = db.inspect(engine) inspection.get_table_names(schema= "Sample" ) 此外,如果您想在数据上使用更多 SQL Alchemy 功能,您可以声明一个基础并使其元数据反映引擎中的Schema。 b = db.orm.declarative_base() b.metadata.reflect(engine, schema= "Sample" ) 如果您需要更多信息来解决此问题,请查看SQL Alchemy 文档和sqlalchemy-iris GitHub 存储库。或者,您也可以给我留言或发表评论,我们将一起尝试揭开这个秘密。 最后的考虑因素 本文中的实现方法强调使用 IRIS 实例作为云提供商,并使得可以在不同的基础上进行分析。它可以轻松地同时监控所有这些设备的任何质量问题并比较它们的性能和使用情况。如果您将这些知识与另一篇关于用 Django 制作的门户的文章中描述的开发结合起来,您可以根据需要快速构建一个强大的管理器,用于任意数量的特性和实例。此实现也是将数据从 IRIS 外部移动到构建良好的类的有效方法。由于您可能熟悉 Pandas 中用于处理多种不同语言的其他一些函数,即 CSV、JSON、HTML、Excel 和 Pickle,因此您可以轻松地将 read_sql_table 更改为 read_csv、read_json 或任何其他选项。是的,我应该警告您,某些类型与 InterSystems 的集成不是内置功能,因此可能不是很容易。然而,SQL Alchemy 和 Pandas 的结合在从 IRIS 导出数据时总是会派上用场。因此,在本文中,我们了解到 IRIS 拥有您所需的所有工具,可帮助您进行开发并轻松与系统的现有设备或您的专业知识小工具集成。
公告
Michael Lei · 八月 30, 2023

搜索非结构化文本数据

亲身体验 SQL 搜索,它是 InterSystems IRIS® 数据平台中的一个工具,可让您快速搜索存储在 SQL 表中的大量非结构化文本数据(含练习,15m) 。
公告
Claire Zheng · 八月 28, 2023

2023 SUTA培训报名启动啦!

SUTA培训是InterSystems专为SUTA有效期客户提供的原厂产品技术服务,具体包括产品的基础管理、编程管理、高级管理和开发培训等。2023 SUTA培训报名现已启动,汇聚技术专家,与新老客户一起探讨提升InterSystems数据平台基础管理运维的技能和知识: 新客户:系统学习管理运维工作的整体架构和基础概念 老客户:更加深入和全面地加强对管理运维工作的理解和提升 常见运维问题解析:助力您轻松应对日常工作中的问题和挑战 现场互动答疑:体验InterSystems技术专家的一对一诊断指导 点击此处,了解培训详情,报名参会(扫描下图中的二维码报名)。请关注InterSystems微信公众号,及时获取开播信息。 快来报名吧!
公告
Michael Lei · 八月 17, 2023

InterSystems 支持的平台更新 Q3-2023

我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架列表最近和即将发生的更改的问题。此更新旨在分享最近的变化以及我们对即将发生的变化的当前最佳知识,但预测未来是一件棘手的事情,这不应被视为承诺的路线图。 话虽如此,接下来是更新…… IRIS 生产环境操作系统和 CPU 架构 红帽Linux企业版RHEL 近期变动 RHEL 9.2 和 RHEL 8.8 于 2023 年 5 月发布。红帽计划为这些版本提供 4 年支持。 InterSystems 已通过我们称为“次要操作系统版本认证”的新流程完成了对 RHEL 9.2 和 RHEL 8.8 上的 IRIS 的额外测试,该流程旨在提供额外的安全性,确保次要操作系统更新不会破坏任何明显的功能。 RHEL 8.8 和 9.2 都成功通过了我们的测试。 随着 RHEL 9.2 的发布,红帽终止了对 RHEL 9.1 的公开支持。这与 Red Hat 自 RHEL 8.3 以来一直使用的“奇/偶”支持周期一致。 即将发生的变化 RHEL 9.3 计划于今年晚些时候推出。这将是 Red Hat 的短期支持版本,因此 InterSystems 不会执行次要操作系统认证或推荐将其用于生产部署。 之前的更新 IRIS 2022.1.2 添加了对RHEL 9.0的支持。 9.0 是一个主要操作系统版本,将 Linux 内核更新到 5.14、OpenSSL 更新到 3.0 以及 Python 3.9 IRIS 2022.2.0 删除了对 RHEL 7.x 的支持。早期版本的 IRIS 仍支持 RHEL 7.9。 进一步阅读: RHEL 发布页面 Ubuntu 近期变动 Ubuntu 分别于 2 月和 3 月发布了 22.04.2 LTS 和 20.04.6 LTS。 InterSystems 已通过次要操作系统版本认证,在 22.04.02 LTS 上完成了对 IRIS 的额外测试。 即将发生的变化 Ubuntu 的下一个主要更新是 24.04,预计将于 2024 年 4 月发布 之前的更新 IRIS 2022.1.1 添加了对Ubuntu 22.04 的支持。 22.04 是一个主要操作系统版本,将 Linux 内核更新到 5.15、OpenSSL 更新到 3.0.2 以及 Python 3.10.6 IRIS 2022.2.0 删除了对 Ubuntu 18.04 的支持。早期版本的 IRIS 仍支持 Ubuntu 18.04。 IRIS 2022.1.1 及更高版本容器基于 Ubuntu 22.04。 进一步阅读: Ubuntu 发布页面 SUSE Linux 即将发生的变化 SUSE Linux Enterprise Server 15 SP5 于 2023 年 6 月 20 日发布。SP5 包括 Linux Kernel 5.14.21、OpenSSL 3.0.8 和 Python 3.11。我们目前正在致力于次要操作系统认证。 之前的更新 IRIS 2022.3.0 添加了对SUSE Linux Enterprise Server 15 SP4的支持。 15 SP4 是一个主要操作系统版本,将 Linux 内核更新到 5.14、OpenSSL 更新到 3.0 以及 Python 3.9 SUSE 对 Linux Enterprise Server 15 SP3 的一般支持已于 2022 年 12 月 31 日结束,但扩展安全支持将持续到 2025 年 12 月。 延伸阅读: SUSE 生命周期 甲骨文Linux 即将发生的变化 Oracle 与 RHEL 9.2 几乎同时发布了 Oracle Linux 9.2,这让我们感到惊讶。我们目前正在开始次要操作系统认证。 之前的更新 IRIS 2022.3.0 增加了对Oracle Linux 9的支持。 Oracle Linux 9 是跟踪 RHEL 9 的主要操作系统版本,因此它也将 Linux 内核更新到 5.14、OpenSSL 更新到 3.0 以及 Python 3.9 进一步阅读: Oracle Linux 支持政策 微软Windows 即将发生的变化 Windows Server 2012 将于 2023 年 10 月结束扩展支持。如果您仍在该平台上运行,那么现在是计划迁移的时候了。 IRIS 2023.2+ 将不适用于Windows Server 2012。 之前的更新 自 IRIS 2022.1 中添加 Windows Server 2022 以来,我们没有对支持的 Windows 版本列表进行任何更改 延伸阅读: 微软生命周期 AIX 即将发生的变化 InterSystems 正在与 IBM 密切合作,增加对 OpenSSL 3.0 的支持。这不会包含在 IRIS 2023.2.0 中,因为 IBM 需要在进一步的 TL 版本中针对该功能。好消息是,IBM 正在寻求针对 AIX 7.2 和 7.3 发布 OpenSSL 3.0,而且时间看起来应该与 IRIS 2023.3 一致。 之前的更新 自 IRIS 2022.1 中添加 AIX 7.3 并删除 7.1 以来,我们没有对支持的 AIX 版本列表进行任何更改 延伸阅读: AIX 生命周期 容器Container 即将发生的变化 IRIS 容器将仅标记年份和版本,例如“2023.2”,而不是我们过去使用的完整版本号。这样,您的应用程序就可以默认获取您版本的最新维护版本。 我们还为最新的扩展维护和持续分发 IRIS 版本添加了“latest-em”和“latest-cd”标签。这些对于演示、示例和开发环境很有用。 我们还将开始使用“-preview”标记预览容器,以便清楚哪个容器是最新的 GA 版本。 之前的更新 我们现在正在发布 IRIS 容器的多架构清单。这意味着拉取标记为2022.3.0.606.0的 IRIS 容器将为您的计算机的 CPU 架构(Intel/AMD 或 ARM)下载正确的容器。 IRIS 开发环境操作系统和 CPU 架构 苹果系统 近期变动 我们在 IRIS 2023.1 中添加了对 MacOS 13 的支持 即将发生的变化 Apple 预计 MacOS 14 将于 9 月发布 GA,随后可能会在 IRIS 2024.1 中提供 IRIS 支持 CentOS 自 IRIS 2023.3 起,我们将取消对 CentOS/CentOS Stream 的支持。 红帽多年来一直在运行开发人员计划,该计划使开发人员能够获得非生产环境的免费许可证。鼓励当前使用 CentOS 的开发人员通过此计划切换到 RHEL。 CentOS Stream 现在是 RHEL 的“上游”,这意味着它具有 RHEL 中尚未包含的错误和功能。它还每天更新,这可能会给在平台上构建的开发人员带来问题(更不用说我们自己的测试人员了)。 自从我们在 IRIS 2022.1 中添加了对 CentOS 8-Stream 的支持并删除了对 CentOS 7.9 的支持以来,我们没有对受支持的 CentOS 版本列表进行任何更改 InterSystems组件 InterSystems Kubernetes 运营管理器 (IKO) IKO 3.6 于上周发布。 Caché & Ensemble 生产操作系统和 CPU 架构 之前的更新 Cache 2018.1.7 增加对 Windows 11 的支持 InterSystems 支持的平台文档 InterSystems 支持的平台文档是有关受支持技术的权威源信息。 IRIS 2023.1 支持的服务器平台 IRIS 2022.1 支持的服务器平台 IRIS 2021.1 支持的服务器平台 Caché & Ensemble 2018.1.7 支持的服务器平台 以上是全部。再次提醒大家,如果您还想了解更多信息,请告诉我们。
公告
Claire Zheng · 八月 16, 2023

2023 InterSystems开发者竞赛:Python 编程大赛

嗨,开发者, 我们很高兴邀请大家参加新的以 Python 为主题的 InterSystems 在线编程竞赛! 🏆 InterSystems Python 编程大赛🏆 时间: 2023年9月4日至24日(美国东部时间) 奖金池: 14,000 美元 话题 我们邀请您在新的编程竞赛中使用Embedded Python !也欢迎您使用Native API for Python或PEX for Python 开发应用程序。 提交一个开源的应用程序,通过InterSystems IRIS或InterSystems IRIS for Health(医疗版)使用嵌入式Python或原生Python API或Python PEX。 一般要求: 有效应用程序:100%全新的Open Exchange Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。 该应用程序应在 IRIS Community Edition 或 IRIS for Health Community Edition 上运行。两者都可作为host (Mac, Windows)版从Evaluation Site下载,或者可以按从InterSystems Container Registry或Community Container中提取的容器形式使用: intersystemsdc/iris-community:latest 或 intersystemsdc/irishealth-community:latest 。 该应用需开源并在GitHub上发布。 该应用的README文件应为英文,包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。 一名开发者只允许提交 3 份作品。 奖品 1. 专家提名奖(Experts Nomination)——获奖者由我们特别挑选的专家团选出: 🥇第一名 - 5,000 美元 🥈第二名 - 3,000 美元 🥉第三名 - 1,500 美元 🏅第四名 - 750 美元 🏅第五名 - 500 美元 🌟第 6-10 位 - 100 美元 2. 社区提名奖(Community Nomination)- 获得总票数最多的应用程序: 🥇第一名 - 1,000 美元 🥈第二名 - 750 美元 🥉第三名 - 500 美元 🏅第四名 - 300 美元 🏅第五名 - 200 美元 如果几位参与者获得相同数量的选票,他们都将被视为获胜者,奖金由获胜者分享。 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外(InterSystems contractor员工可以参加)。还没有账号?现在来建一个! 👥开发人员可以组队创建协作应用程序。一个团队允许 2 到 5 名开发人员。 请注意,要在您的README文件中标注您的团队成员——社区用户profil 重要截止日期: 🛠 应用程序开发和注册阶段: 2023 年 9 月 4 日(美国东部时间 00:00):比赛开始。 2023 年 9月 17日(美国东部时间 23:59):提交截止日期。 ✅ 投票时间: 2023 年 9月 18 日(美国东部时间 00:00):投票开始。 2023 年 9月 24 日(美国东部时间 23:59):投票结束。 注意:在整个参赛期间(开发与投票期间),开发者可持续编辑、提升其应 资源助力 1. 使用 InterSystems IRIS 开发 Python 应用程序: Learning Path Writing Python Application with InterSystems Embedded Python Documentation Native API for Python Documentation PEX Documentation 2. ObjectScript Package Manager (IPM)初学者: How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS Package First Development Approach with InterSystems IRIS and ZPM 3. 如何将您的APP提交给大赛: 如何在 Open Exchange 上发布应用程序 如何提交比赛申请 4. 应用示例: embedded-python-template interoperability-python interoperability-python-template pex-demo python-examples django-iris-template Python Faker 5. 视频: Introduction to Embedded Python Embedded Python: Bring the Python Ecosystem to Your ObjectScript App Embedded Python for ObjectScript Developers: Working with Python and ObjectScript Side-By-Side Embedded Python with Interoperability InterSystems IRIS Native Python API in AWS Lambda 需要帮忙? 加入 InterSystems Discord 服务器上的竞赛频道或在本文评论中与我们交谈。 期待您的精彩提交 - 加入我们的编码大赛吧!来赢得胜利! ❗️参加本次比赛即表示您同意此处列出的比赛条款。请在继续之前仔细阅读它们。 ❗️
文章
Weiwei Gu · 八月 14, 2023

调试管理门户加载图片失败的原因

在提交的 WRC case中(Intersystems 全球技术支持响应中心),我们经常看到客户提出有关新 Web 网关设置的问题,其中管理门户加载一半,但不显示图像。本文将解释为什么会出现此错误,以及如何修复它。本说明主要针对服务 InterSystems IRIS 实例的 Web 网关,但相同的说明也应适用于服务 Caché 实例的 CSP 网关。 问题: 您刚刚在独立的 Web 服务器上安装了 Web Gateway。当你去加载管理门户时,你发现它无法显示或加载图像,如下所示: 为什么会发生这种情况: 问题是,为了完整加载管理门户,InterSystems IRIS 必须加载许多 .js、.css 和 .png 文件(静态文件)。如果您看到像上面这样的管理门户页面,请随时打开浏览器的开发人员工具小程序,导航到“网络”选项卡,并确认未提供各种 .js、.css 和 .png 组件: 最初安装 Web Gateway 时,我们仅为以下扩展设置映射: .csp .cls .zen .cxw 这些是客户在自己的自定义应用程序中最常使用的文件扩展名类型,以及用于为 Web Gateway 管理门户提供服务的 .cxw 扩展名。如果您想要加载其他管理门户组件,则必须注册其他文件类型以由 Web 网关提供服务。 如何解决该问题: 要使管理门户完全显示,您必须配置 Web 网关以提供其他文件类型。对于 IIS,您可以为 .js、.png、.css 等扩展名添加单独的映射,也可以添加通配符映射。可以在此处找到有关注册 IIS 的其他文件类型的文档:https: //docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls ?KEY=GCGI_win#GCGI_registering 如果您在 Unix / Linux 系统上的 Apache 之上运行 Web Gateway,您有几个选择。您可以通过添加其他文件扩展名(如 IIS 上的情况)来配置此功能,也可以添加 CSP 位置指令。请参阅此处的文档了解完整详细信息: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls ?KEY=GCGI_ux,位于“使用 CSP 注册其他文件类型”下
文章
Michael Lei · 八月 10, 2023

如何比较两个数据库中的多个Global和Routines

InterSystems 常见问题解答 ※如果您想比较使用Mirror、Shadow或其他机制复制的数据库,请使用此方法。 您可以使用 DATACHECK 实用程序来比较Global。请参阅下面的文档。DataCheck 概述 [IRIS] *** Routines比较使用系统例程 %RCMP 或管理门户。 以下是如何在管理门户中使用它。 例如,假设以下Routine位于 USER 命名空间中。 test() public{ quit "hello" } 假设以下Routine位于 USER2 命名空间中。 test() public{ quit "Hello" } 下面是在连接到 USER 命名空间的终端中运行 %RCOM 的结果。 * 在Compare : 中写入Routine名称以及要与: 进行比较的Routine名称要指定另一个命名空间中的Routine,请指定|“命名空间名称”|例程名称.MAC。 用户>执行 ^%RCMP比较:comptest.mac 与:|"USER2"|comptest.macCompare: // [备注] 如果没有可比较的内容,请按 Enter忽略评论差异?否 => 否忽略前导空格?否 => 否显示结果于Device: c:\temp\comp.txt // [备注] 指定文件名时的文件输出 参数? (“WNS”)=>comptest.MAC |“USER2”|comptest.MAC****************************************************** ******************************用户> 对比结果如下。 常规比较 2021 年 2 月 2 日 2:31 PM来自目录:c:\intersystems\iris\mgr\user\ comptest.MAC |“USER2”|comptest.MAC****************************************************** ******************************竞争测试.MAC+2 退出“你好”......................|“USER2”|comptest.MAC+2 退出“你好”****************************************************** **************************
文章
Weiwei Gu · 八月 7, 2023

如何自定义 Web 网关错误消息

InterSystems 常见问题解答标题 您可以为以下 Web Gateway 错误消息/系统响应设置单独的错误页面: 服务器错误 服务器繁忙 服务器无法使用 服务器超时 连接关闭 在 Web Gateway 管理界面上进行设置([Management Portal] > [System Administration] > [Configuration] > [Web Gateway Management] > [Configuration] > [Default Parameters])。 在“默认参数”(Default Parameters )菜单的“错误页面”部分中,设置要显示的 html 页面的文件名或发生错误时要重定向到的 URL。 ※Web网关管理界面也可以从以下URL访问。 http://<web server address>:<port>/csp/bin/Systems/Module.cxw 详细信息请参考以下文档自定义错误页面 [IRIS]
公告
Michael Lei · 八月 7, 2023

开发者圆桌在线论坛:医疗行业中的生成式人工智能用例

大家好, 与我们一起参加 8 月 31 日上午 10 点(美国东部时间)在线开发者圆桌会议,讨论医疗保健中的生成式 AI 使用案例。学习医疗保健领域的用例+参考架构,并观看关于大语言模型的Demo演示。我们将像往常一样有时间进行问答和公开讨论。 通过开发者社区Global Masters报名。 演讲者: @Nicholai.Mitchko ,InterSystems 解决方案合作伙伴销售工程师经理 背景: Nicholai 在 InterSystems 管理着一支由 10 名解决方案工程师组成的团队,帮助医疗保健公司大规模设计、开发和交付解决方案。在业余时间,Nicholai 致力于大型语言模型的研究,包括开发自己的模型,这些模型出现在Huggingface OpenLLM 排行榜上。 还不是Global Master会员?使用您的 InterSystems SSO (开发者社区帐号)登录。
文章
Weiwei Gu · 八月 4, 2023

InterSystems IRIS 中创建具有超过 999 个属性的类/表

InterSystems IRIS 目前将类限制为 999 个属性。 但是,如果您需要为每个对象存储更多数据该怎么办? 本文将回答这个问题(附加了社区 Python 网关的客串以及如何将广泛的数据集传输到 Python 中)。 答案其实很简单 - InterSystems IRIS 目前将类限制为 999 个属性,但不限制 999 个基元(primitives)。 InterSystems IRIS 中的属性可以是具有 999 个属性的对象等等 - 该限制很容易被忽略。 方法1 . 每个序列属性存储 100 个属性。首先创建一个存储一百个属性的存储类。 Class Test.Serial Extends %SerialObject { Property col0; ... Property col99; } 并在您的主类中添加您需要的尽可能多的属性: Class Test.Record Extends %Persistent{Property col00 As Test.Serial; Property col01 As Test.Serial;... Property col63 As Test.Serial;} 这会立即将您的限制提高到 99900 个属性。 这种方法通过 SQL 和对象层提供对所有属性的统一访问(我们总是通过其编号来了解属性引用)。 方法2 。 一个 $lb 属性: Class Test.Record Extends %Persistent{Property col As %List;} 这种方法更简单,但不提供显式的列名称。 使用 SQL $LIST* 函数访问列表元素。 方法3 。 使用集合(列表/数组)属性。 Class Test.Record Extends %Persistent{Property col As List Of %Integer;} 此方法也不为各个值提供显式的列名称(但您真的需要它吗?)使用属性参数将属性投影为 SQL 列/表。 集合属性的文档。 方法4 。 根本不要创建属性并通过 SQL 存储过程/ %DispatchGetProperty公开它们。 Class Test.Record Extends %Persistent{ Parameter GLVN = {..GLVN("Test.Record")}; /// SELECT Test_Record.col(ID, 123) /// FROM Test.Record////// w ##class(Test.Record).col(1, )ClassMethod col(id, num) As %Decimal [ SqlProc ]{ #define GLVN(%class) ##Expression(##class(Test.Record).GLVN(%class)) quit $lg($$$GLVN("Test.Record")(id), num + 1)} /// Refer to properties as: obj.col123 Method %DispatchGetProperty(Property As %String) [ CodeMode = expression ]{..col(..%Id(), $e(Property, 4, *))} /// Get data global/// w ##class(Test.Record).GLVN("Test.Record")ClassMethod GLVN(class As %Dictionary.CacheClassname = {$classname()}) As %String{ return:'$$$comClassDefined(class) "" set strategy = $$$comClassKeyGet(class, $$$cCLASSstoragestrategy) return $$$defMemberKeyGet(class, $$$cCLASSstorage, strategy, $$$cSDEFdatalocation)} 这里的技巧是将所有内容存储在主 $lb 中,并使用未分配的Schema存储空间来存储数据。 这是一篇关于Global存储的文章。 通过这种方法,您还可以通过ExecuteGlobal方法轻松地将数据传输到社区 Python 网关的 Python 环境中。 由于结构相似,这也是导入 CSV 文件的最快方法。 结论 999 个属性限制可以在 InterSystems IRIS 中轻松扩展。 您知道存储广泛数据集的其他方法吗?如果有,请分享!
公告
Claire Zheng · 八月 3, 2023

2023 年 8 月 1 日 – 警报:ECP 应用程序服务器挂起和 Dejournaling 挂起

InterSystems 已纠正了两个缺陷。 第一个缺陷可能导致 ECP 应用程序服务器挂起。此缺陷仅与 ARM 和 IBM Power 处理器相关;存在于 InterSystems IRIS®、InterSystems IRIS for Health™ 和 HealthShare® Health Connect 版本2022.1.2和2022.1.3中。该修复被标识为 DP-423661。该缺陷将在所有未来版本中得到解决。 在极少数情况下,第二个缺陷可能会导致dejournaling挂起。此缺陷存在于 InterSystems IRIS®、InterSystems IRIS for Health™ 和 HealthShare® Health Connect 版本2020.4 、 2021.x 、 2022.x和2023.1中。该修复被标识为 DP-423505。该缺陷将在所有未来版本中得到解决,并已在2023.1.1中得到纠正。 InterSystems 已发布版本2022.1.3的更新发行版,以便快速提供这些修复。相关的版本标识符是: 原发布:2022.1.3.668.0 更新发布:2022.1.3.670.1 这些修复也可以通过 Ad hoc 分发获得。 如果您对此警报有任何疑问,请联系 全球响应中心。