清除过滤器
公告
Claire Zheng · 十一月 23, 2023
大家好!
🏆InterSystems开发者社区中文版第二届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)即将步入尾声!“征文&投票”环节即将结束(截至11月23日23:59)!来抓住最后的时间为你喜欢的作品投票吧!
11月24日19:00-20:00,InterSystems开发者社区将举办“InterSystems第二届技术征文大赛线上分享会”,邀请参赛作者进行作品分享&点评、探讨热门话题,同期还将送出各类奖品,欢迎参会!
会议主题:InterSystems开发者社区第二届技术征文大赛线上分享会会议时间:2023/11/24 19:00-20:00 (GMT+08:00) 中国标准时间 - 北京
点击链接入会,或添加至会议列表:https://meeting.tencent.com/dm/a7BNMvn2Sqx4
#腾讯会议:306-552-860
复制该信息,打开手机腾讯会议即可参与
文章
Michael Lei · 五月 26, 2021
https://www.intersystems.com/isc-resources/wp-content/uploads/sites/24/InterSystems-IRIS%E6%95%B0%E6%8D%AE%E5%B9%B3%E5%8F%B0%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97-20200531.pdf 怎么访问不了呢,404 最新版安装指南请参考:Linux 系统IRIS安装总结 谢谢,我问下有虚拟机分区的部分,应该怎么分区呢 看您是什么操作系统,Linux的话可以用fdisk命令进行分区。
公告
Claire Zheng · 一月 7, 2021
亲爱的社区用户,您好!
我们在 Global Masters上推出了商业服务奖励计划,这是一个绝佳的契机,您可以在开发者社区和我们的社交媒体上宣传贵公司的应用、解决方案和服务,甚至为您的 OEX 应用兑换 Google AdWords 推广!
$1,000 Google AdWords 推广代金券 兑换此奖励可在 Google Adwords 上推广您的 OEX 应用。我们将设置推广(关键字、描述、受众),并在推广结束后发送报告。 要求:应用程序应该在 InterSystems IRIS数据平台/IRIS医疗版 上工作,或是通过 IRIS 进行管理/开发的工具。
3,000 积分
开发者社区上的“NEWS”宣传块 兑换此奖励可在开发者社区上宣传您的服务、活动或职位空缺。时长:1 周。 显示在网站所有网页的右侧。 我们的设计人员将为您准备一个横幅。 要求:开发服务、活动或职位空缺应该与 InterSystems 技术相关。
1,500 积分
开发者社区上的 Open Exchange 项目推广 兑换此奖励可在开发者社区上推广您的 OEX 项目。1 周之内,所有社区访问者在网站所有网页右侧的“本周应用”板块中都会看到一个横幅,其中包含您的项目的可点击链接。
1,000 积分
InterSystems 支持的网络研讨会 如果您想针对开发者组织一次专业的网络研讨会,以介绍您的解决方案/工具和公司服务,那么请兑换此奖励,我们将帮忙组织。 您将获得:InterSystems 团队将建立一个在线网络研讨会;在 开发者社区和社交媒体上推广该网络研讨会;开发者社区上的登录页面;网络研讨会前演练和会议期间的技术支持。 要求:应用程序应该在 InterSystems IRIS数据平台/IRIS医疗版上工作,或是通过 IRIS 进行管理/开发的工具。
3,000 积分
让您的视频出现在 InterSystems 开发者 YouTube 频道上 您是否有描述InterSystems 数据平台相关的工具、解决方案或经验的YouTube 视频? 通过订购视频加速包提高您的 YouTube 视频流量:在 InterSystems 开发者 YouTube 频道上推广视频。 列入每月的“InterSystems 开发者视频”摘要。 这是一个示例。 在 Global Masters 和 InterSystems 开发者社交媒体上宣传。
1,500 积分
在开发者社区上发布您公司的标签 兑换此奖励可获得您公司在开发者社区上的标签,它也是一种公司描述,一个包含帖子和您的订阅者的区域。
5,000 积分
如果您还不是 Global Masters 会员,如何兑换?
➡️ 我们邀请您加入:
1. 使用您在开发者社区上的相同账密登录Global Masters 。
2. 回答“自定义你的程序。 从这里开始!”挑战中的 4 个问题(您会在挑战中看到)。
3. 您对 OEX 和开发者社区的贡献积分将在 3 天内自动授予。
4. 在奖励目录兑换奖励。
InterSystems 开发者社区每个月的访问量超过 35000 人。让世界了解您在 InterSystems 数据平台上构建的应用、解决方案和服务!
欢迎在下面的评论中提出您的问题。
* * *
有关 Global Masters 的其他信息:认识Global Masters倡导中心,从这里开始 欢迎几位把你们的相关单位和产品介绍发布出来,展现给全球客户。
@jingqi LIu @Weiwei Yang @Deming Xu @Botai Zhang @姚.鑫
文章
姚 鑫 · 二月 28, 2021
# 第一章 InterSystems SQL简介
InterSystems SQL提供对InterSystems IRIS®Data Platform数据库中存储的数据的无懈可击的标准关系访问。
InterSystems SQL提供以下优势:
- 高性能和可扩展性-InterSystems SQL提供优于其他关系数据库产品的性能和可扩展性。此外,InterSystems SQL可以在各种硬件和操作系统上运行;从笔记本电脑到高端多CPU系统。
- 与InterSystems IRIS对象技术集成-InterSystems SQL与InterSystems IRIS Object技术紧密集成。可以混合使用关系访问和对象访问数据,而不会牺牲任何一种方法的性能。
- 维护成本低-与其他关系数据库不同,InterSystems IRIS应用程序不需要在已部署的应用程序中重建索引和压缩表格。
- 支持标准SQL查询-InterSystems SQL支持SQL-92标准语法和命令。在大多数情况下,可以毫不费力地将现有关系应用程序迁移到InterSystems IRIS,并自动利用InterSystems IRIS更高的性能和对象功能。
可以将InterSystems SQL用于多种目的,包括:
- 基于对象和基于Web的应用程序-可以在InterSystems IRIS对象和Web Server Page应用程序中使用SQL查询来执行强大的数据库操作,如查找和搜索。
- 在线事务处理-InterSystems SQL为INSERT和UPDATE操作以及事务处理应用程序中常见的查询类型提供了出色的性能。
- 商业智能和数据仓库-InterSystems IRIS多维数据库引擎和位图索引技术的结合使其成为数据仓库式应用程序的最佳选择。
- 即时查询和报告-可以使用InterSystems SQL附带的功能齐全的ODBC和JDBC驱动程序连接到流行的报告和查询工具。
- 企业应用程序集成-InterSystems SQL Gateway使能够无缝地通过SQL访问ODBC或JDBC兼容的外部关系数据库中存储的数据。这使得在InterSystems IRIS应用程序中集成来自各种来源的数据变得容易。
# 架构
InterSystems SQL的核心由以下组件组成:
- 统一数据字典-存储为一系列类定义的所有元信息的存储库。InterSystems IRIS自动为统一字典中存储的每个持久类创建关系访问(表)。
- SQL处理器和优化器-一组程序,用于解析和分析SQL查询,确定给定查询的最佳搜索策略(使用复杂的基于成本的优化器),并生成执行查询的代码。
- InterSystems SQL Server-一组InterSystems IRIS服务器进程,负责与InterSystems ODBC和JDBC驱动程序的所有通信。它还管理频繁使用的查询的高速缓存;当同一查询被多次执行时,可以从查询高速缓存中检索其执行计划,而不必由优化器再次处理。
## 特点
InterSystems SQL包括一整套标准的关系型功能。这些措施包括:
- 定义表和视图(DDL或数据定义语言)的能力。
- 对表和视图(DML或数据操作语言)执行查询的能力。
- 能够执行事务,包括插入、更新和删除操作。执行并发操作时,InterSystems SQL使用行级锁。
- 为更高效的查询定义和使用索引的能力。
- 能够使用各种数据类型,包括用户定义的类型。
- 定义用户和角色并为其分配权限的能力。
- 定义外键和其他完整性约束的能力。
- 定义INSERT、UPDATE和DELETE触发器的能力。
- 定义和执行存储过程的能力。
- 能够以不同的格式返回数据:用于客户端访问的ODBC模式;用于在基于服务器的应用程序中使用的显示模式。
## 符合SQL-92
SQL-92标准在算术运算符优先级方面是不精确的;关于这一问题的假设因SQL实现而异。InterSystems SQL支持将系统配置为以下任一系统范围的SQL算术运算符优先级替代方案:
- InterSystems SQL可以配置为严格按照从左到右的顺序解析算术表达式,没有运算符优先级。这与ObjectScript中使用的约定相同。因此,3+3*5=30。可以使用括号来强制执行所需的优先顺序。因此,3+(3*5)=18。
- InterSystems SQL可以配置为使用ANSI优先级分析算术表达式,这为乘法和除法运算符提供了比加法、减法和串联运算符更高的优先级。因此,3+3*5=18。如果需要,可以使用括号覆盖此优先级。因此,(3+3)*5=30。
SQL运算符优先级的默认值取决于InterSystems IRIS版本。
InterSystems SQL支持完整的入门级SQL-92标准,但有以下例外:
- 不支持向表定义添加附加的CHECK约束。
- 不支持SERIALIZABLE(序列化)隔离级别。
- 分隔标识符不区分大小写;标准规定它们应该区分大小写。
- 在HAVING子句中包含的子查询中,应该能够引用该HAVING子句中“可用”的聚合。这不受支持。
## 拓展
- InterSystems SQL支持许多有用的扩展。其中许多都与InterSystems IRIS提供对数据的同步对象和关系访问这一事实有关。
其中一些扩展包括:
- 支持用户可定义的数据类型和函数。
- 以下对象引用的特殊语法。
- 支持子类化和继承。
- 支持对存储在其他数据库中的外部表进行查询。
- 用于控制表的存储结构以实现最高性能的多种机制。
## 互操作性
- InterSystems SQL支持多种与其他应用程序和软件工具互操作的方法。
## JDBC
InterSystems IRIS包括一个符合标准的第4级JDBC客户机(全部是纯Java代码)。
InterSystems JDBC驱动程序提供以下特性:
- 高性能
- 纯JAVA代码实现
- UNICODE支持
- 线程安全
可以将InterSystems JDBC与任何支持JDBC的工具、应用程序或开发环境一起使用。
## ODBC
InterSystems SQL的c语言调用级接口是ODBC。与其他数据库产品不同,InterSystems ODBC驱动程序是一个本机驱动程序——它不是构建在任何其他专有接口之上的。
InterSystems ODBC驱动程序提供以下功能:
- 高性能
- 可移植性
- 原生Unicode支持
- 线程安全
可以将InterSystems ODBC与支持ODBC的任何工具,应用程序或开发环境一起使用。
## 嵌入式SQL
在ObjectScript中,InterSystems SQL支持嵌入式SQL: **将SQL语句放置在方法(或其他代码)主体中的能力。使用嵌入式SQL,可以查询单个记录,或定义一个游标,然后使用该游标查询多个记录。嵌入式SQL已编译。默认情况下,它是在第一次执行(运行时)时进行编译的,而不是在包含它的例程进行编译时进行的。因此,在运行时检查SQLCODE错误很重要。** 还可以与包含嵌入式SQL的ObjectScript例程同时编译嵌入式SQL。
与InterSystems IRIS的对象访问功能结合使用时,嵌入式SQL的功能非常强大。例如,以下方法查找具有给定Name值的记录的RowID:
```
/// w ##class(PHA.TEST.SQL).FindByName("姚鑫")
ClassMethod FindByName(fullname As %String)
{
&sql(SELECT %ID INTO :id FROM Sample.Person WHERE Name = :fullname)
IF SQLCODE < 0 {
SET baderr="SQLCODE ERROR:"_SQLCODE_" "_%msg
RETURN baderr
} ELSEIF SQLCODE = 100 {
SET nodata="Query returns no data"
RETURN nodata
}
RETURN "RowID="_id
}
```
```
DHC-APP>w ##class(PHA.TEST.SQL).FindByName("姚鑫")
RowID=6
```
注意: 如果 Name 查处多条的话 id为查询的第一条数据
指定倒序,为最后一条。
```
&sql(SELECT %ID INTO :id FROM Sample.Person WHERE Name = :fullname order by ID desc)
```
```
DHC-APP>w ##class(PHA.TEST.SQL).FindByName("姚鑫")
RowID=14
```

# 动态SQL
作为其标准库的一部分,InterSystems IRIS提供了一个%SQL.Statement类,可以使用它来执行动态(即在运行时定义的)SQL语句。可以在ObjectScript方法中使用动态SQL。例如,下面的方法查询指定数量的21世纪出生的人。该查询选择1999年12月31日之后出生的所有人,按出生日期对所选记录进行排序,然后选择前x条记录:
```
/// w ##class(PHA.TEST.SQL).Born21stC("姚鑫")
ClassMethod Born21stC(x)
{
/// w ##class(PHA.TEST.SQL).Born21stC("1")
ClassMethod Born21stC(x)
{
SET myquery=2
SET myquery(1) = "SELECT TOP ? Name,%EXTERNAL(DOB) FROM Sample.Person "
SET myquery(2) = "WHERE DOB > 58073 ORDER BY DOB"
SET tStatement = ##class(%SQL.Statement).%New()
SET qStatus = tStatement.%Prepare(.myquery)
IF qStatus'=1 {WRITE "%Prepare failed:" DO $System.Status.DisplayError(qStatus) QUIT}
SET rset = tStatement.%Execute(x)
DO rset.%Display()
WRITE !,"End of data"
q ""
}
```
```
DHC-APP>w ##class(PHA.TEST.SQL).Born21stC("2")
Name Expression_2
Ingrahm,Susan N. 02/10/2001
Goldman,Will H. 09/22/2002
2 Rows(s) Affected
End of data
```
准备查询时,该查询的优化版本将存储为缓存查询。该缓存查询被执行用于查询的后续调用,从而避免了每次执行查询时重新优化查询的开销。
## 限制
请注意InterSystems SQL的以下限制:
NLS可用于为单个全局变量以及当前运行的进程中的局部变量指定特定国家区域设置行为的$ORDER行为。InterSystems SQL可以在任何国家语言环境中使用和良好地工作。然而,InterSystems SQL当前的一个限制是,对于任何特定进程,它引用的所有相关全局变量都必须使用与当前进程区域设置相同的国家区域设置。 文章写得非常棒!学习! 学习到新知识sql动态查询,感谢!
文章
姚 鑫 · 三月 1, 2021
# 第二章 InterSystems SQL基础
本章概述了InterSystems SQL的特性,特别是那些SQL标准未涵盖的特性,或者与InterSystems IRIS®数据平台统一数据架构相关的特性。
本教程假定读者具备SQL知识,并不是为介绍SQL概念或语法而设计的。
本章讨论以下主题:
- 表
- 查询
- 权限
- 数据显示选项
- 数据排序类型
- 执行SQL
# 表
在InterSystems SQL中,数据显示在表中。每个表都包含许多列。一个表可以包含零个或多个数据值行。以下术语大体上等效:
数据术语 | 关系数据库术语| InterSystems IRIS术语
---|---|---
数据库 | 架构| 包
数据库 | 表 | persistent class(持久类)
字段 | 列 | 属性
记录 | 行 |
表有两种基本类型:基表(包含数据,通常简称为表)和视图(基于一个或多个表提供逻辑视图)。
## 模式与架构
SQL模式提供了一种将相关表,视图,存储过程和缓存查询的集合进行分组的方法。模式的使用有助于防止表级别的命名冲突,因为表,视图或存储过程的名称在其模式内必须唯一。应用程序可以在多个架构中指定表。
SQL模式与持久性类包相对应。通常,模式与其相应的程序包具有相同的名称,但是由于不同的模式命名约定或故意指定了不同的名称,因此这些名称可能有所不同。模式到程序包的映射在SQL到类名的转换中有进一步描述。
**模式是在特定的名称空间中定义的。模式名称在其名称空间内必须是唯一的。将第一个项目分配给它时,会自动创建一个模式(及其对应的程序包),从中删除最后一个项目时,会自动将其删除。**
可以指定一个限定或不限定的SQL名称,限定名称指定模式:schema.name。
非限定名不指定模式名。
如果不指定模式,InterSystems IRIS将提供如下模式:
- 对于DDL操作,InterSystems IRIS使用系统范围的默认架构名称。此默认值可配置。它适用于所有名称空间。
- 对于DML操作,InterSystems IRIS可以使用用户提供的模式搜索路径或系统范围内的默认模式名称。在动态SQL,嵌入式SQL和SQL Shell中,使用了不同的技术来提供模式搜索路径。
DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
要查看名称空间内的所有现有模式,请执行以下操作:
1. 在管理门户中,选择“系统资源管理器”,然后选择“ SQL”。使用页面顶部的Switch选项选择一个名称空间;这将显示可用名称空间的列表。选择一个名称空间。


2. 选择屏幕左侧的Schema下拉列表。这将显示当前名称空间中的架构列表。从该列表中选择一个模式;所选名称将出现在“模式”框中。

3. 如果有数据下拉列表允许选择表,视图,过程或缓存的查询,或所有属于模式的所有这些。设置此选项后,单击三角形以查看项目列表。如果没有项目,则单击三角形无效。

# 查询
在InterSystems SQL中,可以通过查询查看和修改表中的数据。粗略地说,查询有两种形式:查询数据(SELECT语句)和修改数据(INSERT,UPDATE和DELETE语句)。
可以通过多种方式使用SQL查询:
- 在ObjectScript中使用嵌入式SQL。
- 在ObjectScript中使用动态SQL。
- 调用使用CREATE PROCEDURE或CREATE QUERY创建的存储过程。
- 使用类查询。
- 使用来自各种其他环境的ODBC或JDBC接口。
# 权限
InterSystems SQL提供了一种通过权限来限制对表、视图等的访问的方法。
# 数据显示选项
InterSystems SQL使用SelectMode选项来指定如何显示或存储数据。
可用的选项有Logical、Display和ODBC。
数据在内部以逻辑模式存储,并且可以在这些模式中的任何一种中显示。
通过使用`LogicalToDisplay()`、`LogicalToODBC()`、`DisplayToLogical()`和`odbcological()`方法,每个数据类型类都可以在内部逻辑格式和显示格式或ODBC格式之间进行转换。
当显示SQL SelectMode时,将应用LogicalToDisplay转换,并对返回值进行格式化以便显示。
默认的SQL SelectMode是逻辑的;
因此,默认情况下返回值以存储格式显示。
SelectMode影响查询结果集数据显示的格式,SelectMode还影响应该提供数据值的格式,例如在WHERE子句中。
InterSystems IRIS根据存储模式和指定的SelectMode选择合适的转换方法。
所提供的数据值与SelectMode之间的不匹配可能导致错误或错误的结果。
例如,如果`DOB`是一个以`$HOROLOG`逻辑格式存储的日期,并且WHERE子句指定`DOB > 2000-01-01 `(ODBC格式),则SelectMode = ODBC返回预期的结果。
`SelectMode = Display`生成`SQLCODE -146`,无法将日期输入转换为有效的逻辑日期值。
`SelectMode =Logic`将 `2000-01-01`解析为逻辑日期值,并返回零行。
对于大多数数据类型,三种SelectMode模式返回相同的结果。
以下数据类型受SelectMode选项影响:
- 日期,时间和时间戳数据类型。 InterSystems SQL支持多种日期,时间和时间戳数据类型(`%Library.Date`,`%Library.Time`,`%Library.PosixTime`,`%Library.TimeStamp`和`%MV.Date`)。除`%Library.TimeStamp`外,这些数据类型对逻辑,显示和ODBC模式使用不同的表示形式。在其中的几种数据类型中,InterSystems IRIS以`$HOROLOG`格式存储日期。此逻辑模式内部表示包括从任意起始日期(1840年12月31日)起的天数的整数,逗号分隔符以及从当天午夜开始的秒数的整数。 InterSystems IRIS将`%PosixTime`时间戳存储为编码的64位带符号整数。在“显示”模式下,日期和时间通常以数据类型的FORMAT参数指定的格式显示,或者当前语言环境的日期和时间格式默认为`%SYS.NLS.Format`。美国语言环境的默认值为`DD / MM / YYYY hh:mm:ss`。在ODBC模式下,日期和时间始终表示为`YYYY-MM-DD hh:mm:ss.fff`。 `%Library.TimeStamp`数据类型还将这种ODBC格式用于逻辑和显示模式。
- `%LIST`数据类型。InterSystems IRIS逻辑模式使用两个非打印字符存储列表,这两个字符出现在列表中的第一个项目之前,并显示为列表项目之间的分隔符。在ODBC SelectMode中,列表项显示时列表项之间带有逗号分隔符。在Display SelectMode中,列表项显示时,列表项之间有空格分隔符。
- 指定`VALUELIST`和`DISPLAYLIST`的数据类型。如果处于显示模式,并且在字段具有`DISPLAYLIST`的表中插入一个值,则输入的显示值必须与`DISPLAYLIST`中的一项完全匹配。
- 空字符串和空BLOB(流字段)。在逻辑模式下,空字符串和BLOB由非显示字符`$CHAR(0)`表示。在显示模式下,它们由空字符串(“”)表示。
SQL SelectMode可以指定如下:
- 对于当前进程,请使用`$SYSTEM.SQL.SetSelectMode()`。
- 对于InterSystems SQL Shell会话,请使用SET SELECTMODE命令。
- 使用“显示模式”下拉列表,从管理门户“执行查询”用户界面(系统资源管理器,SQL)获得查询结果集。
- 对于动态SQL `%SQL.Statement`实例,请使用`%SelectMode`属性。
- 对于嵌入式SQL,请使用ObjectScript `#SQLCompile` Select预处理器指令设置。该伪指令允许使用第四个值Runtime,它将选择模式设置为RuntimeMode属性设置为:逻辑,显示或ODBC。 RuntimeMode的默认值为Logical。
- 对于使用SELECTMODE关键字的SQL命令CREATE QUERY,CREATE METHOD,CREATE PROCEDURE和CREATE FUNCTION。
- 通过使用`%EXTERNAL`,`%INTERNAL`和`%ODBCOUT`函数在SQL查询中的单个列。
# 数据排序
Collation种类决定了值的排序和比较方式,它是InterSystems SQL和InterSystems IRIS对象的一部分。
**可以指定排序规则类型作为字段/属性保护的一部分。除非另有说明,否则字符串字段/属性默认为命名空间默认排序规则。默认情况下,字符串的命名空间默认排序规则是SQLUPPER。
SQLUPPER排序规则将字符串转换为大写,以便排序和比较。因此,除非另有说明,字符串排序和比较不区分大小写。**
可以指定排序规则类型作为索引保护的一部分,或者使用索引字段的排序规则类型。
通过将排序函数应用于字段名,SQL查询可以覆盖未保护的字段/属性排序规则类型。ORDER BY子句指定查询的结果集序列;如果指定的字符串字段被保护为SQLUPPER,查询结果顺序不区分大小写。
# 执行SQL
InterSystems IRIS支持多种方法来编写和执行SQL代码。其中包括:
- 嵌入式SQL:嵌入在ObjectScript代码中的SQL代码。
- 动态SQL:使用`%SQL.Statement`类从ObjectScript中执行的SQL代码。
- `Execute()`方法:使用`%SYSTEM.SQL`类的`Execute()`方法执行SQL代码。
- 包含SQL代码的存储过程,使用CREATE PROCEDURE或CREATE Query创建。
- SQL Shell:从终端界面执行的SQL语句。
- 执行查询界面:从管理门户执行的SQL语句。
可以使用InterSystems IRIS对象(类和方法)执行以下操作:
- 持久性类(SQL表)。
- 定义索引。
- 定义并使用类查询。
关于动态SQL能再详细说说吗? 实用帖,非常好的学习知识,感谢!
问题
Liang Jianhui · 八月 24, 2022
InterSystems 有解析log文件的工具或者API吗? 您说的是哪个log呢? message Log ,alerts 还是event log? alerts.log
如果您是IRIS或者HC的2017.4版本以上的话,可以用REST API 接口 http://<IP>:<端口号>/api/monitor/alerts 我这边也找到了,非常感谢
文章
Weiwei Gu · 九月 14, 2023
InterSystems 还发布了容器化部署的IRIS。这篇文章旨在演示 InterSystems IRIS 和依赖 IRIS 后端的应用程序如何打包到镜像中并在容器中的其他计算机中运行,以及这样做有多么简单。
容器运行包含所有必需的可执行文件、二进制代码、库和配置文件的镜像。镜像可以从一台机器移动到另一台机器,像 Docker Hub 这样的镜像存储库可以简化这个过程。
我在本演示中使用了 Open Exchange 的应用程序。
演示视频: https://www.loom.com/share/93f9a760b5f54c0a8811b7a212387b9d
IRIS 数据平台社区版的镜像(image)可以在 InterSystems 容器注册表中找到:
https: //containers.intersystems.com/contents
为了在主机中使用 IRIS 的容器化实例,应在运行时拉取它。
为此,Dockerfile 需要具有以下命令,如下所示:
Dockerfile:
Dockerfile
ARG IMAGE=intersystemsdc/iris-community:preview
FROM $IMAGE
RUN iris start IRIS \
&& iris merge IRIS /tmp/merge.cpf \
&& iris stop IRIS quietly
这些是编写 Dockerfile 来构建镜像的基本命令,该镜像包含容器化 IRIS 的说明。
还可以添加用于安装与 IRIS 容器化实例一起运行的应用程序所需的其他依赖项的命令。
给出的 Docker 命令标记并推送带有 IRIS 实例的镜像到 Docker Hub,然后在另一台主机中拉取并运行该镜像。
命令 commands
docker build -t image_name filepath
docker tag image_name dockerhub_username/repository_name:tag_name
docker push dockerhub_username/repository_name:tag_name
命令 commands
docker pull dockerhub_username/repository_name:tag_name
docker run --name test -p host_8080:52773 padhikar/irisincontainer:main
演示中使用的应用程序: https://openexchange.intersystems.com/package/iris-geo-map
创建 InterSystems IRIS 镜像: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls ?KEY=ADOCK#ADOCK_iris_creating
问题
huang YG · 二月 27, 2024
02/21/24-18:32:48:515 (7568) 3 InterSystems IRIS Internal Failure
Access Violation (0xC0000005) occurred at 00007FFF3DE9C4E8
Process = 00001D90 Thread = 0000203C
Exception Count=1 b_msyslog=0 b_DumpVar=0 b_DumpVar2=0
b_GRelease=0 b_GRelease2=0 b_DeqRes=0 b_DeqRes2=0
Job Type = CSP server
ContextFlags = 0010005F Registers:
RAX=00007FFF3DE9C4E8 RBX=000000C2E5554800 RCX=000000C2E7AFFC00
RDX=000000C2E7B00000 RSI=00000000FFFFFFC0 RDI=00000000000003FF
RSP=000000C25CEBD2F8 RBP=0000000000000000 R8 =0000000000000001
R9 =00007FFF3DE60000 R10=000000C2E7AFFC00 R11=000000C2E7AFFC00
R12=0000000000005C9D R13=000000C2E46040E6 R14=00000000FFFFFFC0
R15=0000000000000000 RIP=00007FFF3DE9C4E8 EFL=10206
Stack: Base = 000000C25CEC0000, Limit = 000000C25CEA7000, Size = 00019000
00007FF74206EB9B 0000147B00000000 000000C2E55B7380 0000000000000000
00000000FFFFFFC0 0000000000000000 00000000000003FF 0000000000000000
00000000FFFFFFFE 000000C2E5554800 00007FF74206E727 00000000000015E6
000000C2E5554CC0 000000C2E5554800 000000C2E46017F0 000000C25CEBD380
000000C200000000 00007FF70000147B 000000C2E4600020 000000C2E4600020
00007FF741DFA094 0000000000007D00 0000000000200042 0000000000000000
00007FF7421FB1A0 000000C2E4600020 00000000FFFFFFC0 000000C2E5554800
00007FF742071703 000000C200000001 0000000000007D00 00007FF7421ECDC0
00007FF700000000 000000C200000001 00007FF700007D00 000000C200000000
00007FF741C38D9F 0000000000007D00 000000C2DAEFD7EE 00000000FFFFFFC0
0000000000000000 0000000000000000 00007FF741DC38E2 00007FF7421FB198
00007FF7421FB1A0 0000000000007D00 000000C2E5554800 FFFFFFFFFFFFFFFF
00007FF741DC7102 0000000000000000 0000000000007D00 00007FF7421FB1A0
00000000FFFFFFC0 0000000000007D00 00007FF7420490A7 00007FF7421FB198
00007FF7421ECDC0 000000C2E4600020 00007FF7421FB198 0000000000000001
00007FF741BFA0B0 00000000000002BB 000000C2E4600020 00007FF7421FB198
0000000000000175 0000000000000013 000000C2E4600068 000000C2E555BEC2
0000000000000000 0000000000000004 0000000000000000 000000C25CF3CC10
0000000000000100 0000000000000000 0000000000000000 0000000000000008
0000000000000001 0000000000000000 00007FF741F9D179 0000000000000000
000000C25CF30068 0000000000000004 0000000000000001 000000C25CEBF630
000000000000FFFF 0000000000000000 000000C2D3F5807F 000000C25CEBD59A
0000027F00001FA0 000000C25CEBD570 0000000000000000 000000C25CEBD570
000000C25CF3CC10 0000000000000001 0000000000000000 0000000000000100
0000000000000000 0000000000000000 0000000000000008 00007FF741F9D0B9
0000027F00001FA0 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 00007FF7421F185A 00007FF741E0E8E4 00007FF7421F185A
000000C25CF3CC10 0000000000000001 000000C25CF5E150 0074006100500053
Version = IRIS for Windows (x86-64) 2019.1 (Build 510_4U) Thu Jun 13 2019 15:29:51 EDT
Current Routine = zRead+13^%Stream.FileBinary.1, Principal Device = |TCP|51773|7568
Please contact InterSystems Technical Support with this information.
Tel: +1 (617) 621-0700 Fax: +1 (617) 494-1631 Email: support@intersystems.com
有人知道这是什么错误,怎么产生的,怎么处理 从截图来看估计要售后的团队来看,如果您是生产环境,请发给support@intersystems.com, 会有同事尽快处理
文章
Michael Lei · 一月 6
借助 InterSystems 行业标准认证考试,您和您的团队可以获得认证,以验证您的技能并证明您拥有 InterSystems 技术方面的专业知识。 查找适合您的角色的考试!
开发者:InterSystems IRIS 核心解决方案开发专家和 InterSystems IRIS SQL 专家
系统管理员:InterSystems IRIS 系统管理专家
系统集成商:InterSystems HL7 接口专家
CCR 技术实施人员:InterSystems CCR 技术实施专家
Unified Care Record 实施人员:HealthShare Unified Care Record 技术专家
Patient Index 实施人员:HealthShare Patient Index 技术专家
您知道吗?如果公司中有四或五名员工获得认证,该公司可以获得组织认证!
请发送电子邮件至 certification@intersystems.com 或访问 InterSystems 认证网站获取更多信息。
公告
Michael Lei · 十一月 3, 2024
各位社区成员,大家好!
我们很高兴推出一种全新的方式让您展示创造力和技能! 这次,我们邀请您参加我们首次发起的视频挑战:
📹 InterSystems 技术视频挑战 📹
请在 2024 年 10 月 21 日到 11 月 10 日提交与 InterSystems IRIS 产品或服务相关的任何主题的视频。
🎁 人人有礼 + 主要奖品!
🔍 挑战内容制作一段短视频(最长 15 分钟),演示 InterSystems 技术的独特运用。无论是创新解决方案、创意项目,还是酷炫的使用案例,都可以参加本次挑战!
📢 参赛方式:要参加挑战,您需要填写表单,并按照表单要求上传您的视频。 将您的视频上传到开发者社区 YouTube 后,我们将在这篇帖子的评论中发布链接,您可以在任何位置使用此链接。
参与资格:除 InterSystems 员工以外的任何开发者社区成员(欢迎承包商参加挑战。)创建帐户!
一般要求:
视频侧重点必须是 InterSystems 产品或服务,并且必须介绍技术性内容。
所有内容必须采用英语(包括代码、屏幕截图等)。
视频必须完全原创,不得翻译之前在任何社区中提交的比赛视频。
呈现的所有信息都必须准确可靠。
视频时长应在 15 分钟以内。
不同的作者可以就同一主题提交视频,但要使用不同的示例。
注意: 我们的专家小组将根据质量和相关性等标准对视频是否符合参赛资格做出最终决定。 他们的决定是最终决定,不得申诉。
比赛时间线
📝 10 月 21 日 - 11 月 10 日:在此期间制作视频并填写表单。开发者社区成员可为参加社区奖项评选的已发布视频投“赞”票。
📝 11 月 11 日 - 17 日:专家投票时间
📝 11 月 18 日:宣布优胜者
奖品
1. 每位参赛者都是获胜者!所有参与者都将获得我们特别准备的礼品:
🎁 耐克高尔夫 Dri-FIT Swoosh 穿孔帽
2. 专家奖项 – 视频将由 InterSystems 专家进行评审:
🥇 第 1 名:10.9 英寸 iPad,Wi‑Fi 版,64GB / 索尼 WH-1000XM5 无线耳机
🥈 第 2 名:Moleskine 15" 立式设备包 //乐高 NASA Artemis 太空发射系统
🥉 第 3 名:具有主动降噪功能的 AirPods 4 / 乐高霍格沃茨™城堡:大厅
作为替代方案,任何优胜者均可从低于自己奖品级别的奖品中选择一个奖品。
3. 开发者社区奖项 – 获得赞数最多的视频。优胜者将可以选择下列奖品之一:
🎁 具有主动降噪功能的 AirPods 4 / 乐高霍格沃兹™城堡:大厅
注意:作者在比赛的每个类别中只能获奖一次(最多可获得两个奖品:一个专家奖,一个社区奖)。 如果出现票数相同的情况,则以专家票数作为决胜标准。
🎯 额外奖励
下面列出了可以帮助您赢得奖品的额外奖励! 请欢迎:
奖励
提名人数
详细信息
主题奖励
3
从下方的建议主题列表中选择一个主题即可获得此奖励。
文章奖励
3
撰写一篇全新的说明性文章为您的视频提供支持,并在其中使用标签 #Video。
应用程序奖励
5
将您视频中的应用程序上传到 Open Exchange。
翻译奖励
2
将您的视频翻译为我们地区社区所使用的语言之一(西班牙语、葡萄牙语、日语、中文、法语),并使用相同格式上传视频;在描述中提及此视频为翻译版,并提供原始视频的 YouTube 链接。
YouTube Shorts 奖励
2
为您的视频制作 YouTube 短视频(纵向视频,最长 60 秒)。
LinkedIn 奖励
1
在您的 LinkedIn 上分享视频,提及您正在参加 InterSystems 技术视频挑战,并添加开发者社区 LinkedIn 页面标签。
建议的主题
下面列出了将为您的文章提供额外奖励的建议主题:
✔️ 使用 AI / GenAI / RAG✔️ 在实现互操作性时使用嵌入式 Python✔️ 使用外部语言(C#、Java、Python)✔️ 使用数据架构 / 数据湖 / 数据仓库 / 数据网格✔️ 使用 FHIR✔️ 使用 REST✔️ IKO 通用部署
---
准备闪耀光芒,并使用您的技术技能激励他人! 我们迫不及待欣赏您的作品。✨
备注 1:参加比赛,即表示您同意将您的视频上传到开发者社区 YouTube。
备注 2:奖品的送达因国家/地区而异,某些国家/地区可能无法送达。 要索取有限制的国家/地区列表,请联系 @Liubka Zelenskaia
公告
Claire Zheng · 十月 13, 2024
开发者社区的成员,大家好!
我们都喜欢编码,但我们应该时不时地放下代码去锻炼身体! InterSystems 步行挑战将帮助您恢复精力、增强体质。 历史悠久的 Salt Road 在几个世纪以前连接起欧洲,沿着这条传奇的贸易路线,踏上从吕贝克到吕讷堡的虚拟赛道。
赢取跑步机、智能手表和奖牌等精美礼品。
👟🚶🧑🦼系紧鞋带,放下工作,更好地编码! 🔋💻💪
📅日期:9 月 23 日 - 10 月 20 日(可能有变动)
想加入吗? 详细信息如下。
运作方式
下载应用或使用 Web 版本,输入任务代码 SupplyChain,便可按照您自己的节奏在任何地点免费开启您的赛程。 您可以作为步行者、跑者或轮椅使用者参赛。 只需在应用中选择参赛身份。如果您参加的有些晚,您可以上传您设备中的历史数据。在我们的排行榜上保持活跃状态,分享您的步数变动,让每位参赛者都受到鼓舞并进入挑战模式!
奖励和奖品
完成比赛的过程就是对自我的奖励,但我们还为参赛者准备了一些特殊奖品。 每位完成 Salt Road 的参赛者都会获得一枚奖牌。
此外,您还将参加竞赛。 排行榜的目标是以最快的速度通过步行、跑步或乘坐轮椅的方式走完 Salt Road。 我们将统计每个人的个人用时并进行奖励。
成绩位列前十名的参赛者可以赢得更多奖品:
第 1 名:APPLE Watch Series 10 智能手表(GPS + 蜂窝网络,46 毫米铝金属表壳,氟橡胶表带)
第 2 名 - 第 10 名:二合一 Sportstech Laufband sWalk Plus
第 11 名 - 第 30 名:精美水壶
我们欢迎 InterSystems 员工和承包商参加活动,但此类参赛者没有资格赢得主要奖品。
说明
要加入我们的挑战,只需在使用 Web 版本时点击“加入”按钮。 要使用应用,请在 Apple App Store 或 Google Play 商店中下载 My Virtual Mission 应用。 填写详细信息进行注册后,再次点击加入链接即可获取我们的任务。
为了将每一步都计入成绩,您需要将 My Virtual Mission 与您的健康相关应用同步。 您能够关联多种第三方健身跟踪器,包括 Apple Health、Google Fit、Under Armour、Garmin、FitBit、Strava 和 Adidas Running。 您可以通过 My Virtual Mission 应用管理您的关联:
打开 My Virtual Mission 应用
在主屏幕中,点击屏幕右下角的菜单
点击关联
选择所需的健身跟踪器。 关联健身跟踪器后,选择查看任务进入您的任务页面。 从右侧的下拉菜单中选择设置。 随后,您将能够更新对步行任务的发布偏好设置。
您也可以手动发布您走过的距离:点击任务页面左下角的“+”图标。 点击手动发布距离,并输入所有信息和照片作为证据(例如跑步机距离)。 不过,如果使用此方法,您的成绩需要一段时间才会出现在排行榜中。
保持健康,祝您好运!