//迭代取值
IRISIterator subscriptIter = irisNative.getIRISIterator("^liubo.clazz.personD");
System.out.println("================迭代开始===================");
while (subscriptIter.hasNext()) {
String subscript = subscriptIter.next();
//此处怎么获取此节点的字符串进行解析呢,另外java可以直接访问ensemble的global么
System.out.println(node);
}如果你在你发布在应用市场上的应用程序中使用代码质量分析器,这将显示在Open Exchange上。
1. 在Open Exchange 应用市场主页面,你可以过滤所有通过ObjectScript质量测试的应用程序
2. 在公众的应用页面(例子),你会在信息框中看到:
3. 在你管理应用程序的页面上,你会看到质量检查状态。
没有数据 - 如果质量检查没有安装在你的 repo 中
通过 - 如果代码通过了测试
失败--如果测试失败。这不会显示在公共应用程序页面上。
现在你可以在Open Exchange社区的objectscriptQuality上找到要添加到你的 repo中的文件。
针对InterSystems开发者社区的分析。使用InterSystems IRIS BI (DeepSee)、Power BI和Logi Report Designer制作的项目,可视化并分析InterSystems 开发者社区上的成员、文章、问题、答案、观点和其他内容和活动。
你可以看到自己的活动、文章和问题。跟踪你的贡献如何改变开发者社区。
使用IRIS BI、Adaptive Analytics、InterSystems Reports、Tableau和Power BI分析关于你和你朋友的统计数据。
该项目包含预配置的IRIS和Atscale在Docker容器中的部署以及BI系统的项目文件。
更多细节信息请见相应应用的README。
这个项目也支持在线部署,你可以在这里查看。
Hi 我在线部署了一个demo演示:
我更新了几个设置(文件路径和URL),并将调度类切换到dc.rest.GenericService。
我从文件服务重新发送了消息。我看到授权Auth和API服务都收到了消息。
API进程(还)没有返回所需的响应。更多内容请继续关注...
大家都用过IRIS的消息查看器吧,其实这个页面有一个隐藏的功能,就是显示【显示查询】,如图所示:
那么这个东西是如何打开的呢?如果一句话概括就是: Terminal下输入: Set ^Ens.Debug("UtilEnsMessages","sql")=1,这个也是打开这个功能的思路,下面是详细的说明。
开启功能的步骤:
1、进入Terminal,输入用户名\密码;
2、进入需要打开显示查询的命名空间:如 zn "BKIP"
3、执行 【Set ^Ens.Debug("UtilEnsMessages","sql")=1】打开显示查询。
打开消息查看器页面刷新:
成功!!!
他有什么作用呢?举个栗子,当我修改基本条件为会话开始,点击【搜索】然后再点击【显示查询】
可以看到刚才在页面点击的操作生成了SQL并且显示在新的弹框里面了 すごい(四个一)。
基于此我们能做什么呢?一方面,指导我们分析IRIS的表结构,让我们得以去进行一些数据分析的操作。另一方面,在我们日常运维的时候,当我们需要直接知道消息的日吞吐量的时候,可以通过SQL去计算,具体的操作是这样:
1、修改开始和结束时间,把类型修改为会话开始点击显示查询会出现一段SQL,如图所示:
2、把这段SQL复制,打开【系统资源管理器】--【SQL】,粘贴SQL稍加修改执行,就能得到,上游请求集成平台次数,如图所示:
任何技术总是有些自己独特的术语,尤其是一些英文术语,对于新的用户来说往往即陌生又迷惑。这里整理了一下常听到的InterSystems术语,帮助大家尽快进入InterSystems技术圈子。
第二十九章 管理许可(二)
激活许可证密钥
IRIS 使用许可证密钥来确保其注册站点的正常运行、定义可用容量并控制对 IRIS 功能的访问。 许可证密钥以许可证密钥文件的形式提供,通常命名为 iris.key。
安装 IRIS 后,使用以下程序激活许可证密钥。始终可以使用相同的过程为任何已安装的实例激活新的许可证密钥(即升级密钥)。可以激活放置在管理门户可访问的任何位置的许可证密钥;作为激活的一部分,许可证密钥将作为 iris.key 复制到实例的 install-dir/mgr 目录(如果尚未命名)。
注意:也可以在 Windows 安装期间选择许可证密钥。执行此操作时,许可证会自动激活,并且许可证密钥会作为 iris.key 复制到实例的 install-dir/mgr 目录中;不需要此处描述的激活过程。
本节还讨论了许可证故障排除和在所有许可证单元都在使用时从操作系统命令行升级许可证。
要激活许可证密钥,请使用以下过程:
[toc]
第二十八章 管理许可(一)
配置许可
每个 IRIS 实例维护其许可证容量和当前使用的独立本地视图,并且每个实例都需要访问许可证密钥。可以在每个实例上安装和激活本地许可证密钥文件。或者,如果要管理多个实例,可以配置许可证服务器来管理存储在中央位置的密钥文件,然后它可以将其分发到其他实例。在这种情况下,必须为每个实例配置密钥文件的 LicenseID,以便它可以在启动时检索密钥的副本。
多服务器许可证可以在同一台机器或不同机器上的协作实例之间共享。仅允许使用多服务器密钥进行共享。要使用多服务器许可,必须配置一个或多个 IRIS 许可服务器来分配密钥授权的 IRIS 许可单元。共享密钥的所有实例都必须配置为使用相同的许可证服务器或一组许可证服务器。许可服务器可以在运行 IRIS 实例的任何计算机上运行。监控进程向许可服务器发送更新消息,当多个实例共享一个许可时,许可服务器协调许可分配。
许可证服务器协调在每个实例中本地维护的许可证使用视图。许可证服务器不是 IRIS 进程;如果 IRIS 实例关闭,则不受影响。一台许可证服务器可以处理多个实例。因此,无论一台主机上运行多少个 IRIS 实例,每台主机最多需要一个。但是,每个 IRIS 实例都必须安装授权许可密钥文件的本地副本。
第二十六章 使用任务管理器(四)
导入任务
导入任务页面(系统操作 > 任务管理器 > 导入任务)允许通过浏览到先前导出的任务文件,然后单击立即执行操作来导入和运行任务。
注意:任务只能从运行相同版本的 IRIS 的实例导入或导出。
使用 ^TASKMGR
^TASKMGR 例程允许使用终端配置任务管理器。除非另有说明,^TASKMGR 和管理门户包含用于配置任务的相同选。
- 打开终端。
- 输入
set $namespace = "%SYS"以更改为%SYS命名空间。 - 输入
do ^TASKMGR。
具体类 %SYS.Task
更改任务过期行为
默认情况下,所有任务都配置为在错过预定时间时过期。发生这种情况的原因有很多;例如,当 IRIS 在计划时间内关闭时,或者如果任务的上一次运行超出下一次计划时间。当任务到期时,它不会运行,直到下一个计划时间。
^TASKMGR 例程包含更改此行为的选项,以便从不跳过计划的运行。为此:
- 打开终端。
- 输入
set $namespace = "%SYS"以更改为%SYS命名空间。 - 输入
do ^TASKMGR。 - 选择选项 2。
- 输入要编辑的任务编号。
- 按
Enter保存每个选项的默认值,直到到达Task Expires? - 输入
No
或者,可以指定一个宽限期,这样任务在错过后不会立即过期。相反,任务管理器会尽快运行错过的任务。要调整特定任务到期的宽限期:
最近遇到一个问题,需求是把大量的数据写入到第三方数据库oracle,目前用的是EnsLib.SQL.OutboundAdapter 方案,但是感觉队列很容易卡死,不知道是什么原因。然后想换成 set res = ##class(%ResultSet).%New("%DynamicQueryGW:SQLGW") 这种方式执行插入和更新。但是它返回的错误是网关调用失败,我希望得到具体的错误,我用这个对应额sql语句去 navicat执行就能提示出明确的错误!有大佬处理过类似的问题吗?有更好的方案吗?
第二十五章 使用任务管理器(三)
任务计划
任务计划页面(系统操作 > 任务管理器 > 任务计划)列出了所有计划任务。可以通过单击任何列标题对表中的信息进行排序。可以通过单击适当的选项查看详细信息或历史记录以及运行计划任务:
- 任务名称 — 让查看有关任务的详细信息并对其执行操作。
- 历史 — 显示任务的历史。
- 运行 — 让运行任务。运行任务向导显示任务名称和
ID,以及任务运行的日期和时间;单击立即执行操作以确认信息并安排任务。
任务详情
要显示有关计划任务的详细信息并对其执行多项操作之一,请单击任务名称列中的任务名称。任务详细信息页面显示有关所选任务的信息和执行详细信息。可以通过单击相应的按钮对任务执行以下操作之一:
- 编辑 — 使用任务计划程序向导更改任务定义和计划。
- 历史 - 查看任务的历史。
- 恢复/暂停 — 暂停任务/恢复暂停的任务。
- 删除 — 永久删除任务。
注意:不能删除系统任务。
导出 — 将任务导出到稍后可以导入的文件,包括由另一个
IRIS实例导入。运行 — 安排任务。单击运行时,运行任务向导页面会显示任务名称和 ID,以及任务将运行的日期和时间;单击立即执行操作以确认信息并安排任务。
注意:在任务运行时,描述的某些操作不可用。
计划任务历史
在Windows中,InterSystems IRIS 会将Python引擎一起安装在安装目录中,可以将Python的代码在InterSystems IRIS内核中运行,允许Python代码与ObjectScript代码混合运行,以获得最佳开发性能。一般基于UNIX的操作系统会自带一个Python,所以不会随InterSystems IRIS安装包自动安装Python引擎。
在InterSystems IRIS 2021.2 以上的版本中才支持Embedded Python,其余版本不支持使用Embedded Python
步骤 - Windows
# 第二十四章 使用任务管理器(二)
本节介绍在创建或编辑任务时可以选择的预定义任务类型。某些任务只能从某些命名空间获得。
IRIS 包括许多默认运行的任务。此表记录了这些默认值,可以从“任务计划”页面进行编辑。
注意:可以使用 `%SYS.Task.DefinitionAPI` 定义自己的任务类型。
原文可见 这里,原作者 Robert Cemper
我们在SQL中的经常被提到视图VIEW,基本上是一段预先设计好的SQL语句,它也像任何其他SQL查询语句一样执行和组装。
而物化视图MATERIALIZED VIEW意味着查询的内容是预先收集的,这些数据可以相当快地进行检索。
我第一次看到这个概念是和我最喜欢的竞争对手O* 一起的,他们对此功能发出了很多的声音。
然而在Caché/IRIS中,这种功能几乎是一早就存在的,我们认为这是很正常的普通功能。只是我们大多数开发人员只是没有意识到这一点,只要稍加润色,它就可以作为一个优秀的特性呈现出来。 此外,任何更新和维护都是作为内置的能力进行的,无需开发人员任何额外的工作。
看下面的例子:
在我们的Sample.Person类中,我们可以定义一个索引
/// Define an index for <property>Name</property>.
Index NameIDX On Name [ Data = (Name, Home.State, SSN) ];正如我们预想的那样,在执行下面的查询时,它会非常的快
SELECT ID, Name, Home_State, SSN from Sample.Person第二十三章 使用任务管理器(一)
要访问任务管理器,请导航至系统操作 > 任务管理器。
还可以使用终端与任务管理器进行交互,如使用 ^TASKMGR 部分所述。
注意:任务管理器每 60 秒轮询一次以查看是否有要运行的任务。当单击立即执行操作来安排任务时,在新安排的任务实际运行之前可能会有长达 60 秒的延迟。
新任务
新任务选项启动任务计划程序向导。此工具允许安排新任务运行。
注意:还可以使用任务计划程序向导通过从“任务计划”页面选择现有任务来编辑现有任务。
- 在任务计划程序向导的第一页上,提供有关新任务的以下详细信息:
Task nameDescriptionNamespace to run task in- 从定义的命名空间列表中选择要在其中运行任务Task type- 从列出的任务中进行选择。
注意:根据所选的任务类型,可能会看到一个表格,在其中指定附加信息;例如,如果正在安排 IntegrityCheck,表单会提示输入目录、文件名和 KeepDays(保留文件的天数)。
- 任务优先级 - 从优先级正常、优先级低或优先级高中选择。
- 以该用户身份运行任务 — 从定义的用户列表中选择。要选择与登录时不同的用户,必须具有
%Admin_Secure:Use权限。
注意:如果所选用户被禁用,任务将暂停,直到用户被启用并手动恢复任务。这不适用于内置系统任务,即使所选用户被禁用,这些任务也会运行。
第二十二章 控制进程(三)
挂起或恢复进程
如果不确定某个进程在做什么并想要进行调查,或者如果一个更重要的进程正在尝试运行并且需要 CPU 周期,可能希望暂停该进程。要从管理门户访问此选项:
- 显示进程页面(系统操作 > 进程)。
- 单击相应进程行中的详细信息。
- 单击选项栏上的挂起。
可以随时通过单击同一页面中的恢复来恢复暂停的进程。
终止进程
如果某个进程无响应或正在影响其他进程或用户,可能希望终止该进程。要从管理门户访问此选项:
- 显示进程页面(系统操作 > 进程)。
- 单击相应流程行中的详细信息。
- 单击选项栏上的终止。
或者,要在进程终止时记录进程的状态,请选中 Terminate with RESJOB Error 复选框。
注意:默认情况下启用此选项。
- 单击“是”以确认您要终止该进程。无法恢复已终止的进程。
显示进程变量
Process Variables 页面显示了在选定进程中使用的所有变量,给出了全局名称和全局值。要从管理门户访问此信息:
- 显示进程页面(系统操作 > 进程)页面。
- 单击相应进程行中的详细信息。
- 单击选项栏上的变量。
向终端广播消息
可以向与选定进程或所有进程关联的终端广播消息;此实用程序很有用,例如,要求人们注销系统。但是,必须小心使用它,否则可能会导致消息出现在当时可能正在打印的报告中间。
嗨,开发者们!
秋高气爽之际,我们很高兴地宣布启动🏆InterSystems开发者社区中文版首届技术征文大赛 🏆(←点击链接进入参赛页面,浏览所有参赛文章)!
从2022年9月5日-10月24日(北京时间),欢迎热爱InterSystems技术的你来投稿,撰写与InterSystems技术相关的文章。
🎁参与奖 我们为每一位成功参赛的作者准备了礼品!
🏆优秀文章大奖 Apple iPad; Beats Fit Pro; HUAWEI WATCH; Logitech键盘; WD固态硬盘;KEEP智能手环
第二十一章 控制进程(二)
显示进程详细信息
进程详细信息页面显示有关任何进程的详细信息。要从管理门户访问此信息:
- 显示进程页面(系统操作 > 进程)。
- 单击相应进程行中的详细信息。 (此选项仅存在于有权维护的进程上。)
该页面还包括特定于所选进程的信息,这些信息被组织成一个通用信息表、一个客户端应用程序详细信息表和一个执行详细信息表:
一般信息
第二十章 控制进程(一)
IRIS 系统运行多个进程。应用程序代码以及 IRIS 系统代码在这些进程中执行。 IRIS 进程分为三类:
- 用户进程,在用户连接到
IRIS时创建。 - 后台进程,在用户发出
ObjectScriptJob命令时创建,或者由管理门户或实用程序创建。 IRIS系统进程。
在本文中,“进程”一词本身指的是用户进程和后台进程。
可以使用管理门户管理和控制进程:
当使用集成平台传递异步消息时,在消息查看器查看消息状态的时候会出现 ‘已放弃’(Discarded) 的消息状态。
‘已放弃’ 的消息状态出现主要有以下原因:
- 当响应的消息在响应请求超时后才到达你要发送的目的地,这条消息就成为了 ’已放弃‘ 的消息。
- 因某种原因,消息无法交付,手动将消息标记为 ‘已放弃’。
- 异步传递的消息,无需等待返回消息,这时如果配置了返回消息,这条消息也会成为 ’已放弃‘ 的消息。
注意:被标记为 ‘已放弃’的消息任然会被永久储存,只有但你明确删除它们时,消息才会被删除
如图所示,业务流程 HCC.SVR.Prod.BPMainControl 向 业务流程 HCC.SVR.Prod.BP.SubscribeAndPublish发送异步消息,如果在HCC.SVR.Prod.BPMainControl调用HCC.SVR.Prod.BP.SubscribeAndPublish,而HCC.SVR.Prod.BP.SubscribeAndPublish设置了响应消息,那么从HCC.SVR.Prod.BP.SubscribeAndPublish设置的响应消息就会成为 ’已放弃‘ 的消息
2022年9月9日,我们将举办线上“InterSystems 2022全球峰会亮点解读”,点击此处参会。
第十九章 维护本地数据库(四)
压缩数据库中的全局变量
管理数据库空间的另一种方法是使用 ^DATABASE 例程压缩数据库中的全局变量。压缩全局变量将全局数据合并到更少的块中,从而增加数据库中的可用空间量。
在创建和更新全局变量时 IRIS 通常以将全局块填充到大约 70% 容量的方式分配数据。 (完全按整理顺序增长的全局可能会分配到接近 90%。)通常,允许 IRIS 自动管理全局块密度就足够了。然而,一些不连续的数据删除模式可能会显着降低平均全局块密度。
注意:要逐个全局地查看数据库中全局块的当前密度,可以运行完整性检查、并检查每个全局的数据级别输出。
压缩全局变量时,指定所需的全局块密度(默认为 90%),操作会尝试通过合并数据来尽可能接近此值——例如,将分布在三个块中的全局数据重新排列为两个。通常(但并非总是),压缩全局变量会显着增加数据库中可用的可用空间。 (如果指定的目标密度低于数据库当前的全局块密度,则数据库的大小不会增加。)
要压缩数据库中的全局变量,请使用以下过程:
- 打开终端并更改为
%SYS命名空间。 - 输入
do ^DATABASE,然后从菜单中选择 7)Compact globals in a database。
在我们开始谈论数据库和现有的不同数据模型之前,我们最好先谈谈什么是数据库以及如何使用它。
一个数据库是以电子方式存储和访问的有组织的数据集合。它用于存储和检索通常与主题或活动相关的结构化、半结构化或原始数据。
每个数据库的核心至少存在一个用于描述其数据的模型。并且根据它所基于的模型,一个数据库可能具有略微不同的特征并存储不同数据类型。
要写入、检索、修改、排序、转换或打印数据库中的信息,需要使用称为数据库管理系统 (DBMS) 的软件。
数据库及其各自的数据库管理系统的大小、容量和性能增加了几个数量级。各个领域的技术进步使之成为可能,例如处理器、计算机内存、计算机存储和计算机网络。一般来说,数据库技术的发展根据数据模型或结构分为四代:导航型、关系型、对象型和后关系型。
与以特定数据模型为特征的前三代不同,第四代包括许多基于不同模型的不同数据库。它们包括列、图、文档、组件、多维、键值、内存等。所有这些数据库都由一个单一的名称 NoSQL 联合起来(没有 SQL,或者现在更准确地说不仅仅是 SQL)。
而且,现在出现了一个新的类,叫做NewSQL。这些是现代关系数据库,旨在为在线事务处理工作负载(读写)提供与 NoSQL 系统相同的可扩展性能,同时使用 SQL 和维护 ACID。
我很高兴与大家分享我第一次使用docker容器版本的IRIS for Health的经验,以探索你对使用或试用的兴趣,利用docker容器的优势,它是轻量级的,易于部署。本文将通过使用Renan Lourenco编写的名为ENSDEMO的GitHub仓库的实施步骤。
设置IRIS for Health社区版docker容器环境的步骤:
- 启动运行Docker
- 下载docker 镜像image
docker pull containers.intersystems.com/intersystems/irishealth-community:2022.2.0.304.0
- 从GitHub 克隆源repository
git clone https://github.com/OneLastTry/irishealth-ensdemo
- 改一下文件目录.
- 从docker-compose.yml建立容器镜像
docker-compose build
- 运行你的容器
docker-compose up -d
在我最初的尝试中,我无法下载irishealth community:2022.2.0.304.0的确切版本,因为它在ENSDEMO的最初发布中已经发生了变化。修复方法是,当试图从InterSystems容器注册表拉出docker镜像时,在注册表中拉出最新的可用标签。
各位开发者,
新的视频已经发布在BiliBili平台:
⏯ 在InterSystmes IRIS 使用 Business Process Designer(业务流程设计器)
第十八章 维护本地数据库(三)
截断数据库
截断数据库会将数据库末尾的可用空间返回到底层文件系统。数据库在压缩后通常会被截断,这会将可用空间移动到数据库的末尾。
截断数据库时,指定数据库的目标大小。如果在数据库末尾有足够的可用空间,则该操作会删除足够的空间以将数据库减小到目标大小;如果没有,它会删除所有可以删除的内容。 (要了解数据库的可用空间到底有多少,请压缩数据库;无需完成显示当前总可用空间和末尾数量的操作。)
注意:此功能不适用于具有原始卷的数据库。
- 导航到数据库页面(系统操作 > 数据库)。
- 单击要截断的数据库的名称。这会将带到其数据库详细信息页面。
- 单击页面顶部功能区上的截断。这将显示“截断数据库”对话框,其中显示所选数据库的名称、位置和当前大小(以兆字节 (
MB) 为单位)。 - 输入目标文件大小 (
MB),它必须小于当前大小,然后单击确定。输入 0 从文件末尾删除所有可能的可用空间。
注意:用于截断目的的可用空间不同于用于存储数据的可用空间。如果某些控制结构不用于数据存储,则可以在截断期间删除它们。这可能会导致报告的可用空间有所不同。
对数据库进行碎片整理
背景Background
大多数网站都有一个 "Fav.ico "文件,用于设置网页的图标。大多数用户有多个环境,开发、测试和生产环境。通常情况下,你很难一眼就看出你在哪个环境中。如果能直观地通过图标看到你所处的版本和环境,可以提供更好的用户体验。在这个例子中,所有的实例都被命名为 "ENSEMBLE"。注意,这是在2022.1上使用的IRIS FOR HEALTH。
默认图标是 IR
在这篇文章中,我们将把标识改为类似于以下的内容:
图标文件
图标文件安装在你的安装文件夹csp/broker/portal中
- 创建一个名为Archive的文件夹放在该文件夹中
- 复制并粘贴ISC_IRIS_icon.ico到这个文件夹,对旧图标进行备份
- 使用一个图标编辑器。我使用了在线创建和编辑ICO文件| RedKetchup,因为它很容易使用,并且有简单的文本选项。
- 将.ico文件复制到你的本地文件,并打开它(Icon-> Open)
5. 采取铅笔工具。清除任何旧的字母(提示:改变铅笔大小可以更容易操作)。
6. Click test. Set colour. Play around with the font. DON'T FORGET TO PRESS APPLY
7. 保存图标.
Hi 大家好!
我经常会看到CSP 应用提示一些没有什么意义的错误信息,比如:
.png)
第十七章 维护本地数据库(二)
数据库详细信息页面显示有关任何数据库的详细信息。要从管理门户访问此信息:
- 显示数据库页面(系统操作 > 数据库)。
- 单击要查看更多详细信息的数据库的名称。
数据库详细信息页面的顶部是一排按钮,可让执行各种数据库操作:
Mount / Dismount— 安装或卸载数据库。新状态一直有效,直到明确更改它或重新启动/停止 IRIS;要永久卸载数据库,必须将其从配置中删除。Compact- 将分布在整个数据库中的可用空间移动到其末端。Truncate截断 — 将数据库末尾的可用空间返回到底层文件系统。- 碎片整理 — 重新定位全局块,使代表给定全局的块处于连续序列中。
该页面还包括特定于所选数据库的信息,这些信息被组织成一个 General Information 表和一个 Database Size 表:
一般信息
| Field | Definition |
|---|---|
| Directory | 此数据库所在目录的名称。 |
| Resource Name | 分配给此数据库的资源名称。 |
| Mounted | 指示此数据库是否已安装。 |
| Read Only | 指示此数据库是否安装为只读。 |
| Read Only Reason | 数据库安装为只读的原因。 |
| Encrypted | 指示此数据库是否已加密。 |
| Encryption Key ID | 表示加密密钥 ID。 |
Database Size
现在有一个需求。想将intersystems系统产生的alerts.log文件的内容保存到一个表中。有什么工具或者API 能自动格式化log文件到DB吗,还是需要手动解析log文件然后在存储到DB中。

