清除过滤器
文章
姚 鑫 · 一月 19, 2023
# 第五十章 使用 ^SystemPerformance 监视性能 - Microsoft Windows 平台的 InterSystems IRIS 性能数据报告
#### Microsoft Windows 平台的 IRIS 性能数据报告
- `%SS` - 使用 `ALL^%SS` 命令在运行过程中采集了四个样本。
- `Configuration *` - 来自服务器的 `IRIS` 实例名称和主机名、完整的 `IRIS` 版本字符串、许可客户名称和许可订单号。
- `cpf file *` - 当前活动配置文件的副本。
- `irisstat -c` - 使用命令 `.\bin\irisstat -s -p-1 -c-1 -e1 -m8 -n2 -N127` 在运行过程中以均匀间隔采集四个样本。以下是对每个参数的简要说明:
- `-p-1`: 对进程表进行采样以包括进程和全局状态信息。
- `-c-1`: 对共享内存的计数器部分进行采样以显示日志、锁、磁盘和资源使用统计信息。
- `-e1`: `SYSLOG` 错误表。
- `-m8`: 文件表,其中包括所有 `IRIS.DAT` 文件及其属性。
- `-n2`: 网络结构表,包括本地到远程数据库的映射。
- `-N127`: 客户端和服务器连接的 `ECP` 统计信息。
- `irisstat -D` - 使用命令 `irisstat cache --f1 -D10,100` 在运行过程中以均匀的间隔采集八个样本。以下是对每个参数的简要说明:
- `-fl`: 基本标志。
- `-D10,100`: 在 `10` 秒的总采样周期内,每 `100` 毫秒对块碰撞进行采样。
- `license *` - 使用 `Decode^%LICENSE` 和 `counts^%LICENSE` 的 `IRIS` 许可使用信息。
- `mgstat` - 使用 `^mgstat` 实用程序在运行过程中获取 `IRIS` 特定数据。
- `perfmon` - `Microsoft Windows perfmon` 实用程序的输出。 `Microsoft Windows perfmon` 数据的默认呈现方式是原始格式。可以将格式切换为已处理,这会删除重复的服务器名称并将日期时间列拆分为单独的列,以提高可读性。以下函数允许查询和更新确定 `perfmon` 数据是否被操作的标志:`set rc=$$setperfmonpostproc^SystemPerformance(`) 其中 `onoroff` 可以是 `1`(开)或 `0`(关),或者不区分大小写的单词`“on”`或`“off”`。返回码 `1` 表示标志更新成功,`0` 表示更新失败,`-1` 表示非 `Windows` 平台。要确定当前格式(原始格式或已处理格式):`set status=$$getperfmonpostproc^SystemPerformance()` 返回代码 `1` 表示已处理格式,`0` 表示原始格式。此外,在 `^SystemPerformance` 的交互式运行中,在配置文件菜单显示之前报告标志的当前状态。默认情况下,`perfmon` 监视默认 `pbctrs.txt` 文件中指定的计数器定义。要监视先前定义的性能计数器,请使用以下命令将定义导入 `^SystemPerformance`:写入 `$$importctrs^SystemPerformance(WindowsCtrName [,SystemPerformanceCtrName [,SystemPerformanceFileName]])` 返回代码 `0` 表示成功,负数后跟原因字符串表示失败.不允许重复的 `SystemPerformance` 计数器名称。如有必要,`^SystemPerformance` 会生成内部计数器名称和文件名。要将默认的 `SystemPerformance` 计数器定义更改为现有定义,请使用:`write $$setctrddefault(SystemPerformanceCtrName)` 返回代码 `1` 表示成功,后跟原因字符串的 `0` 表示失败。如果指定了无效计数器,则会设置内置默认值。要重置默认的 `SystemPerformance` 计数器定义,请使用:`do clrctrdefault^SystemPerformance()` 要将特定的 `SystemPerformance` 计数器定义与现有配置文件相关联,请使用:`write $$addctrtoprofile(ProfileName,SystemPerformanceCtrName)` 返回码 `1` 表示成功,`0` 后跟一个原因字符串表示失败。如果配置文件或计数器定义不存在,则不会运行该命令。
- `Profile *` - 有关创建此日志的 `^SystemPerformance` 配置文件的信息。
- `tasklist` - `tasklist -V` 命令的四个输出,在运行过程中以均匀的间隔获取。 `tasklist -V` 命令提供系统上运行的所有进程的列表。
- `Windows info *` - `systeminfo` 命令的输出,包括 `Windows` 版本(不包括修补程序信息)和硬件信息;例如,处理器数量、安装的内存和使用的内存。
公告
Claire Zheng · 十一月 18, 2021
亲爱的社区开发者们,大家好!
我们欢迎您来参加 2021年欧洲医疗编程马拉松 ,这一赛事时间为2021年11月19日-21日,免费参赛,线上赛道(On-line Track)的申请截止日期延长至11月15日。
我们将有一个InterSystems的挑战:“用FHIR创新”。InterSystems赛道的奖金设置如下:
🥇第一名: 1500 EUR🥈第二名: 1000 EUR🥉第三名: 500 EUR我们为所有参加InterSystems挑战的人准备了奖品!参考下图,了解我们的挑战细节:)你愿意参加吗?请在下面的投票中告诉我们!
InterSystems挑战赛: 用FHIR创新
无论是IoMT的实现、更容易的患者参与,还是用于分析解决方案的临床数据的可用性,FHIR(医疗数据交换的标准)都可以推动创新。利用FHIR提供的合成数据来改善对患者及其治疗的了解,或者仅仅是在FHIR服务的帮助下,使您的解决方案在实践中立即可用,以收集和提供数据。
为您的解决方案使用一个或多个InterSystems FHIR服务,例如云中的FHIR存储库或HealthShare消息转换服务,并有资格获得InterSystems奖。InterSystems将为参与者提供免费访问服务以及在线和现场技术援助和指导。
在这次编程马拉松中,每个团队将由3位成员组成。如果你没有队伍,组织者会在比赛前安排好队伍。在这里上了解更多关于编程马拉松的信息。
期待与您相聚!如果你计划参加,请在下面告诉我们!
文章
姚 鑫 · 四月 2, 2022
# 第100章 SQL函数 NULLIF
如果两个表达式具有相同的值,则返回 `NULL` 的函数。
# 大纲
```java
NULLIF(expression1,expression2)
```
# 参数
- `expression1` - 表达式,可以是列名、数字或字符串文字、主变量或另一个标量函数的结果。
- `expression2` - 表达式,可以是列名、数字或字符串文字、主变量或另一个标量函数的结果。
`NULLIF` 返回与 `expression1` 相同的数据类型。
# 描述
如果 `expression1` 的值等于 `expression2` 的值,则 `NULLIF` 函数返回 `NULL`。否则,它返回 `expression1` 值。
`NULLIF` 等价于:
```sql
SELECT CASE
WHEN value1 = value2 THEN NULL
ELSE value1
END
FROM MyTable
```
# NULL 处理函数比较
下表显示了各种 `SQL` 比较函数。如果逻辑比较测试为 `True`(`A` 与 `B` 相同),则每个函数返回一个值,如果逻辑比较测试为 `False`(`A` 与 `B` 不同),则返回另一个值。这些函数允许执行 `NULL` 逻辑比较。不能在实际相等(或不相等)条件比较中指定 `NULL`。
`SQL Function`| `Comparison`| `Test Return Value`
---|---|---
IFNULL(ex1,ex2) [two-argument form]| ex1 = NULL |True returns ex2 False returns NULL
IFNULL(ex1,ex2,ex3) [three-argument form]| ex1 = NULL | True returns ex2 False returns ex3
{fn IFNULL(ex1,ex2)}| ex1 = NULL | True returns ex2 False returns ex1
ISNULL(ex1,ex2)| ex1 = NULL | True returns ex2 False returns ex1
NVL(ex1,ex2)| ex1 = NULL | True returns ex2 False returns ex1
NULLIF(ex1,ex2)| ex1 = ex2 | True returns NULL False returns ex1
COALESCE(ex1,ex2,...)| ex = NULL for each argument | True tests next ex argument. If all ex arguments are True (NULL), returns NULL. False returns ex
# 示例
以下示例使用 `NULLIF` 函数将 `Age=20` 的所有记录的显示字段设置为空:
```sql
SELECT Name,Age,NULLIF(Age,20) AS Nulled20
FROM Sample.Person
```
公告
Claire Zheng · 七月 30, 2021
亲爱的社区开发者们,大家好!
我们真诚邀请您参加 Online Meetup:InterSystems 开发者竞赛(人工智能与机器学习)!
时间: 2021年7月30日(周五) 11:00 AM (美东时间)23:00 (北京时间)
在这场在线Meetup,您将了解到:
此次优胜者的个人履历;
获奖Application的简短Demo;
有关应用技术的开放探讨、问答,以及下次竞赛的一些计划。
我们的发言人名单:
@José.Pereira, BI开发者,Shift Consultoria e Sistemas Ltda
@Henrique.GonçalvesDias, 系统管理专员/数据库管理员, Sao Paulo Federal Court
@Oleh.Dontsov, 全栈开发工程,Tax Sketches SRO
@Aleksandr.Kalinin6636, 工程师, LLC "Escape"
@Renato.Banzai, 机器学习工程师,Itaú Unibanco
@Evgeny.Shvarov, InterSystems 开发者生态经理(Developer Ecosystem Manager)
@Thomas.Dyar, InterSystems 产品专家(机器学习)
@Raj.Singh5479, InterSystems 产品经理( 开发者体验)
@Robert.Kuszewski, InterSystems 产品经理( 开发者体验)
欢迎您在这个特别的会议上与我们的开发人员沟通、交流!
➡️ 注册参会!
文章
Claire Zheng · 二月 13, 2023
InterSystems IRIS数据平台深度支持Python,令您随心所愿!
文章
Nicky Zhu · 十月 18, 2021
目录
技术概要: 基于角色的访问控制 1
基于角色的访问控制:为什么它很重要? 1
基于角色的访问控制:如何在 InterSystems IRIS 中工作 1
简要概念概述 1
示例用例 2
基于角色的访问控制:探索它 3
用前须知 3
发现管理门户(Management Portal)页面访问所需的资源 3
创建和分配您自己的管理者角色 4
创建用户并分配新角色 5
尝试管理门户(Management Portal)中的角色 6
了解有关基于角色的访问控制的更多信息 7
技术概要:基于角色的访问控制
本文档向您介绍基于角色的访问控制,解释它在 InterSystems IRIS®数据平台中的工作原理,并帮助您亲自探索。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。
基于角色的访问控制:为什么它很重要?
当您首次开始使用一个新的数据库平台时,有件事情可能很快就会变得清晰起来:您可能不希望企业中的所有用户都查看和更改系统上的所有内容。
InterSystems IRIS 和所有的数据库平台一样,允许您精细指定 InterSystems IRIS 的每个用户可以执行的操作。我们用来控制用户授权(authorization)执行操作的机制被称为基于角色的访问控制(role-based access control)。
如果您已经熟悉了基于角色的访问控制,InterSystems IRIS 方案很可能与您以前使用过的一些方案相似。您会在下一节找到有关我们如何处理它的更多细节。
如果您是基于角色的访问控制的新手,这意味着比旧的访问控制方法节省时间,因为旧的访问控制方法没有提供执行系统操作的权限分组。
如果没有基于角色的访问控制,为每个用户逐个分配使用 InterSystems IRIS 的各个方面的权限可能需要数小时甚至数天。然后,如果有新员工需要访问,您将不得不重复这个过程。
基于角色的访问控制允许您在初始配置 InterSystems IRIS 时将权限分组到角色中。然后,您可以为每个系统用户分配一个或多个现成的角色。您还可以使用或修改一组预定义的角色<span id="2_Role-Based_Access_Control:_How_It_Work" class="anchor"></span>。
此外,通过基于角色的访问控制,如果用户需要使用一组新的权限,则可以将该组权限分组为一个角色,并将该角色分配给用户。而且您可以随时改变角色内的权限列表。
基于角色的访问控制: 如何在 InterSystems IRIS 中工作
InterSystems IRIS 为基于角色的访问控制提供了一个完整的解决方案,我们将在本节中对此进行描述。InterSystems IRIS 支持的每一种认证机制,包括 LDAP、Kerberos 和 OS-based,都可以使用本地 InterSystems 基于角色的访问控制。如果您愿意,您可以使用 LDAP 而不是 InterSystems IRIS 进行角色分配。
简要概念概述
把 InterSystems IRIS 中的信息和功能视为您要保护的资产 ,就像您为属于您的资产投保一样。
基于角色的访问控制:如何在 InterSystems IRIS 内部工作
在 InterSystems IRIS 中被视为资产的项目包括:
数据库,将数据和代码作为对象存储。
服务,控制用户连接到 InterSystems IRIS 的能力。
某些管理权限。
InterSystems IRIS 应用程序,包括管理门户(Management Portal)中的各个页面,它是 InterSystems IRIS 的系统管理用户界面。
在 InterSystems IRIS 中,每项资产(asset)都由一个资源**(resource)来表示,一个资源(resource)可以表示多个资产(asset)。
资源(resource)充当它所代表的资产(asset)的看门人:根据资源类型,它与 "读取"、"写入"(包括读取),和在某些情况下的 "使用"(执行)权限(permission) 配对。例如,数据库只存在两种类型的权限:读取,允许查看数据和执行例程;写入,允许修改数据。
资源与权限的配对被称为权限(privilege),权限按角色(role)分组。
最后,角色(role)被分配给 InterSystems IRIS 中的用户(user) 。每个用户(user)在首次使用 InterSystems IRIS 进行认证时,都会有一个或多个角色(role)分配给他们。可以在会话期间向用户添加或删除角色(role)。
基于角色(role)的访问控制的具体授权方式取决于您所选择的认证机制。在线文档中完全涵盖了授权的这方面内容。
提示:对于内部测试和暂存系统,您可能不希望设置基于密码的认证或基于角色(role)的不同级别的访问控制。如果您使用 "最低(minimal)" 安全性来安装您的实例,这个选项是可用的,默认情况下,它给拥有实例的管理门户(Management Portal) URL 的任何人提供完全管理权限。
示例用例
如上所述,管理门户(Management Portal)中的各个页面是 InterSystems IRIS 中您可以保护的资产(asset)。管理门户( Management Portal)允许用户(user)查看和执行 InterSystems IRIS 基本方面的操作,如 globals、命名空间,甚至资源(resource)和角色(role)本身。
下面的屏幕截图显示了当实例的管理员使用安装时创建的 _SYSTEM 帐户登录时,管理门户(Management Portal)的外观和行为。 _SYSTEM 用户可以访问 System Administration(系统管理) > Security(安全)> Users(用户) ,让他们可以查看和修改任何用户(user)及其角色(role)。
您可能想限制某些管理门户(Management Portal)用户的角色(role)分配,使他们不能查看或修改用户(user)帐户或任何其他对安全至关重要的信息。在下一节,我们将告诉您如何做到这一点。
基于角色的访问控制: 探索它
下面的示例向您展示了如何设置两种类型的"管理者"角色,以便在管理门户(Management Portal)中使用。第一个角色将能够访问允许修改用户和角色定义等安全相关项的页面。第二个角色将没有这个访问权限。
然后您会看到拥有这些角色的用户如何与管理门户(Management Portal)交互。
重要提示: 为了让您体验 InterSystems IRIS,而又不陷入细节的困境,我们保持了简单的探索。例如,我们让您尽可能多地使用默认设置。
但是,当您把 InterSystems IRIS 引入您的生产系统时,您需要做很多不同的事情,特别是(但不限于)安全方面。
所以请确保不要把这种对 InterSystems IRIS 的探索与真实的情况相混淆!本文档末尾提供的参考资料将使您对在生产中使用 InterSystems IRIS 的情况有一个很好的了解。
用前须知
要使用该程序,您需要一个正在运行的 InterSystems IRIS 实例。您的选择包括多种类型的已授权的和免费的评估实例;该实例不需要由您正在工作的系统托管(尽管它们必须相互具有网络访问权限)。关于如何部署每种类型的实例的信息(如果您还没有可使用的实例),请参见 InterSystems IRIS Basics: Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 Deploying InterSystems IRIS(部署 InterSystems IRIS)。使用同一文档中的 InterSystems IRIS Connection Information(InterSystems IRIS 连接信息)和 .Net IDE 中的信息将 Visual Studio 连接到您的 InterSystems IRIS 实例。
发现管理门户(Management Portal)页面访问所需的资源
对管理门户(Management Portal)中的每个页面的访问都受到至少一种资源的保护。您可以通过以下方式发现所需的资源:
使用 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中URL described for your instance(为您的实例描述的 URL),在浏览器中打开您的实例的管理门户(Management Portal)。
通过点击相应菜单项中的每一个单词,导航至 System Administration(系统管理) > Security(安全)。
基于角色的访问控制:探索它
提示: 在管理门户(Management Portal)中,带有子页面的菜单项在其名称旁边包含 >>。页面没有这样的标记。
在 Users(用户) 菜单项中,点击"用户(Users)"一词右侧的任何位置。这个操作显示查看 Users(用户)页面所需的资源,即 %Admin_Secure。(Security(安全) 和 Encryption(加密) 子菜单中的所有页面都需要 %Admin_Secure 资源上的使用权限("U")。)
导航至 System Administration(系统管理) > Configuration(配置) > System Configuration(系统配置)。
点击"内存和启动(Memory and Startup)"右侧的任何位置。您会看到,查看该页面所需的资源是 %Admin_Manage。
创建和分配您自己的管理者角色
对于管理门户(Management Portal)的 System Administration(系统管理)菜单内的页面,您需要具有
%Admin_Secure 和 %Admin_Manage 资源权限的角色。
鉴于这种结构,您可能希望创建两个反映管理级别的角色,一个是可以访问除安全相关页面以外的所有页面,另一个是可以执行所有操作,包括安全相关的操作。您可以使用预定义的 %Managerrole 作为模板。
使用 _SYSTEM 帐户登录管理门户(Management Portal)。
导航至 System Administration(系统管理) > Security(安全) > Roles(角色) ,并点击 Go。您将看到安装了 InterSystems IRIS 的角色列表,包括 %Manager 角色。
点击 %Manager 链接。 General(常规) 标签显示具有此角色的用户可用的权限(与权限配对的资源)。
在权限中,您会看到 %Admin_Secure 和 %Admin_Manage 上的使用权限。
您也会看到许多其他的权限。这是因为您需要访问许多不同的资源,才能够查看和修改 InterSystems IRIS 设置。既然我们知道只有一种关键资源 %Admin_Secure,在 System Administration(系统管理)的安全相关页面的访问方面,对该资源的访问将是我们两个自定义角色之间的唯一区别。
点击 Cancel(取消) (在 Edit %Manager 下面),返回到主 Roles(角色)页面。
创建 "标准管理者"角色
在 Roles(角色)页面上,点击 Create New Role(创建新角色)。将出现一个角色定义页面。
基于角色的访问控制:探索它
在 Name(名称) 字段中,输入"Standard_Mgr"。
在 Copy from(复制自) 下拉菜单中,选择 %Manager。这将复制所有信息,包括权限,从预定义 %Manager 角色到新角色。
将描述更改为您所选择的描述,例如:"Role for System Administration without security access(不具有安全访问权限的系统管理角色)"。
点击 Save(保存)。将出现一条 Role saved(保存角色) 信息,您将在 General(常规)标签中看到新角色的权限列表。
在 %Admin_Secure 行中,点击 Delete(删除)。这就从角色中删除了权限。
再次点击 Save(保存) 来保存更改。
创建"安全管理员"角色
在 Roles(角色)页面上,点击 Create New Role(创建新角色)。将出现一个角色定义页面。
在 Name(名称) 字段中,输入"Security_Mgr"。
在 Copy from(复制自)下拉菜单中,选择 %Manager。这将复制所有信息,包括权限,从预定义 %Manager 角色到新角色。
将描述更改为您所选择的描述,例如:"Role for System Administration with securityaccess(具有安全访问权限的系统管理角色)"
点击 Save(保存)。将出现一条 Role saved 信息,您将在 General(常规)标签中看到新角色的权限列表。
创建用户并分配新角色
要查看角色的运行情况,需要创建两个用户,每个用户对应一个新角色。
使用 _SYSTEM 帐户登录管理门户(Management Portal)。
导航至 System Administration(系统管理) > Security(安全) > Users(用户),并点击 Go。您将看到安装了 InterSystems IRIS 的用户定义列表。
创建"标准管理员"用户
在主 Users(用户) 页面上,点击 Create New User(创建新用户)。将出现一个用户定义页面。
在 Name(名称) 字段中,输入"Std_Mgr"。(用户的名称不能与角色的名称一致)。
在 Password(密码) 和 Password (confirm)(确认密码) 字段中,输入您选择的密码。
点击 Save(保存)。将出现一条 User saved 信息。
点击 Roles(角色)标签。滚动左侧的 Available 列表,并高亮显示 Standard_Mgr(标准管理员)。
点击右箭头 ,将该角色添加到 Selected(已选)列表中。然后点击"Assign(分配)"。
7. 点击 Cancel(取消) 以返回到主 Users(用户)页面。
创建"安全管理员"用户
在主 Users(用户) 页面上,点击 Create New User(创建新用户)。将出现一个用户定义页面。
在 Name(名称) 字段中,输入"Sec_Mgr"。
在 Password(密码) 和 Password (confirm)(确认密码) 字段中,输入您选择的密码。
基于角色的访问控制:探索它
点击 Save(保存)。将出现一条 User saved 信息。
点击 Roles(角色)标签。滚动左侧的 Available 列表,并高亮显示 Security_Mgr(安全管理员)。
点击右箭头,将该角色添加到 Selected(已选)列表中。然后点击 Assign(分配)。
点击 Cancel(取消) 以返回到主 Users(用户)页面。
尝试管理门户(Management Portal)中的角色
以 Std_Mgr 用户(标准管理员用户)登录管理门户(Management Portal)。您将看到,与安全有关的菜单选项是灰色的,正如预期的那样。Interoperability(互操作性)菜单选项也是灰色的,因为从其中复制两个自定义角色的预定义 %Manager 没有访问这些页面所需的权限。
退出,然后以 Sec_Mgr 用户(安全管理员用户)重新登录。 正如您所看到的,这个用户具有对 System Administration(系统管理) > Security(安全)和 System Administration(系统管理) > Encryption(加密) 子菜单中的页面的完全访问权限。
了解有关基于角色的访问控制的更多信息
要了解有关基于角色的访问控制和 InterSystems IRIS 安全模型的更多信息,请参见:
About InterSystems Security(《有关 InterSystems 安全》)中的 "Authorization:Controlling User Access(授权:控制用户访问)"一节
InterSystems IRIS Programming Orientation Guide(《InterSystems IRIS 编程指南》)中的 "InterSystems IRIS Security(InterSystems IRIS 安全)"和 "Namespaces and Databases(命名空间和数据库)"部分 --- 为应用程序开发人员提供有关基于角色的访问控制的信息。
Security Tutorial(《安全教程 》)中的 "Authorization(授权)"部分 --- 创建用户、角色和权限的逐步说明。
文章
Claire Zheng · 二月 28, 2023
这是InterSystems 2022年全球峰会上来自客户 Cognetivity Neuroscience 的分享。InterSystems IRIS 数据平台助力 Cognetivity Neurosciences 打造脑健康管理评估工具CognlCA。CognlCA 能够在正确的时间将数据提供给正确的人,推动脑健康评估、筛查和管理的节点前置,从而促进脑健康管理的普惠化。
问题
秀政 王 · 七月 2, 2021
错误详情
ERROR #5023: Remote Gateway Error: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/MethodInterceptor at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.intersys.gateway.JavaGateway.loadClass(JavaGateway.java:1375) at com.intersys.gateway.Generator.generate(Generator.java:168) at com.intersys.gateway.JavaGateway.generateClasses(JavaGateway.java:794) at com.intersys.gateway.JavaGateway.processMessage(JavaGateway.java:565) at com.intersys.gateway.JavaGateway.run(JavaGateway.java:548) at com.intersys.gateway.JavaGateway.run(JavaGateway.java:519) Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.MethodInterceptor at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 20 more 1
您好!该问题请提交WRC服务. 您可以登录网址:https://wrc.intersystems.com提交 是不是缺了一个类:You're missing a JAR with net.sf.cglib.proxy.MethodInterceptor class. 是否未导入引用的jar包导致无法成功引用,可以在java网关向导中导入jar时,同时将依赖的jar进行导入
文章
姚 鑫 · 九月 25, 2022
# 第四十三章 使用多个 IRIS 实例(三)
# `Windows` 上的 `iris` 命令
在 `Windows` 上,必须从 `install-dir\bin` 目录运行 `iris` 命令(或在命令中包含完整路径)。
- `iris all` 列出所有已安装实例的摘要信息,每行一个实例,如下所述。
注意:如果需要完整的信息,例如用于解析或报告目的,请使用 `iris list`。
```java
C:\InterSystems\IRISHealth\bin>iris all
Instance Version ID Port Directory
------------- ---------- ---- ---------
up irishealth 2022.1.0.114.0 51773 c:\intersystems\irishealth
```
- `iris allw` 为每个实例列出与 `iris all` 相同的信息,而不包含长字段值。可能会产生超过 `80` 个字符的行。
```java
C:\InterSystems\IRISHealth\bin>iris allw
Instance Name Version ID Port Directory
------------------------------- ---------------------------- ----- --------------------------------
up irishealth 2022.1.0.114.0 51773 c:\intersystems\irishealth
```
- `iris console instname [arguments]` 在操作系统命令窗口而不是终端窗口中打开 `Terminal` 。

- `iris force instname` 强制关闭实例。
- `iris help` 显示有关 `iris` 命令的最新信息。
```java
C:\InterSystems\IRISHealth\bin>iris help
usage:
iris start []
to start instance , optionally using the specified .cpf file.
An optional /EmergencyId=Username,Password can be used to start
InterSystems IRIS in emergency mode. When the EmergencyId argument
is supplied, the system starts up in emergency mode in which only the
baseline databases are mounted and access to InterSystems IRIS is
governed by InterSystems IRIS login using that username and password.
Emergency mode is supplied to give access in the event that privileged
users are not available or their password is forgotten. Emergency
startup is only available from an administrator account.
When InterSystems IRIS is started in emergency mode, the IRIS control
service is not used. This means that if you log out of Windows, all
the InterSystems IRIS processes will immediately exit.
or: iris startnostu
to start instance without running ^STU.
or: iris stop
to shut down instance .
or: iris stopnoshut
to shut down instance without running user shutdown routines.
or: iris stopstart
to shut down and restart instance .
Note: An optional /nofailover argument can be specified for stop,
stopnoshut, or stopstart to not trigger a mirror failover.
or: iris force
to force down instance .
or: iris [ run OR console OR terminal ]
to run InterSystems IRIS in programmer mode with
[ no-device OR console OR terminal ] for $Principal.
or: iris [ run OR console OR terminal ]
to run InterSystems IRIS routine in application mode with
[ no-device OR console OR terminal ] for $Principal.
or: iris [ run OR console OR terminal ]
to run InterSystems IRIS routine in in application
mode with [ no-device OR console OR terminal ] for $Principal.
or: iris runw []
to run InterSystems IRIS routine in application mode with
no input/output device for $Principal using the optional namespace.
When run from a batch script, iris will wait for the InterSystems IRIS
process to terminate before returning. The exit code from the InterSystems
IRIS process will be returned by iris.
Note: An optional /Title="Title string" can specify the console
or terminal title bar text.
or: iris iristraystart
to start IRISTray for instance .
or: iris iristraystop
to stop IRISTray for instance .
or: iris licmanagerstop
to stop licmanager running in instance .
or: iris all [> outputfile]
to list all installed instances.
or: iris allw [> outputfile]
to list (wide format) all installed instances.
or: iris list [] [> outputfile]
to list information about all installed instances or the
specified instance.
or: iris qlist [] [> outputfile]
to display a quick list of information about all installed
instances or the specified instance, in a format suitable
for parsing in command scripts.
The record for an instance contains fields separated by "^" (carats):
Field 1: instance name
Field 2: instance directory
Field 3: version identifier
Field 4: current status for the instance
Field 5: configuration file name last used
Field 6: SuperServer port number
Field 7: WebServer port number
Field 8: JDBC Gateway port number
Field 9: Instance status (e.g., ok, warn, alert)
Field 10: Product name of the instance
Field 11: Mirror Member Type (e.g., Failover, Disaster Recovery)
Field 12: Mirror Status (e.g., Primary, Backup, Connected)
or: iris serverlist [> outputfile]
to list information about all defined servers.
Note: When [> outputfile] is present, output is redirected
to the file instead of being displayed on the terminal.
or: iris telnetstop
to stop the InterSystems IRIS TELNET daemon.
or: iris telnettrace
to toggle the TELNET trace state.
or: iris iristrmdstop
to stop the InterSystems IRIS terminal daemon.
Note: iris often displays error information in a message box.
You can suppress the message box containing error information
by adding "quietly" (without the quotation marks) as the
final argument to the iris command.
or: iris help [display]
to show this help. If display is specified the help
is displayed in a browser window.
```
- `iris list [arguments]` 显示有关已安装 `IRIS` 实例的信息,如下所述。
```java
C:\InterSystems\IRISHealth\bin>iris list irishealth
Instance 'irishealth' (Custom installation)
directory: 'C:\InterSystems\IRISHealth'
versionid: '2022.1.0.114.0'
conf file: 'c:\intersystems\irishealth\iris.cpf' (SuperServer port = 51773, WebServer port = 52773)
status : 'running, since Mon Sep 12 08:08:58 2022'
Product : InterSystems IRISHealth
```
`instname` — 可以选择指定 `IRIS` 实例名称以仅显示有关该实例的信息。例如,`iris list MyIRIS` 仅显示有关 `MyIRIS` 实例的信息。
- `iris qlist [参数]` 与 `iris list` 类似,但有附加信息。每个实例的输出(如下所述)在一行中给出,字段由插入符号 (`^`) 分隔。
`instname` — 可以选择指定 `IRIS` 实例名称以仅显示有关该实例的信息。例如,`iris qlist MyIRIS` 仅显示有关 `MyIRIS` 实例的信息。
```java
C:\InterSystems\IRISHealth\bin>iris qlist irishealth
irishealth^C:\InterSystems\IRISHealth^2022.1.0.114.0^running, since Mon Sep 12 08:08:58 2022^c:\intersystems\irishealth\iris.cpf^51773^52773^^^IRISHealth^^
```
- `iris run instname [arguments]` 在没有 `$Principal` 的输入/输出设备的程序员模式下运行 IRIS。
- `iris runw instname 例程 [参数]` 在应用程序模式下运行命名的 `IRIS` 例程,没有 `$Principal` 的输入/输出设备。从批处理脚本运行时,该命令会等待 `IRIS` 进程终止,然后再从进程返回退出代码。
`namespace` — 在指定的命名空间中运行例程。
注意:如果使用指定了启动命名空间的用户帐户启动 `IRIS`,则命名空间参数无效(请参阅用户帐户属性)。
- `iris start instname [参数]` 启动实例。
注意:系统可能会提示以“紧急模式”启动。
完整的 `CPF` 路径 — 默认情况下, `IRIS` 从位于 `<install-dir>/mgr` 目录中的 `iris.cpf` 文件中读取某些设置。可以提供另一个 `.cpf` 文件的完整路径以供使用。
- `iris startnostu instname` 启动指定的实例而不运行`^STU`。
- `iris stop instname [参数]` 关闭实例。
`/nofailover` — 指定此可选参数以防止触发镜像故障转移。
- `iris stopnoshut instname [参数]` 使用 `INTNOSHUT^SHUTDOWN` 关闭命名实例。
**注意:只有实例所有者和 `irisusr` 可以在不登录终端的情况下运行 `INTNOSHUT^SHUTDOWN`。**
`/nofailover` — 指定此可选参数以防止触发镜像故障转移。
- `iris stopstart instname [参数]` 关闭实例后启动它。
`/nofailover` — 指定此可选参数以防止触发镜像故障转移。
- `iris terminal instname [参数]` 打开实例的 `Terminal` 。
`routine` — 在终端中以应用程序模式为 `$Principal` 运行命名的 `IRIS` 例程。 `"[label[+offset]]^routine"` — 指定要在用户模式下运行的 `ObjectScript` 程序的名称。除了指定的格式之外,还可以传递由字符串和`/`或数字文字组成的参数列表,以及省略的 (`void`) 参数,如下所示:
- `"routine[([parameter-list])]"`
- `"[label]^routine[([parameter-list])]"`
- `"##CLASS(package.class).method[([parameter-list])]"`
其中,例如,参数列表以“`string literal`”的形式指定,`-+-000123.45600E+07`,省略的参数作为 `$Data(parameter)=0` 传递给目标。
注意:空格和 `shell` 元字符必须以依赖于操作系统的形式引用。
命名空间 — 与例程一起使用,在指定的命名空间中运行例程。
注意:如果您用指定了启动命名空间的用户帐户启动 `IRIS`,则命名空间无效(请参阅用户帐户属性)。
## iris list, qlist, and all
#### `iris all`
列出有关一个或多个 `IRIS` 实例的以下信息:
- 实例状态,如下
- ``(状态不可用,登录已禁用)
- `dn`(关闭或已崩溃)
- `up` (running)
- `st` (starting or stopping)
- 实例名称
- `IRIS` 版本
- 超级服务器端口号
- 安装目录
#### `iris list`
列出有关一个或多个 `IRIS` 实例的以下信息:
- 实例名称(和安装类型)
- 安装目录
- `IRIS` 版本
- `IRIS` 参数 (`.cpf`) 文件的路径名
- 超级服务器和网络服务器端口号
- 实例状态,如下
- `running`
- `down`
- `starting or stopping`
- 不完整的启动或停止,登录被禁用
- 实例的系统健康状态,如果正在运行(不包括在 `Windows` 中)
- 镜像成员类型和状态(如果是镜像成员)
#### iris qlist
为一个或多个 `IRIS` 实例在单行上输出以下信息,以插入符号 (`^`) 分隔:
1. 实例名称(和安装类型)
2. 安装目录
3. `IRIS`版本
4. 实例状态
5. 当前配置参数文件的路径名,相对于安装目录。 `Windows` 系统改为显示完整路径。
6. 超级服务器端口号
7. 网络服务器端口号
8. `JDBC` 网关端口号
9. 实例的系统健康状态,如果正在运行(在 `Windows` 上总是空白)
10. 产品名称
11. 镜像成员类型(如果是镜像成员)
12. 镜像状态(如果是镜像成员)
13. 数据目录(如果适用)
公告
Claire Zheng · 四月 27, 2023
InterSystems 已修复了一个缺陷,该缺陷可能会导致使用 IBM POWER8 或更高版本的 POWER 处理器的 AIX 系统上的数据库和Journal日志文件损坏。只有在使用数据库或Journal日志加密时才会触发此缺陷。
当满足以下条件时,会触发此缺陷:
该环境使用数据库或Journal日志加密
该环境还使用数据元素加密
用于数据元素加密的加密密钥已停用
如果环境满足所有这些条件,则用于数据库或Journal日志加密的密钥计划可能会被损坏。
该缺陷存在于以下产品和基于这些产品的任何 InterSystems 产品中:
InterSystems IRIS ® –除 2022.1.3 和 2023.1 之外的所有版本
InterSystems IRIS for Health ™ ——除 2022.1.3 和 2023.1 之外的所有版本
HealthShare ® Health Connect –除 2022.1.3 和 2023.1 之外的所有版本
HealthShare ®解决方案——所有版本
请注意,此缺陷不会直接影响 HealthShare 解决方案,因为它们不使用数据元素加密功能。但是,如果 HealthShare 环境有一个使用上述数据元素加密功能的客户化定制,则它们必须遵循此警报中提供的补救措施。
InterSystems Caché® 和 InterSystems Ensemble® –从 2015.1 开始的所有版本
此缺陷的修复被标识为 RJF540,并将包含在所有未来版本中。
该修复也可以通过补丁Ad hoc 分发获得。
如果您对此警报有任何疑问,请联系全球响应中心。
公告
Claire Zheng · 四月 7, 2022
4月12日,新一期“极客俱乐部”在线分享即将推出,InterSystems中国技术总监乔鹏将分享“InterSystems数据平台与三级等保”这一主题,聊聊数据平台如何保护信息安全,以及如何配置、管理数据平台,以满足三级等保要求。点击链接报名参会,或扫描下方二维码参会。
文章
Claire Zheng · 十一月 1, 2022
医院管理者、信息中心、业务骨干,每个角色都有独特的业务诉求,InterSystems IRIS医疗版互联互通套件专为国内用户设计,截至2021年,InterSystems技术已助力一百余家医院通过四级及以上医院信息互联互通标准化成熟度评级,其中,五乙用户占全国30%以上。
公告
Claire Zheng · 十月 23, 2022
各位开发者社区的同学们,大家好!
经过一个多月的赛期,我们举办的🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)即将步入尾声!
InterSystems开发者社区(中文版)首届技术征文大赛的“征文&投票”环节将于12小时后结束(截至10月23日24:00)!抓住最后的时间为你喜欢的作品投票吧!
10月24日19:30开始,我们将通过“InterSystems首届技术征文大赛线上分享会”发布获奖名单、进行征文作品分享&点评、探讨热门话题,同期还将举办多轮抽奖!
欢迎参会,锁定#腾讯会议
会议主题:InterSystems首届技术征文大赛线上分享会会议时间:2022/10/24 19:30-21:00 (GMT+08:00) 中国标准时间 - 北京
点击链接入会,或添加至会议列表:https://meeting.tencent.com/dm/nVHWgZcY5NfZ
#腾讯会议:372-615-324
公告
jieliang liu · 一月 17, 2022
Hi 开发者们,
New video is already on InterSystems Developers YouTube:
⏯ Embedded Python for ObjectScript Developers: Working with Python and ObjectScript Side-By-Side
深入指导如何将Python与ObjectScript并排使用,包括:
在ObjectScript中使用Python库
将参数传入 Python
在 ObjectScript 和 Python 之间转换类型
从Python中使用ObjectScript类
🗣 主讲人: @Robert.Kuszewski Product Manаger, Developer Experience, InterSystems
祝您观看愉快,并请继续关注 可以把Youtube 链接换成B站链接?谢谢
文章
Michael Lei · 九月 13, 2022
医疗科技市场正处于强劲的演变之中。Gartner的医疗科技的波浪图展示了这些技术是什么,非常好地反映了医疗行业的数字化趋势。
其中很多技术都可以使用InterSystems的技术(ISC Health Tech)来实现:
知情同意管理使用InterSystems Healthshare Stack来做患者主索引和知情同意管理。