文章
· 九月 25, 2022 阅读大约需 8 分钟
第四十三章 使用多个 IRIS 实例(三)

第四十三章 使用多个 IRIS 实例(三)

Windows 上的 iris 命令

Windows 上,必须从 install-dir\bin 目录运行 iris 命令(或在命令中包含完整路径)。

  • iris all 列出所有已安装实例的摘要信息,每行一个实例,如下所述。

注意:如果需要完整的信息,例如用于解析或报告目的,请使用 iris list

1 0
0 51
文章
· 九月 25, 2022 阅读大约需 78 分钟
IRIS与Caché的23种设计模式

IRIS的23种设计模式

第一章 Caché 设计模式 简单工厂模式

定义

  • 简单工厂模式属于创建型模式,又可称为静态工厂模式,这是由一个工厂对象决定创建出哪一种产品类的实例

使用场景

  • 工厂类负责创建的对象比较少
  • 客户只需知道传入工厂类的参数,而无须关心创建对象的逻辑

优点

  • 使用户根据参数获得对一个的类实例,避免了直接实例化类型,降低了耦合性
  • 能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类:客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,所有的客户类都要进行修改

缺点

  • 可实例化的类型在编译期间已经被确定。
  • 如果增加新类型,则需要修改工厂,这违背了开放封闭原则
  • 子类多过不适合使用

示例

  • 用Caché 实现一个计算器控制台程序,要求输入两个数和运算符号。
17 2
1 257
文章
· 九月 25, 2022 阅读大约需 25 分钟
Ens.Util.JSON类的启发

日常工作中,JSON使用越来越多,很多其他的语言里面有成熟的JSON API,但cache 我一直没找到。而同事们使用的基本都是自己写的一些JSON工具。这些小工具,多多少少有些局限。使用ensemble2016后,发现了 Ens.Util.JSON类,他可以处理JSON。翻阅代码后,实际上主要API是 %ZEN.Auxiliary.abstractController。在使用中,我们遇到一个问题,那就是有些JSON的节点名是带有下划线的,这个不太好处理。一般来说,我们把对象转为xml的时候,对象的属性我们是去掉下划线的,带下划线的名字是用 XMLNAME来设置的,于是考虑JSON里面也使用它(如果配置了)作为对象转JSON的时候,JSON的名字。

12 4
0 164
文章
· 九月 24, 2022 阅读大约需 14 分钟
第四十二章 使用多个 IRIS 实例(二)

第四十二章 使用多个 IRIS 实例(二)

控制 IRIS 实例

iris 命令支持终端以外的许多功能,并以 iris function instname arguments 格式调用,其中 instname 是在安装期间选择的实例名称,参数取决于函数。

重要提示: iris help 命令显示所有命令函数和参数; IRISHelp.html 文件位于 install-dir\Help 目录中。 iris 命令的某些功能在本文档中没有列出,但在帮助显示中显示。

1 0
0 71

Journaling is NOT on. Updates will NOT be journaled
*** Missing previous 1 files that may contain TSTARTs

ERROR: <ZFILE>ScanForOpenTrans+42^JRNRESTB

There is a problem with searching for open transactions in older files.
If you decide to continue, transactions started in files earlier than
the first one to be restored might remain open after the restore.

Do you want to abort? Yes => No

请问什么情况下会触发出现Do you want to abort?

在门户网站查看数据库Global Journal也是勾选上的.

0 2
0 122
文章
· 九月 23, 2022 阅读大约需 2 分钟
第四十一章 使用多个 IRIS 实例(一)

第四十一章 使用多个 IRIS 实例(一)

可以在单个主机系统上安装和运行多个 IRIS® 数据平台实例。每个实例都是一个独特的、独立的 IRIS 环境。

管理 IRIS 实例

有许多方法可以连接和管理 IRIS 实例,它可能是安装在给定系统上的几种方法之一。两种最常用的方法如下:

  • 安装在 Windows 系统上的每个 IRIS 实例在系统托盘中都有自己的启动器,除其他选项外,还可以:

    • 通过打开管理门户、 TerminalStudio 开发者客户端连接到实例。
    • 启动、停止和重新启动实例。
    • 打开用户和开发人员文档。

    从启动器中,还可以管理多个远程 IRIS 实例,包括但不限于运行远程备份、编辑配置设置以及创建和编译远程对象和例程。

2 0
0 84
文章
· 九月 23, 2022 阅读大约需 1 分钟
HTTPS 客户端

1、使用HTTPS前,需要在系统 > 安全管理 > SSL/TLS 配置 添加客户端的凭据

2、代码

1 0
0 109
文章
· 九月 22, 2022 阅读大约需 2 分钟
第四十章 连接到远程服务器(二)

第四十章 连接到远程服务器(二)

使用可选的服务器字段

网络服务器 IP 地址 Web Server IP Address

如果计划使用与正在管理的 IRIS 实例不同的机器上存在的 Web 服务器,请在此字段中输入 Web 服务器机器的 IP 地址。如果未指定,则默认为 IP 地址。

CSP Server Instance

如果正在配置一个 Web 服务器以连接到多个 IRIS 实例,请在 CSP 服务器实例字段中输入要连接的 IRIS 实例名称。

1 0
0 50
文章
· 九月 21, 2022 阅读大约需 3 分钟
第三十九章 连接到远程服务器(一)

第三十九章 连接到远程服务器(一)

可以从 Telnet 会话、WindowsIRIS® 启动器上的远程系统访问子菜单或从 Web 服务器和实例信息生成的 URI 控制远程实例。

要为远程实例使用远程系统访问子菜单上的实用程序:
1. 定义远程服务器连接以将服务器添加到首选服务器列表。
2. 单击 IRIS 启动器并指向远程系统访问。
3. 指向启动器实用程序,然后单击服务器名称。

还可以从 Telnet 会话连接到 IRIS 的远程实例:

  1. 单击 IRIS 启动器并指向远程系统访问。

  2. 单击 IRIS Telnet,连接到远程服务器,并使用用户名和密码登录 IRIS 系统。或者,如果服务器在首选服务器列表中,请指向终端,然后单击服务器名称。

1 0
0 81
文章
· 九月 21, 2022 阅读大约需 4 分钟
对 %XML.PropertyParameters类的探索

日常工作中,我们使用xml 应该是比较多的,早期的ensemble或者cache,对JSON的支持不是很好,但是对xml支持比较好。因此早期的接口方式中,webservice+xml的方式很常用。而对象导出为xml最简单的方式就是类继承 %XML.Adaptor。继承该类后,就可以使用很多xml的特性,以满足各种需求。虽然看不到对象转为xml的具体实现,但是配置了参数,就可以实现更多的效果。那么想自定义一些参数呢?如果有人打开过它的定义,可以看到类上面有个 PropertyClass = %XML.PropertyParameters”,那么我们其实在需要xml参数的同时,又要自定义参数,就可以自己写个属性类,继承于%XML.PropertyParameters。

15 4
0 148
文章
· 九月 20, 2022 阅读大约需 2 分钟
第三十八章 在 UNIX®、Linux 和 macOS 上使用 IRIS(三)

第三十八章 在 UNIX®、Linux 和 macOS 上使用 IRIS(三)

管理 IRIS

shell 中,具有 sysmgr 组中任何用户 ID 的用户都可以运行 iris,它调用 install-dir/bin 目录中的 IRIS 可执行文件和脚本.以下部分描述了如何在 IRIS 实例上执行这些管理任务:

重要提示:安装的所有者拥有启动和停止实例、执行系统管理以及为该实例运行诊断程序的完全权限。

2 0
0 50
文章
· 九月 20, 2022 阅读大约需 2 分钟
FAQ常见问题系列 -- HA篇 虚拟化环境上的镜像问题

1. VMWare快照引起的网络中断导致非计划内主备机切换问题

1.1 问题描述

在创建虚拟机快照时,虚拟机需要短时间的冻结,这个短时间冻结通常指虚拟机静默,在静默过程中网络连接处于中断状态。由于数据库的不断增长,使用VMWare快照的方式对虚拟机进行备份的时长也会不断增加,当对虚拟机进行快照的时长长于InterSystems镜像服务质量 (QoS) 超时时间,即当主机网络中断超过QoS超时时间,仲裁机与备机观察并相互确认与主机的连接丢失后,将发起切换过程,使原备机成为主机并将虚拟IP从主机MAC地址解绑后重绑定到备机的MAC地址上。特别需要注意的是,在这种由于网络中断引起的切换中,仲裁与备机都无法得知主机的实际工作状态。因此,在主机网络连接恢复后,为了为了避免因切换期间主机还在处理数据导致主备机间数据不一致,备机主动发起请求让主机下线,关闭主机,此时主机状态显示为关闭(Down)。

1 0
0 55
文章
· 九月 19, 2022 阅读大约需 3 分钟
第三十七章 在 UNIX®、Linux 和 macOS 上使用 IRIS(二)

第三十七章 在 UNIX®、Linux 和 macOS 上使用 IRIS(二)

在 UNIX® 上启动

IRIS 实例使用以下资源来控制启动、停止和创建新进程:

  • install-dir\mgr 目录中的 iris.ids 文件。
  • 共享内存。

守护进程资源锁

IRIS 使用建议文件锁定来防止同一实例在不同机器上的多次启动。使用咨询文件锁定,单个锁定文件(在本例中为 install-dir/mgr 目录中的文件 ilock)可用于独占锁定多个资源。控制进程、写入守护进程和日志守护进程分别锁定锁定文件的一个单独部分。如果 ilock 文件的这一部分已被锁定,则启动将终止。不同守护进程持有的锁称为守护进程资源锁。

文件锁由进程持有,直到进程终止。因此,如果持有任何锁,则表明某个节点上的某个守护进程正在运行。但是,它并不表示实例是否健康并正常运行。

2 0
0 70
文章
· 九月 17, 2022 阅读大约需 7 分钟
第三十五章 在 Windows 上使用 IRIS(二)

第三十五章 在 Windows 上使用 IRIS(二)

IRIS 启动器

Microsoft Windows 平台上的主要IRIS 界面是 IRIS 启动器。从 IRIS 启动器,可以启动所有 IRIS 配置和管理工具。还可以从快捷方式或命令行调用每个启动器命令。

相应地,可以从 Windows 程序菜单中启动许多 IRIS 工具,方法是指向 IRIS 文件夹,然后指向启动 IRIS 以获得适当的 IRIS 实例名称。

当在基于 Windows 的系统上启动 IRIS 时, IRIS 启动器图标会出现在任务栏的系统托盘中。

当单击 IRIS 启动器时,会出现一个菜单,其中包含使用 ObjectScript 实用程序和编程环境的命令。

下表描述了 IRIS 启动器菜单中可用的命令。

1 0
0 95
文章
· 九月 16, 2022 阅读大约需 3 分钟
第三十四章 在 Windows 上使用 IRIS(一)

第三十四章 在 Windows 上使用 IRIS(一)

Microsoft Windows 平台上管理 IRIS 数据平台实例非常简单。可以使用管理门户和 IRIS 启动器执行大多数任务。还可以从命令提示符控制 IRIS 实例。

本主题使用 install-dir 来指代 IRIS 安装目录——可以在安装指南的默认安装目录部分找到默认目录。

注意:不要对 IRIS IRIS.DAT 数据库文件使用 Windows 文件压缩。 (通过右键单击 Windows 资源管理器中的文件或文件夹并选择属性,然后选择高级,然后压缩内容以节省磁盘空间来压缩文件;压缩后,文件夹名称或文件名在 Windows 资源管理器中呈现为蓝色。)如果压缩一个IRIS.DAT 文件,它所属的实例将无法启动,并出现误导性错误。

1 0
0 53
文章
· 九月 15, 2022 阅读大约需 3 分钟
第三十三章 管理许可(六)

第三十三章 管理许可(六)

应用许可

应用程序许可使应用程序合作伙伴能够利用 的许可功能来实现自己的许可目的。 IRIS 像管理自己的应用程序许可证一样管理客户应用程序许可证,维护使用计数并根据需要获取和返回用户许可证。当进程退出、停止或从进程表中删除时,或者当 Web 会话超时或被删除时,进程或 Web 会话使用的应用程序许可证与进程或会话使用的 IRIS 许可证一起自动释放。

应用程序许可证只是标准 .ini 格式的文件或此类文件的一部分,包含标识应用程序的部分标题和一些keyword=value对,在许可证中是唯一的,代表许可的功能。任何格式正确的应用程序许可证都可以在运行时由应用程序加载到 IRIS

应用程序许可 API 包括使应用程序能够代表用户使用和返回许可证的方法和查询,以及使程序能够获取有关应用程序和功能许可的信息,包括正在使用和仍然可用的许可证数量。

1 0
0 34
文章
· 九月 15, 2022 阅读大约需 6 分钟
创建 QEWD 微服务

如果你读了我之前介绍QEWD微服务的文章,希望你会渴望了解如何使用它们。 所以在这篇文章中,我将解释你需要知道的东西,以便开始使用。

如果你在QEWD资源库中,你会发现目录:

https://github.com/robtweed/qewd/blob/master/example/jwt

在我之前关于JSON网络令牌(JWTs)和QEWD的文章中,我用这个示例应用程序来解释如何使用JWTs。 这个示例应用程序还演示了如何设置一个简单的微服务,在这种情况下是一个处理用户认证的服务。 所以,现在让我深入了解一下这个例子应用程序的这方面内容。

如果你想使用QEWD微服务,你也必须使用JWTs--它们提供了一种方法,用户的认证和会话可以被多个独立的QEWD服务器交叉通信和处理。 因此,请看一下启动文件:

0 0
0 84
文章
· 九月 14, 2022 阅读大约需 6 分钟
第三十二章 管理许可(五)

第三十二章 管理许可(五)

Identifying Users

IRIS 许可系统识别不同的用户并为每个用户分配一个许可单元。用户由许可证用户 ID 标识,该 ID 可以是 IP 地址、用户名、Web 会话 ID 或其他标识符,具体取决于用户的连接方式。

由单个用户启动或为单个用户启动的多个进程共享一个许可证单元,最多可达每个用户的最大进程数。如果进程数超过此最大值,则会发生转换 IRIS 开始为该用户 ID 的每个进程分配一个许可单元。系统假设如果与用户 ID 关联的进程数超过最大值,则多个用户正在通过中介(例如防火墙系统)访问 IRIS,因此需要额外的许可证单元。 (由 Job 命令启动的进程计入调用该命令的用户 ID 下。)

2 0
0 50
文章
· 九月 13, 2022 阅读大约需 4 分钟
第三十一章 管理许可(四)

[toc]

第三十一章 管理许可(四)

显示本地许可证信息的方法

下面列出的子例程转储实例共享内存中本地包含的许可证表的内容。一般来说,他们识别客户:

$System.License.DumpLocalAll 将所有本地许可证表条目转储到当前目录中的 all.dmp 文件中:

USER> Do $System.License.DumpLocalAll()

25 条目转储到 c:\intersystems\irishealth\mgr\user\all.dmp

all.dmp 文件的内容示例:

image

$System.License.DumpLocalInUse 将所有正在使用的本地许可证表条目转储到当前目录中的 inuse.dmp 文件:

1 0
0 51
文章
· 九月 12, 2022 阅读大约需 3 分钟
第三十章 管理许可(三)

第三十章 管理许可(三)

确定许可证容量和使用情况

如何知道已使用了多少许可证以及由谁使用?类中的 %SYSTEM.License 提供了到 IRIS 许可证应用程序编程接口 (API) 的接口,并提供了许多方法和相关查询,可以使用这些方法和相关查询来查询许可证容量和当前使用情况。

可以使用 %Library.%ResultSet 类的 RunQuery 方法运行多个许可查询。例如:

USER>do ##class(%ResultSet).RunQuery("%SYSTEM.License","Summary")

LicenseUnitUse:Local:Distributed:
当前使用的软件许可单元 :2:2:
使用的最大软件许可单元数 :3:2:
授权的软件许可单元 :25:25:
当前连接 :2:2:
最大连接数 :6:6:

可以从管理门户的许可证使用页面(系统操作 > 许可证使用)查看这些查询的输出,详细信息如下表所示:

1 1
0 112
文章
· 九月 11, 2022 阅读大约需 5 分钟
第二十九章 管理许可(二)

第二十九章 管理许可(二)

激活许可证密钥

IRIS 使用许可证密钥来确保其注册站点的正常运行、定义可用容量并控制对 IRIS 功能的访问。 许可证密钥以许可证密钥文件的形式提供,通常命名为 iris.key

安装 IRIS 后,使用以下程序激活许可证密钥。始终可以使用相同的过程为任何已安装的实例激活新的许可证密钥(即升级密钥)。可以激活放置在管理门户可访问的任何位置的许可证密钥;作为激活的一部分,许可证密钥将作为 iris.key 复制到实例的 install-dir/mgr 目录(如果尚未命名)。

注意:也可以在 Windows 安装期间选择许可证密钥。执行此操作时,许可证会自动激活,并且许可证密钥会作为 iris.key 复制到实例的 install-dir/mgr 目录中;不需要此处描述的激活过程。

本节还讨论了许可证故障排除和在所有许可证单元都在使用时从操作系统命令行升级许可证。

要激活许可证密钥,请使用以下过程:

1 0
0 83
文章
· 九月 10, 2022 阅读大约需 4 分钟
第二十八章 管理许可(一)

[toc]

第二十八章 管理许可(一)

配置许可

每个 IRIS 实例维护其许可证容量和当前使用的独立本地视图,并且每个实例都需要访问许可证密钥。可以在每个实例上安装和激活本地许可证密钥文件。或者,如果要管理多个实例,可以配置许可证服务器来管理存储在中央位置的密钥文件,然后它可以将其分发到其他实例。在这种情况下,必须为每个实例配置密钥文件的 LicenseID,以便它可以在启动时检索密钥的副本。

多服务器许可证可以在同一台机器或不同机器上的协作实例之间共享。仅允许使用多服务器密钥进行共享。要使用多服务器许可,必须配置一个或多个 IRIS 许可服务器来分配密钥授权的 IRIS 许可单元。共享密钥的所有实例都必须配置为使用相同的许可证服务器或一组许可证服务器。许可服务器可以在运行 IRIS 实例的任何计算机上运行。监控进程向许可服务器发送更新消息,当多个实例共享一个许可时,许可服务器协调许可分配。

1 0
0 53
文章
· 九月 8, 2022 阅读大约需 2 分钟
第二十六章 使用任务管理器(四)

第二十六章 使用任务管理器(四)

导入任务

导入任务页面(系统操作 > 任务管理器 > 导入任务)允许通过浏览到先前导出的任务文件,然后单击立即执行操作来导入和运行任务。

注意:任务只能从运行相同版本的 IRIS 的实例导入或导出。

使用 ^TASKMGR

^TASKMGR 例程允许使用终端配置任务管理器。除非另有说明,^TASKMGR 和管理门户包含用于配置任务的相同选。

  1. 打开终端。
  2. 输入 set $namespace = "%SYS" 以更改为 %SYS 命名空间。
  3. 输入do ^TASKMGR

具体类 %SYS.Task

image

1 0
0 43
文章
· 九月 7, 2022 阅读大约需 2 分钟
第二十五章 使用任务管理器(三)

第二十五章 使用任务管理器(三)

任务计划

任务计划页面(系统操作 > 任务管理器 > 任务计划)列出了所有计划任务。可以通过单击任何列标题对表中的信息进行排序。可以通过单击适当的选项查看详细信息或历史记录以及运行计划任务:

  • 任务名称 — 让查看有关任务的详细信息并对其执行操作。
  • 历史 — 显示任务的历史。
  • 运行 — 让运行任务。运行任务向导显示任务名称和 ID,以及任务运行的日期和时间;单击立即执行操作以确认信息并安排任务。

任务详情

要显示有关计划任务的详细信息并对其执行多项操作之一,请单击任务名称列中的任务名称。任务详细信息页面显示有关所选任务的信息和执行详细信息。可以通过单击相应的按钮对任务执行以下操作之一:

1 0
0 50
文章
· 九月 6, 2022 阅读大约需 4 分钟
第二十四章 使用任务管理器(二)

# 第二十四章 使用任务管理器(二)

本节介绍在创建或编辑任务时可以选择的预定义任务类型。某些任务只能从某些命名空间获得。

IRIS 包括许多默认运行的任务。此表记录了这些默认值,可以从“任务计划”页面进行编辑。

注意:可以使用 `%SYS.Task.DefinitionAPI` 定义自己的任务类型。

1 0
0 63

原文可见 这里,原作者 Robert Cemper

我们在SQL中的经常被提到视图VIEW,基本上是一段预先设计好的SQL语句,它也像任何其他SQL查询语句一样执行和组装。

而物化视图MATERIALIZED VIEW意味着查询的内容是预先收集的,这些数据可以相当快地进行检索。

我第一次看到这个概念是和我最喜欢的竞争对手O* 一起的,他们对此功能发出了很多的声音。

然而在Caché/IRIS中,这种功能几乎是一早就存在的,我们认为这是很正常的普通功能。只是我们大多数开发人员只是没有意识到这一点,只要稍加润色,它就可以作为一个优秀的特性呈现出来。 此外,任何更新和维护都是作为内置的能力进行的,无需开发人员任何额外的工作。

看下面的例子:

在我们的Sample.Person类中,我们可以定义一个索引

0 0
0 117
文章
· 九月 5, 2022 阅读大约需 4 分钟
第二十三章 使用任务管理器(一)

第二十三章 使用任务管理器(一)

要访问任务管理器,请导航至系统操作 > 任务管理器。

还可以使用终端与任务管理器进行交互,如使用 ^TASKMGR 部分所述。

注意:任务管理器每 60 秒轮询一次以查看是否有要运行的任务。当单击立即执行操作来安排任务时,在新安排的任务实际运行之前可能会有长达 60 秒的延迟。

新任务

新任务选项启动任务计划程序向导。此工具允许安排新任务运行。

注意:还可以使用任务计划程序向导通过从“任务计划”页面选择现有任务来编辑现有任务。

1 0
0 62
文章
· 九月 4, 2022 阅读大约需 2 分钟
第二十二章 控制进程(三)

第二十二章 控制进程(三)

挂起或恢复进程

如果不确定某个进程在做什么并想要进行调查,或者如果一个更重要的进程正在尝试运行并且需要 CPU 周期,可能希望暂停该进程。要从管理门户访问此选项:

  1. 显示进程页面(系统操作 > 进程)。
  2. 单击相应进程行中的详细信息。
  3. 单击选项栏上的挂起。

可以随时通过单击同一页面中的恢复来恢复暂停的进程。

终止进程

如果某个进程无响应或正在影响其他进程或用户,可能希望终止该进程。要从管理门户访问此选项:

  1. 显示进程页面(系统操作 > 进程)。
  2. 单击相应流程行中的详细信息。
  3. 单击选项栏上的终止。

或者,要在进程终止时记录进程的状态,请选中 Terminate with RESJOB Error 复选框。

注意:默认情况下启用此选项。

2 0
0 72
文章
· 九月 3, 2022 阅读大约需 2 分钟
第二十一章 控制进程(二)

第二十一章 控制进程(二)

显示进程详细信息

进程详细信息页面显示有关任何进程的详细信息。要从管理门户访问此信息:

  1. 显示进程页面(系统操作 > 进程)。
  2. 单击相应进程行中的详细信息。 (此选项仅存在于有权维护的进程上。)

该页面还包括特定于所选进程的信息,这些信息被组织成一个通用信息表、一个客户端应用程序详细信息表和一个执行详细信息表:

0 0
0 28