搜索​​​​

清除过滤器
文章
Michael Lei · 六月 26, 2022

从Web 应用端用代码实现OAuth2 和基础认证、鉴权和审计

在这篇文章中,我将解释如何通过使用CSP Web应用程序以及启用/禁用和认证/取消认证任何Web应用程序的代码来进行认证、授权和审计。 在线 Demo -- https://dappsecurity.demo.community.intersystems.com/csp/user/index.csp (SuperUser | SYS) 推荐大家看下这个视频: https://www.youtube.com/watch?v=qFRa3njqDcA 应用层 从认证开始 认证可以验证任何试图连接到InterSystems IRIS®的用户或其他实体的身份。正如人们常说的,认证是你如何证明你是你所说的人。 有许多不同的方法可以对用户进行认证;每一种方法都被称为认证机制。InterSystems IRIS支持一系列的认证机制: Kerberos — Kerberos协议被设计用来在不安全的网络上为服务提供安全认证。Kerberos使用Ticket来验证用户,避免了在网络上交换密码。 Operating System–Based — 基于操作系统的认证使用操作系统对每个用户的身份认证来识别该用户对InterSystems IRIS的身份。 Instance Authentication — 通过实例验证,InterSystems IRIS提示用户输入密码,并将所提供的密码的哈希值与它所存储的值进行比较。 Lightweight Directory Access Protocol (LDAP) — 通过轻量级目录访问协议LDAP,InterSystems IRIS根据LDAP服务器中的信息对用户进行认证。 Delegated Authentication — 委托认证提供了一种创建自定义认证机制的方法。应用程序开发人员完全控制委托认证代码的内容。 我使用实例验证,对于用户的创建,我们可以使用以下objectscript命令: &sql(CREATE USER TestUser IDENTIFY BY demo) 创建 TestUser 和 demo 密码 审计Auditing 在创建用户记录时,也通过使用以下objectscript命令添加到审计数据库中: Do $SYSTEM.Security.Audit("%System","%Security","UserChange","User:TestUser | Password:demo","Audit Log inserted from Data_APP_Security") 请参考审计相关的文档 (Auditing Guide) : https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AAUDIT 授权Authorization 一旦认证完成,我们需要创建角色并授予角色以权限,然后将角色与用户联系起来(授权)。我们将分三步来做这件事 第一步 : 通过使用以下objectscript命令创建角色,我们正在创建ReadWrite角色 &sql(CREATE ROLE ReadWrite) 第二步: 在表上授予SELECT,UPDATE,INSERT权限,我们将scw.Patient表的权限分配给ReadWrite角色。 &sql(GRANT SELECT,UPDATE,INSERT ON scw.Patient TO ReadWrite) 第三步: 给用户授予角色,我们给TestUser用户分配ReadWrite角色 &sql(GRANT ReadWrite To TestUser) 启用/禁用Web应用 我们可以通过使用以下objectscript代码启用或禁用Web应用程序 New $Namespace Set $Namespace = "%SYS" Set App = ##class(Security.Applications).%OpenId("/terminal") Set App.Enabled=0 Do App.%Save() 这里"/终端 "是我们应用程序的名称。应用程序可以通过设置 "App.Enabled "为0来禁用,通过设置值为1来启用 认证/取消 Web 应用 我们可以通过使用以下objectscript代码来设置认证 New $Namespace Set $Namespace = "%SYS" Set App = ##class(Security.Applications).%OpenId("/terminal") Set App.AutheEnabled=0 Do App.%Save() 这里"/终端 "是我们应用程序的名称。认证可以通过使用"App.AutheEnabled" 属性来设置. 可以设置以下数值 property AutheEnabled as Security.Datatype.Authentication [ InitialExpression = 64 ]; Authentication and Session mechanisms enabled (CSP Only). Bit 2 = AutheK5API Bit 5 - AutheCache Bit 6 = AutheUnauthenticated Bit 11 = AutheLDAP Bit 13 = AutheDelegated Bit 14 = LoginToken Bit 20 = TwoFactorSMS Bit 21 = TwoFactorPW 谢谢 源代码:https://openexchange.intersystems.com/package/Data_APP_Security
文章
姚 鑫 · 四月 5, 2021

第十七章 使用触发器

# 第十七章 使用触发器 本章介绍如何在Intersystems SQL中定义触发器。触发器是响应某些SQL事件执行的代码行。本章包括以下主题: # 定义触发器 有几种方法可以为特定表定义触发器: - 在将投影到SQL表的持久性类定义中包含触发定义。例如,`MyApp.person`类的此定义包括`Loggevent`触发器的定义,在每个成功的数据插入到`MyApp.person`表之后,将在每个成功的数据插入后调用: ```java Class MyApp.Person Extends %Persistent [DdlAllowed] { // ... Class Property Definitions Trigger LogEvent [ Event = INSERT, Time = AFTER ] { // Trigger code to log an event } } ``` - 使用SQL创建触发命令创建触发器。这在相应的持久性类中生成触发对象定义。 SQL触发器名称按照标识符命名约定进行操作。 IntersystemsIris®数据平台使用SQL触发名称生成相应的触发类实体名称。 必须拥有`%create_trigger`管理级别权限来创建触发器。必须具有删除触发器的`%drop_trigger`管理级别权限。 **类的最大用户定义触发器数为200。** 注意:Intersystems Iris不支持收集投影的表上的触发。用户无法定义这样的触发器,并且作为子表的集合的投影不认为涉及该基本集合的触发。 Intersystems Iris不支持修改`Security.Roles`和`Security.Users`表的触发器。 # 触发器的类型 触发器由以下内容定义: - 导致它执行的事件类型。触发器可以是单个事件触发器或多事件触发。定义单个事件触发器以在指定表上发生插入,更新或删除事件时执行。定义多事件触发器以执行当在指定的表中发生多个指定的事件中的任何一个时执行。可以使用类定义或创建触发命令定义插入/更新,更新/删除或插入/更新/删除多事件触发器。事件类型在Class定义中指定了所需的事件触发器关键字。 - 触发器执行的时间:在事件发生之前或之后。 这是由可选的`Time trigger`关键字在类定义中指定的。 默认为`Before`。 - 可以将多个触发器与同一事件和时间相关联;在这种情况下,可以使用`order trigger`关键字来控制触发多个触发器的顺序。先触发顺序较低的触发器。 如果多个触发器具有相同的`Order`值,则不指定它们的触发顺序。 - 可选的`Foreach trigger`关键字提供了额外的粒度。 该关键字控制触发器是每一行触发一次(`Foreach = row`),还是每一行或对象访问触发一次(`Foreach = row/object`),还是每语句触发一次(`Foreach = statement`)。 没有`Foreach trigger`关键字定义的触发器每一行触发一次。 如果触发器是用`Foreach = row/object`定义的,那么触发器也会在对象访问期间的特定点被调用,如本章后面所述。 可以使用`INFORMATION.SCHEMA.TRIGGERS`的`ACTIONORIENTATION`属性列出每个触发器的`Foreach`值 下面是可用的触发器及其等价的回调方法: - `BEFORE INSERT` (等价于 `%OnBeforeSave()`) - `AFTER INSERT` (等价于 `%OnAfterSave()`) - `BEFORE UPDATE` (等价于 `%OnBeforeSave()`) - `AFTER UPDATE` (等价于 `%OnAfterSave()`) - `BEFORE UPDATE OF specified column(s)` - `AFTER UPDATE OF specified column(s)` - `BEFORE DELETE` (等价于 `%OnDelete()`) - `AFTER DELETE` (等价于 `%OnAfterDelete()`) 注意:当触发器执行时,它不能直接修改正在处理的表中的属性值。 这是因为InterSystems IRIS在字段(属性)值验证代码之后执行触发代码。 例如,触发器不能将LastModified字段设置为正在处理的行中的当前时间戳。 但是,触发器代码可以对表中的字段值发出更新。 更新执行自己的字段值验证。 ## AFTER Triggers 在`INSERT`、`UPDATE`或`DELETE`事件发生后执行`AFTER`触发器: - 如果`SQLCODE=0`(事件成功完成),InterSystems IRIS将执行`AFTER`触发器。 - 如果`SQLCODE`是负数(事件失败),系统间IRIS就不会执行`AFTER`触发器。 - 如果`SQLCODE=100`(没有发现要插入、更新或删除的行),则系统间IRIS执行`AFTER`触发器。 ## 递归触发器 触发器执行可以是递归的。 例如,如果表`T1`有一个对表`T2`执行插入操作的触发器,表`T2`也有一个对表`T1`执行插入操作的触发器。 当表`T1`有一个调用例程/过程的触发器,并且该例程/过程执行对`T1`的插入操作时,也可以发生递归。 触发器递归的处理取决于触发器的类型: - 行和行/对象触发器:InterSystems IRIS不阻止行触发器和行/对象触发器递归地执行。 处理触发器递归是程序员的责任。 如果触发代码不处理递归执行,则可能发生runtime ``错误。 - 语句触发器:InterSystems IRIS阻止`AFTER`语句触发器递归执行。 如果InterSystems IRIS检测到该触发器在执行堆栈中已经被调用,它将不会发出AFTER触发器。 没有错误发出; 触发器不会被第二次执行。 InterSystems IRIS不会阻止`BEFORE`语句触发器递归地执行。 在触发递归之前处理是程序员的责任。 如果`BEFORE`触发器代码不处理递归执行,可能会发生runtime ``错误。 # Trigger Code 每个触发器包含执行触发操作的一行或多行代码。 每当与触发器关联的事件发生时,SQL引擎就会调用这段代码。 如果触发器是使用CREATE触发器定义的,则可以用ObjectScript或SQL编写此操作代码。 (InterSystems IRIS将SQL编写的代码转换为类定义中的ObjectScript。) 如果触发器是使用Studio定义的,那么这个操作代码必须用ObjectScript编写。 因为触发器的代码不是作为过程生成的,所以触发器中的所有局部变量都是公共变量。 这意味着触发器中的所有变量都应该用一个新语句显式声明; 这可以防止它们与调用触发器的代码中的变量发生冲突。 ## %ok, %msg, and %oper 系统变量 - `%ok`:仅在触发器代码中使用的变量。 如果触发代码成功,它设置`%ok=1`。 如果触发代码失败,它设置`%ok=0`。 如果在触发器执行期间发出`SQLCODE`错误,InterSystems IRIS将设置`%ok=0`。 当`%ok=0`时,触发器代码中止,触发器操作和调用触发器的操作被回滚。 如果插入或更新触发器代码失败,并且表中定义了一个外键约束,InterSystems IRIS将释放外键表中相应行上的锁。 触发代码可以显式设置`%ok=0`。 这会创建一个运行时错误,中止触发器的执行并回滚操作。 通常,在`设置%ok=0`之前,触发器代码显式地将`%msg`变量设置为用户指定的字符串,用于描述这个用户定义的触发器代码错误。 `%ok`变量是一个必须显式更新的公共变量。 在完成非触发代码`SELECT`、`INSERT`、`UPDATE`或`DELETE`语句后,`%ok`的值与之前的值没有变化。 `%ok`仅在执行触发器代码时定义。 `%msg`:触发代码可以显式地将`%msg`变量设置为描述运行时错误原因的字符串。 设置变量`%msg`。 `%oper`:仅在触发器代码中使用的变量。 触发器代码可以引用变量`%oper`,该变量包含触发触发器的事件(插入、更新或删除)的名称。 ## {fieldname}语法 在触发器代码中,可以使用特殊的`{fieldname}`语法引用字段值(对于属于触发器关联的表的字段)。 例如,下面是`MyApp`中`LogEvent`触发器的定义。 `Person`类包含一个对`ID`字段的引用,如`{ID}`: ```java Class MyApp.Person Extends %Persistent [DdlAllowed] { // ... Definitions of other class members /// This trigger updates the LogTable after every insert Trigger LogEvent [ Event = INSERT, Time = AFTER ] { // get row id of inserted row NEW id,SQLCODE,%msg,%ok,%oper SET id = {ID} // INSERT value into Log table &sql(INSERT INTO LogTable (TableName, IDValue) VALUES ('MyApp.Person', :id)) IF SQLCODE
问题
天恒 周 · 八月 6, 2022

cache题目

cache的题目资源,类似于Oracle的OCP试题那种,能反应出对基础概念的掌握。 回答您的问题: 1. 我们海外在招募考试平台测试者,您可以直接给certification@intersystems.com 发邮件申请,具体内容可以参考:https://community.intersystems.com/post/beta-testers-needed-our-upcoming-intersystems-iris-system-administration-specialist; 2. 我们国内也即将推出初中高级的培训认证体系,敬请关注。 这还有网上的一些体验题目:https://community.intersystems.com/sites/default/files/post-associated-docs/sysadmin_practice_questions_0.pdf 谢谢您的关注! 好的,感谢!
问题
Johnny Wang · 七月 13, 2021

关于Ensemble中消息形成过程的问题

各位老师好! 如下两图,是HL7信息体,在形成消息之前,我们一般会先制定文档,包括消息题、消息段、阈值;但是最终在Ensemble中形成的消息是怎么一个过程? 制定好的消息文档可以转换成IRIS可以读取的格式,导入到IRIS中成为消息Schema结构。在处理消息时,可以配置接口应用我们指定的消息Schema结构去处理消息。更多细节可参见文档:HL7 Schemas and Available Tools | Routing HL7 Version 2 Messages in Productions | InterSystems IRIS for Health 2023.1
文章
Qiao Peng · 五月 25, 2022

如何通过Journal日志文件查询谁对特定数据做了什么操作

%SYS.Journal.Record 类有一个查询(query), List, 可以列出Journal文件中记录的数据修改历史。例如,要查询谁对global节点^QP(1,2)做过修改,可以使用如下代码。它查询Journal文件(输入参数pFilePath)中的global节点(输入参数pSearchGlobal)的操作: ClassMethod SearchGlobal(pSearchGlobal = "^QP(1,2)", pFilePath = "C:\InterSystems\IRISHealth\mgr\journal\20220525.003") { Set tRS = ##class(%ResultSet).%New("%SYS.Journal.Record:List") Set tSC = tRS.Execute(pFilePath) While (tRS.Next()) { Set address = tRS.Data("Address") Set globalNode = tRS.Data("GlobalNode") Set newValue = tRS.Data("NewValue") Set type = tRS.Data("TypeName") Set processid = tRS.Data("ProcessID") Set time = tRS.Data("TimeStamp") Set globalRef = tRS.Data("GlobalReference") If globalNode=pSearchGlobal { W ! W time,! W processid,! W address,! W type," ",globalRef,"=",newValue,! } } }
文章
Weiwei Gu · 九月 14, 2023

VS Code 无法连接到服务器的原因之一

昨天,我在一个客户网站提供从 Studio 迁移到 VS Code 的定制咨询时,就遇到了这种情况。 该站点的服务器已配置为使用delegated authentication,但尚未针对 /api/atelier Web 应用程序设置“delegated”复选框,而 InterSystems ObjectScript 扩展包的成员正是使用该复选框进行连接的。 一旦我们的应用程序设置了其复选框并单击了服务器管理器刷新按钮,就可以在服务器上枚举命名空间。
公告
Claire Zheng · 十二月 22, 2022

直播预告 | 卫生健康信息标准应用管理培训班 (第二期)

2022年12月24日-25日,卫生健康信息标准应用管理培训班 (第二期)将于线上举办,此次培训班由国家卫生健康委统计信息中心指导、由《中国卫生信息管理杂志》社、深圳市卫生健康信息协会主办,InterSystems协办。详细日程请点击此处了解。您可以通过以下方式参与: 报名观看(可申请学分) 视频号(可观看直播) 如需要回看,请扫描“可申请学分”的二维码观看
公告
Qiao Peng · 三月 3, 2021

IAM 1.5.0.9 正式发布

InterSystems API Manager (IAM) 版本1.5已正式发布。 IAM容器,包括从原有IAM版本升级的所有相关工件, 现在可以在 WRC 软件发布网址 组件区下载。 该版本的小版本号是 IAM 1.5.0.9-4。 InterSystems API Manager 1.5 使管理API通讯、与你的环境集成、加载API用户更加容易。它包含很多新特性,包括: 改进的用户体验 新的开发者门户工具 对Kafka connectivity的支持 这个版本基于Kong Enterprise version 1.5.0.9。之前的IAM版本包括一个贴牌版本的Kong Enterprise, 在本版本中的Kong Enterprise不再贴牌。 这个变化让我们可以更快的节奏带给您新的版本,并更有效地利用Kong提供的文档和其它资源。 请在 这里 查看IAM 1.5 的文档。这个文档仅说明IAM特殊的元素。产品中的文档链接直接打开Kong Enterprise的文档。 从IAM 0.34-1 升级需要通过3个中间版本累积升级,在 文档中有详细的说明。 IAM 仅以OCI (Open Container Initiative) 或 Docker 容器格式发放。容器镜像可运行在Linux x86-64 和 Linux ARM64的OCI 兼容的运行引擎上, 详情请参考 支持的平台。 Best Regards, Stefan 欢迎开发者们多关注!
公告
Claire Zheng · 三月 18, 2021

Global Masters的成员们,即日起在社区发布帖子和译文贴可获得两倍积分!

中文社区的开发者们,大家好! 我们调整了开发者社区的积分规则,将其调整为双倍积分!自2021年3月18日起,如果您在社区贡献了文章或问题,将获得: 在英文社区获得200积分在西语、葡语、日语和中文社区将获得400积分* 针对译文帖子,将获得100积分 另外,你还可以从特定文章/评论中获得更多积分,详见下表: 第1篇文章 第5篇文章 第10篇文章 第25篇文章 第50篇文章 1,500 分 7,500 分 15,000 分 40,000 分 75,000分 第1个问题 第5个问题 第10个问题 第25个问题 第50个问题 500 分 2,000 分 5,000 分 15,000 分 30,000 分 而且你将可以获得奖励徽章!在 这篇文章里, 你可以看到对应等级和徽章(把鼠标放在徽章上查看如何获得)。 *我们将在一段时间内提升西语/葡语/中文/日语社区的积分 更多关于Global Masters倡导中心的信息: 如何加入InterSystems Global Masters倡导中心? Global Masters徽章:规则解读 如果您还没有加入InterSystems Global Masters倡导中心 , 现在就加入吧! 如果您有任何疑问,欢迎跟帖回复!
公告
Michael Lei · 二月 21, 2022

欢迎大家为中国参赛者Wu Fatian 踊跃投票!

投票三部曲: 1. 注册用户或登陆; 2. 成为社区活跃者获取投票资格 3. 投票 good! 欢迎大家把对我们的需求发表在讨论区: intersystems-产品学习使用问题经验分享讨论区--https://cn.community.intersystems.com/post/intersystems-%E4%BA%A7%E5%93%81%E5%AD%A6%E4%B9%A0%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB%E8%AE%A8%E8%AE%BA%E5%8C%BA 这个绿色的 vote的 button 并不工作,试试这个链接 https://openexchange.intersystems.com/contest/21 it is a screenshot.... 点击查看 最新投票规则,在英文原帖的评论区我们的工作人员会每天更新排名,欢迎关注:D 暂时群众投票排名第一,@Fatian Wu加油! Expert Nomination, Top 3 appmsw-sql2xlsx by @Sergey Mikhailenko iris-python-dashboards by @Evgeniy Potapov DIMSE Iris Dicom Fhir Service by @Ron Sweeney ➡️ Voting is here. Community Nomination, Top 3 IRIS-Database-and-Machine-Learning-Based-Approaches-for-Prediction-of-Spontaneous-Intracerebral-Hemo by @Fatian Wu iris-python-dashboards by @Evgeniy Potapov appmsw-sql2xlsx by @Sergey Mikhailenko ➡️ Voting is here. Experts, we are waiting for your votes! 🔥 Participants, improve & promote your solutions! 武同学仍然排名第三,加油! Expert Nomination, Top 3 django-iris by @Dmitry Maslennikov appmsw-sql2xlsx by @Sergey Mikhailenko iris-python-dashboards by @evgeniy Potapov ➡️ Voting is here. Community Nomination, Top 3 django-iris by @Dmitry Maslenniko appmsw-sql2xlsx by @Sergey Mikhailenko IRIS-Database-and-Machine-Learning-Based-Approaches-for-Prediction-of-Spontaneous-Intracerebral-Hemo by @Fatian Wu
问题
jingwei lu · 三月 16, 2022

如何获得WRC网站登录权限

因为最近再研究Cache,发现Cache安装程序官方上找不到了,又从一个帖子上看到Cache安装程序在WRC上面有,话说这个WRC账号是不是类似于Oracle的MOS账号? 我从官网机器人那得到指示给support@intersystems.com发邮件,可能是因为塑料英语,石沉大海了。另外我想问问这个账号是不是只对那些买了产品或服务的客户单位公开? 请哪位大神为我指点迷津,谢谢 是的,WRC主要面向我们在服务有效期内的客户,请把您的单位名称写在邮件里,邮件也可以支持中文的,没有问题。谢谢! 既然是再研究,何不试试我们最新的InterSystems IRIS。如果以前研究过Caché 会发现,IRIS 还是同样的架构、同样的开发语言、同样的global存储,只是人机交互更流畅、性能更快,增加更多扩展,机器学习、python、丰富的外部BI工具适配、容器化部署、API管理等等等等,都等着你探索。 要想体验就在社区主页左边,选择下载InterSystems IRIS。 WRC可以说是我们对客户的支持中心,所以只面对我们的客户开放注册。
问题
Liang Jianhui · 六月 13, 2022

HealthShare Patient Index

在找 HealthShare Patient Index 的相关视频和资料,求分享,谢谢 https://learning.intersystems.com/course/view.php?id=632, 更多视频欢迎在learning.intersystems.com 上搜索即可。谢谢! Hi @Liang.Jianhui , 可以参考这个页面的内容:https://www.intersystems.cn/interoperability-platform/patient-index 社区里也有很多:https://community.intersystems.com/smartsearch?search=patient+index,需要哪片文章可以告诉我们,我们可以帮忙翻译。 Only members of audience '1.0 HealthShare Content Access' can self-enrol. 这种情况是我没有权限吗?需要怎么做才能有权限? 你好!您是在点击这个链接:https://learning.intersystems.com/course/view.php?id=632时出现的问题吗?你需要先试着注册一下才能获取权限。如果还是不行,可以告诉我需要查看的资料,我看怎么分享您。谢谢! 你好,我是点击链接之后进入的,也进行了注册登录。 注册登录之后,仍然没有权限。Only members of audience '1.0 HealthShare Content Access' can self-enrol. 还是出现这个提示。我想了解HSPI 在interSystems系统中是如何应用的,以及worklist是怎么生成链接的。谢谢。 您提到的这个部分是需要WRC权限才可以观看的,WRC是我们的全球响应中心服务账户,您可以参考如下信息获取WRC支持: InterSystems全球响应中心(WRC)联络信息 电话: +86 400-601-9890 邮件: support@intersystems.com 网站: https://wrc.intersystems.cn/ https://wrc.intersystems.com
问题
Liang Jianhui · 八月 24, 2022

log文件内容存储到DB中

现在有一个需求。想将intersystems系统产生的alerts.log文件的内容保存到一个表中。有什么工具或者API 能自动格式化log文件到DB吗,还是需要手动解析log文件然后在存储到DB中。 这是两件事:1. 把log里的记录结构化。 2. 保存到DB。 关于1,如果你用的是最新的iris版本, 可以直接拿到结构化的log, 看这个链接: https://docs.intersystems.com/iris20221/csp/docbook/Doc.View.cls?KEY=ALOG 如果是老版本没有结构化,您得自己去做文本处理。好在这个log非常简单。比如下面两行: 08/30/22-11:03:57:775 (6964) 2 [Utility.Event] Previous system shutdown was abnormal, system forced down or crashed. Fast shutdown complete.08/30/22-11:03:59:541 (7716) 2 [Utility.Event] Preserving journal files c:\intersystems\hcdemo\mgr\journal\20220824.002 and later for journal recovery and transaction rollback如果您要只是把日期时间,警告类型,级别,内容分开,它基本就是分开的,用的是空格。 如果您想把内容页结构化,这就花功夫了, 我上面的链接里的工具也不做这个事。 2. 存入DB您得自己解决,IRIS提供文本,API, 没有SQL查询,好在有一大堆监控工具都干这事,就是监控文本文件写入数据库。
文章
jieliang liu · 三月 15, 2021

iris-analytics-package 上场!

大家好, 现在是九局下半,但在我们的技术世界大赛还留了几手![laugh](https://community.intersystems.com/sites/all/libraries/ckeditor/plugins/smiley/images/teeth_smile.png "laugh") iris-analytics-package 旨在演示各公司可以如何轻松简单地在其软件中利用 InterSystems Analytics 支持。 无论是创建新的简单解决方案,还是使用 OpenExchange 改进现有解决方案。 大多数升级到 InterSystems IRIS 的公司都在利用该工具提供的所有功能;他们了解前沿技术,处于领先地位。 我们在本次竞赛中的方案有着不同的目标,即那些已使用 InterSystems 很长时间,但仍然未挖掘到其全部潜能的公司。 此项目是以其他项目为基础和灵感来创建的。 感谢 @Evgeny.Shvarov @Guillaume.Rongier7183 @Peter.Steiwer * [DeepSeeWeb](https://openexchange.intersystems.com/package/DeepSeeWeb) * [csvgen](https://openexchange.intersystems.com/package/csvgen) * [csvgen-ui](https://openexchange.intersystems.com/package/csvgen-ui) * [AnalyzeThis](https://openexchange.intersystems.com/package/AnalyzeThis) 这些项目一起成就了这个简单的向导。### 导入向导 主页面看起来很简单,涉及的过程也很直接。 正确使用向导需要填写几个字段: 1. 选择 CSV 文件 2. 分隔符 3. 类名称 4. 选择是否要创建多维数据集 5. 多维数据集名称 6. 选择向导是否应创建仪表板示例 为了使创建的内容可视化,我们使用 DeepSeeWeb 来实现。 ### 点击上传按钮后,gif 可能看起来定住了,但原因是记录太多。 选定的 CSV 文件超过 **15Mb**, 导入 **134100 条记录**!![]顺便说一下,此演示的数据集来自人道主义数据交换 - 一站式查找、分享和使用人道主义数据您可以尝试使用同一数据集;CSV 文件位于以下文件夹 iris-analytics-package/data 如果您喜欢这个应用程序,并认为我们值得您投票,请为 **iris-analytics-package** 投上一票! [https://openexchange.intersystems.com/contest/current](http://If%20you%20liked%20the%20app%20and%20think%20I%20deserve%20your%20vote,%20please%20vote%20for%20npm-iris!%20%20laugh%20https://openexchange.intersystems.com/contest/current)
文章
姚 鑫 · 九月 28, 2022

第四十六章 功能跟踪器收集使用统计信息

[toc] # 第四十六章 功能跟踪器收集使用统计信息 作为 不断努力改进其产品以满足客户需求的一部分, 在 `IRIS®` 数据平台中包含一个名为 `Feature Tracker` 的软件实用程序,该软件实用程序收集软件模块使用情况的统计数据。本主题介绍特征跟踪器。 # 为什么 InterSystems 收集统计数据 `Feature Tracker` 收集的统计数据记录软件模块是否存在并在给定的 `IRIS` 实例中使用。 `Feature Tracker` 每周通过 `https` 将此信息发送给 `InterSystems`。这些统计数据有助于 `InterSystems` 规划开发和支持。 收集的信息不包括任何应用程序数据。 # 日志在哪里 如果 `IRIS` 成功发送数据,它会更新 `\mgr` 目录中的 `FeatureTracker.log` 文件。此文件包含已发送数据的 `JSON` 格式副本。每个条目具有以下形式: ``` "FT.":, ``` 如果 `IRIS` 无法发送数据,它会再尝试几次。如果仍然不成功,它将停止尝试并在下一个定期安排的时间再次尝试。 `IRIS` 使用成功和不成功的尝试更新消息日志文件 `(messages.log)`。显示成功发送的条目具有以下形式: ```java mm/dd/yy-hh:mm:ss 0 %SYS.Task.FeatureTracker transferred data to ats.intersystems.com ``` 显示尝试发送失败的条目具有以下形式: ```java mm/dd/yy-hh:mm:ss 1 %SYS.Task.FeatureTracker failed to transfer data ``` 传输的数据包括编码的许可证密钥和主机名,以及实例 `GUID`。 # 收集了哪些统计数据 `Feature Tracker` 记录是否启用了以下软件功能: - BitTrakCare - BI User (Runtime) and BI Development - C-Type License - ExtremeNoUserLimit - Healthshare, Healthshare Foundation - IPNeutral - Web License `Feature Tracker` 还记录以下信息: - 数据库(`DB`)加密:是否启用,以及快照时可用的已挂载加密数据库的数量 - 镜像:此实例是否连接到镜像,故障转移成员的数量,异步成员的数量和类型,以及每个异步成员所属的镜像集的数量 - 系统:授权、 `IRIS` 版本、操作系统、主机名、实例名称、实例 `ID` 和订单 `ID` # 如何停用功能跟踪器 默认情况下启用功能跟踪器。可以停用它以防止它向 `InterSystems` 发送数据(尽管它仍会收集数据)。要停用功能跟踪器,请使用任务管理器,如下所示: 1. 在管理门户中,选择系统操作 > 任务管理器 > 任务计划。 2. 找到 `Feature Tracker` 行并选择 `Feature Tracker`。 3. 在显示的任务详细信息页面上,选择暂停。 4. 回答问题想在任务应该运行时重新安排任务吗?作为适当的。 5. 选择立即执行此操作以暂停任务。 如果升级 `IRIS`,升级会保留 `Feature Tracker` 的状态。如果任务是在升级之前安排的,它会保持预定状态,如果任务被挂起,它会保持挂起状态。