问题 Michael Lei · 五月 5, 2021 来自海外的问题: 使用自身作为参数的%Persistent类中的查询方法 大家好, 我想知道是否有可能获取自身的值来运行查询。 我想创建一些查询以在%Persistent类中找到一个值,但是每个查询都使用不同的值。 #SQL #Caché #Ensemble 0 1 0 264
文章 Michael Lei · 八月 9, 2022 阅读大约需 1 分钟 Caché ObjectScript 快速参考 在Caché基础课程中,同学们同时学习了Caché开发和ObjectScript语法。为了帮助大家完成练习,我们提供了ObjectScript快速参考(俗称 "小抄")。 它不是所有ObjectScript的参考资料! 它是学生在课程中使用的ObjectScript命令和函数的列表,以及对象、集合等的常用语法。它还包含一些有用的宏。 我们正在为开发者社区提供一个pdf版本。 #对象数据模型 #ObjectScript #语言 #Caché 0 0 0 260
文章 Hao Ma · 四月 29, 2021 阅读大约需 3 分钟 WebGateway系列(4): 配置HTTPS访问IRIS的Web服务 经常被问到有关IRIS如何支持SSL,HTTPS的问题,有必要写个东西介绍一下。 HTTPS的原理 简单的说,https实现两个目的:一是访问网站加密,2是确认被访问的网站是真的。 首先,被访问的网站要申请一个证书,这个证书必须是权威机构发放的,比如google, VeriSign等等,所有的浏览器里有预装了这些组织的公钥(Public Key),因此能确认你提供的证书真是这些组织给出的,而这个证书可以证明你的网站的身份。注意证书证明的是提供服务的组织和服务的真实性,和用什么设备没关系,也就是说,IRIS不管证书的事儿。 接下去,被访问的服务器可以生成公钥和私钥,和客户端交换key,生成整个世界只有两者知道的security code,用来两者之间数据的交换。详细的过程和消息交互可以在网上找到很多很好的文章和视频,比如这个: How does HTTPS work? What's a CA? What's a self-signed Certificate?。 #新手 #部署 #Caché 0 0 0 260
问题 j ay · 三月 22, 2023 如何使用java连接cache2016数据库 1、java如何连接cache2016数据库 2、java如何调用cache的函数 "Backup.General", "ExternalFreeze", #Java #Caché 0 1 0 258
文章 姚 鑫 · 九月 25, 2022 阅读大约需 78 分钟 IRIS与Caché的23种设计模式 IRIS的23种设计模式 第一章 Caché 设计模式 简单工厂模式 定义 简单工厂模式属于创建型模式,又可称为静态工厂模式,这是由一个工厂对象决定创建出哪一种产品类的实例 使用场景 工厂类负责创建的对象比较少 客户只需知道传入工厂类的参数,而无须关心创建对象的逻辑 优点 使用户根据参数获得对一个的类实例,避免了直接实例化类型,降低了耦合性 能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类:客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,所有的客户类都要进行修改 缺点 可实例化的类型在编译期间已经被确定。 如果增加新类型,则需要修改工厂,这违背了开放封闭原则 子类多过不适合使用 示例 用Caché 实现一个计算器控制台程序,要求输入两个数和运算符号。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 17 2 1 258
文章 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
问题 kun an · 八月 16, 2021 java代码中调用历程 我在官网上提供的java方式访问cache下载了一个示例代码 下载地址为:https://gettingstarted.intersystems.com/language-quickstarts/java-quicks... 我在示例代码中看到有这样一种调用 irisNative.functionString("functionName", "routineName") ,请问functionName和routineName主要指什么东西,我在studio中创建了routine,但是也不需要通过functionName来访问呀。 #API #Java #Caché 0 1 0 257
文章 Qiao Peng · 三月 29, 2021 阅读大约需 4 分钟 CDC系列之四:使用DSTIME特性在InterSystems IRIS/Caché上实现CDC功能 前面介绍了通过mirroring或shadow,使用journal日志过滤器的方式,在不改动数据模型的情况下实现InterSystems IRIS/Caché上的CDC能力。但如果你可以修改InterSystems IRIS/Caché上的数据模型,也可以考虑使用DSTIME特性实现变更数据捕获。 DSTIME特性 DSTIME特性是InterSystems IRIS/Caché的嵌入式实时BI工具DeepSee用于跟踪数据变更的。InterSystems IRIS和2011版之后的Caché,都支持DSTIME特性。它会自动记录数据库中SQL表记录或持久化对象的变更,并将变更记录写入持久化的多维数组^OBJ.DSTIME中。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 257
文章 bai hongtao · 十月 7, 2022 阅读大约需 4 分钟 第三方HA软件结合MIRROR使用方法探讨 在Cache 2018之前的版本中,数据库的高可用是通过第三方HA软件保障的,Cache数据库在2018以后及IRIS支持MIRROR技术,通过MIRROR可以保障数据库的高可用及数据的冗余,那么在新版本中,第三方HA软件与MIRROR是否可以同时使用以实现更高的数据库可用性?使用起来有哪些需要注意的?本文重点介绍探讨上述两个问题。 #故障转移 #数据库 #现场测试 #镜像 #高可用性 #Caché #InterSystems IRIS #其他 12 0 0 257
文章 姚 鑫 · 三月 11, 2021 阅读大约需 10 分钟 第八章 SQL修改数据库 第八章 SQL修改数据库 可以对现有的表使用SQL语句,也可以对相应的持久化类使用ObjectScript操作来修改InterSystems IRIS®数据平台数据库的内容。 不能修改定义为只读的持久类(表)。 使用SQL命令为维护数据的完整性提供了自动支持。 SQL命令是一个原子操作(全部或没有)。 如果表上定义了索引,SQL将自动更新它们以反映更改。 如果定义了任何数据或引用完整性约束,SQL将自动执行它们。 如果有任何已定义的触发器,执行这些操作将拉动相应的触发器。 插入数据 可以使用SQL语句或设置和保存持久化类属性将数据插入表中。 使用SQL插入数据 INSERT语句将一条新记录插入SQL表中。 可以插入一条记录或多条记录。 下面的示例插入一条记录。 它是插入单个记录的几种可用语法形式之一: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 256
公告 Nicky Zhu · 三月 30, 2021 Caché、Ensemble和InterSystems IRIS的维护版本发布 现已推出三套新的维护版本: #Caché #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 256
问题 jiang yucong · 七月 26, 2023 如何下载cache-2016的安装包? 从哪里可以下载到cache-2016的安装包?包括windows、macOS以及Linux #Java #Caché 0 1 0 255
文章 Qiao Peng · 五月 25, 2022 阅读大约需 1 分钟 如何通过Journal日志文件查询谁对特定数据做了什么操作 %SYS.Journal.Record 类有一个查询(query), List, 可以列出Journal文件中记录的数据修改历史。例如,要查询谁对global节点^QP(1,2)做过修改,可以使用如下代码。它查询Journal文件(输入参数pFilePath)中的global节点(输入参数pSearchGlobal)的操作: #Code Snippet #开发运维 #提示和技巧 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 2 1 2 254
文章 Qiao Peng · 一月 14, 2021 阅读大约需 12 分钟 InterSystems IRIS 开放授权框架 (OAuth 2.0) 实现 – 第 1 部分 本文以及后面两篇该系列文章,是为需要在其基于 InterSystems 产品的应用程序中使用 OAuth 2.0 框架(下文简称为 OAUTH)的开发人员或系统管理员提供的指南。 #OAuth2 #安全 #访问控制 #身份认证 #Caché #InterSystems IRIS 0 0 0 254
问题 Shuai Wang · 二月 15, 2023 您好,如下下载 cache linux 版本安装包? 您好,我们的客户仍在使用较旧的 cache 2016.1 版本,我们这边需要适配 python 作为 client 连接 cache 进行一些操作。 但是查阅相关文档后发现,需要自行编译安装 python 驱动。 我们手头上只有 windows 版本的 cache 安装包,但是我们python适配的环境是 linux。 所以我想找一下是否有 cache 现有的 python 安装包或者 cache linux 安装版本,我自行安装。 谢谢。 #Python #Caché 0 2 0 253
文章 Qiao Peng · 八月 23, 2022 阅读大约需 6 分钟 InterSystems 常用术语 任何技术总是有些自己独特的术语,尤其是一些英文术语,对于新的用户来说往往即陌生又迷惑。这里整理了一下常听到的InterSystems术语,帮助大家尽快进入InterSystems技术圈子。 #提示和技巧 #Caché #InterSystems IRIS #InterSystems IRIS for Health 4 1 2 251
问题 Johnny Wang · 五月 16, 2021 webservice服务,在浏览器中调用成功,在soapui工具中调用失败“wsse:FailedAuthentication” webservice服务,在浏览器中调用成功,在soapui工具中调用失败“wsse:FailedAuthentication” #Caché 0 1 0 249
问题 Michael Lei · 四月 29, 2022 Cache 动态 SQL 分页 我想知道是否有更好的方法来使用动态SQL对数据集进行分页,而不是我下面使用的方法。问题是,当潜在的数据池变大时,这段代码就会变慢,以至于无法使用。在分析下面的每一行代码时,似乎速度变慢与最初的rset.%Next()迭代有关。 有没有什么不需要子查询/%VID的可用方法,比如简单的LIMIT/OFFSET? 我的代码类似于: s sql=##class(%SQL.Statement).%New() s query="SELECT *,%VID FROM (SELECT prop FROM table WHERE prop=x) WHERE %VID BETWEEN 1 AND 100" s sc=sql.%Prepare(query) s rset=sql.%Execute() while rset.%Next() {..... #对象数据模型 #SQL #Caché 0 1 1 248
文章 jieliang liu · 一月 27, 2021 阅读大约需 13 分钟 在Caché中使用正则表达式 #ObjectScript #教程 #Caché #InterSystems IRIS 2 1 0 248
文章 zhanglianzhu zh... · 九月 29, 2022 阅读大约需 3 分钟 Cache死循环检测和申明式事务 使用Cache的两个痛点问题: 一、Cache作为后关系型数据库,使用其提供M语言操作Global数据结构。可以达到极快的查询速度。M语言的set赋值和初始化没有区分,加之是弱类型,非常容易出现死循环,就算你是多年老手也一个不小心就踩坑。我就经历过改代码即使很小心还是出了死循环把数据库tmp撑满的事故。 二、M语言作为完备的编程语言,结合cache数据库操作数据实在是不要太方便。同时一个复杂的业务提交到数据库通过一个M逻辑全部处理完成,极大的减少了app和数据库交互次数。复杂业务的事务就是一方面,通过TSTART、TROLLBACK 、TCOMMIT,前台一次数据库交互后台就可能做了几十张表的更新操作。直接使用事务是容易,但是极易引入开放事务锁表(你自己就算很小心,也难保调别人接口别人事务不完善,而你又没检测事务层级),锁表之后结束进程导致数据回滚。 解决办法: 据我观察出现上面两个问题的原因,第一个是M语言弱类型和没单独的初始化命令导致,就算你是老手、工作细致也难以避免。第二个不是Cache特有的,通用关系库也有事务写的不完整的问题,事务问题对开发要求高或者从框架设计可以解决。 #数据库 #Caché 16 4 1 245
文章 姚 鑫 · 八月 15, 2022 阅读大约需 4 分钟 第二章 使用管理门户(二) 第二章 使用管理门户(二) 管理门户概述 本节介绍管理门户页面的一些常见布局元素。 注意:在管理门户中的任何位置,将光标移到菜单项上都会显示该项目的描述。 管理门户主页 管理门户主页的标题是 Welcome, <user>。在标题旁边,功能区包含以下选项: - 两个视图按钮,可让指定如何在菜单列中显示链接。 - 搜索栏,位于功能区的右侧。当指定一个词并按 Enter 键时,将显示包含该词的所有页面的列表;然后,可以单击要显示的目标页面,而无需浏览子菜单。 以下部分描述了主页的区域: 管理门户菜单栏 位于主页左边缘的菜单栏是导航门户的主要方法。 #Caché 0 0 0 245
文章 Lilian Huang · 六月 23, 2022 阅读大约需 2 分钟 InterSystems 许可证信息和查询支持Tips InterSystems许可证是指InterSystems #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS BI (DeepSee) #InterSystems IRIS for Health 0 0 0 244
问题 wenjie zhao · 五月 22, 2021 新安装的cache在本地可以连接terminal,外部电脑连接不上 新安装的cache在本地可以连接terminal,外部主机连接不上,网络通畅,可以连接studio,端口telnet 23端口不通 #Caché 0 5 0 243
文章 姚 鑫 · 二月 28, 2021 阅读大约需 7 分钟 第一章 InterSystems SQL简介 第一章 InterSystems SQL简介 InterSystems SQL提供对InterSystems IRIS®Data Platform数据库中存储的数据的无懈可击的标准关系访问。 InterSystems SQL提供以下优势: #Caché #InterSystems IRIS #InterSystems IRIS for Health 2 2 0 237
文章 Michael Lei · 八月 9, 2022 阅读大约需 1 分钟 一个更有用的对象Object Dump 在测试你的代码时,你经常会遇到需要检查对象的实际内容。无论是使用 ZWRITE 还是 $system.OBJ.Dump(), 你会得到一个简单的属性图片,"--- 属性值---" 而 "--- swizzled references ---" 更容易让人混淆 用“--- calculated references ---" 你只是被留在了后面。 #Code Snippet #工具 #开发环境 #提示和技巧 #新手 #测试 #Caché #Ensemble #InterSystems IRIS Open Exchange app 0 0 0 237
文章 姚 鑫 · 十月 19, 2022 阅读大约需 7 分钟 CORS请求Request携带Cookie失败占用License解决方案 CORS请求Request携带Cookie失败占用License解决方案 起因 因为是前后端分离的项目,前端使用的vue2,后端iris。需要获取cooike的sessionid,每次请求时携带cookie,防止每次请求都占用一个license。 登录认证,保持会话期间全局变量,超时退出。 现象 下图是如果不携带cookie每次请求都会新建一个session并且占用一个license。 #CSP #Caché #InterSystems IRIS for Health 6 0 0 237
文章 姚 鑫 · 九月 15, 2021 阅读大约需 10 分钟 第十六章 SQL命令 CREATE TABLE(三) 第十六章 SQL命令 CREATE TABLE(三) 字段数据约束 数据约束控制字段允许使用的值、字段的默认值以及数据值使用的排序规则类型。所有这些数据约束都是可选的。可以按任何顺序指定多个数据约束,并以空格分隔。 NULL和NOT NULL NOT NULL数据约束关键字指定该字段不接受空值;换句话说,每条记录都必须为该字段指定一个值。NULL和空字符串('') IRIS中是不同的值。可以在接受字符串的字段中输入空字符串,即使该字段定义了NOT NULL限制也是如此。不能在数值字段中输入空字符串。 NULL数据约束关键字显式指定此字段可以接受空值;这是字段的默认定义。 #SQL #Caché 0 0 0 235
文章 姚 鑫 · 四月 8, 2021 阅读大约需 8 分钟 第二十章 用户、角色和权限 第二十章 用户、角色和权限 InterSystems IRIS®具有系统级安全性,以及一组与sql相关的额外安全性特性。 在数据库级保护之外,InterSystems SQL安全性提供了额外级别的安全功能。 SQL和系统级安全性之间的一些关键区别是: - SQL保护比系统级保护更细粒度。可以为表、视图和存储过程定义特权。 - SQL权限既可以授予用户,也可以授予角色。 系统级权限只分配给角色。 - 持有SQL特权会隐式授予执行SQL操作所需的任何相关系统特权。 (相反,系统级特权并不意味着表级特权。) InterSystems SQL在InterSystems IRIS数据平台上对ODBC、JDBC、Dynamic SQL和SQL Shell接口进行权限检查。 嵌入式SQL语句不执行特权检查; 假定使用嵌入式SQL的应用程序在使用嵌入式SQL语句之前会检查特权。 SQL权限和系统权限 要通过特定于SQL的机制操作表或其他SQL实体,用户必须具有适当的SQL权限。 系统级权限不足。 用户可以直接被授予SQL权限,也可以属于具有SQL权限的角色。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 1 0 232
文章 姚 鑫 · 六月 24, 2021 阅读大约需 6 分钟 第十七章 加密XML文档 第十七章 加密XML文档 本章介绍如何加密XML文档。 提示:发现在此命名空间中启用SOAP日志记录非常有用,这样就可以收到有关任何错误的更多信息。 关于加密的XML文档 加密的XML文档包括以下元素: #Caché 0 0 0 231
文章 Claire Zheng · 七月 6, 2021 阅读大约需 1 分钟 InterSystems Caché系统运维培训:InterSystems Caché系统高可用与数据库镜像 近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问祝麟讲解了“InterSystems Caché系统高可用与数据库镜像”。 //player.bilibili.com/player.html?aid=887686408&bvid=BV1tK4y1P7oD&cid=327179451&page=1[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。] #视频 #Caché 0 0 0 231