#Caché

1 关注者 · 982 帖子

  

InterSystems Caché 是一个多模型 DBMS 和应用服务器。

查看此处提供的更多详细信息

文档

文章 姚 鑫 · 十月 9, 2022 3m read

第十一章 CSP 架构 - Web Application Settings

Special Case: DeepSee

对于使用 DeepSeeWeb 应用程序,它需要访问 %DeepSee 包中的所有类。要使特定应用程序能够使用 DeepSee,请在 %SYS 命名空间中使用以下命令:

Do EnableDeepSee^%SYS.cspServer("/csp/webapp/")

其中 web-app-name 是带有斜杠的 Web 应用程序名称。前面的命令等价于以下命令:

Set ^SYS("Security","CSP","AllowClass","web-app-name","%DeepSee.") = 1
Set ^SYS("Security","CSP","AllowClass","web-app-name","%CSP.UI.Portal.About")=1

其中 web-app-name 是带有尾随冲突的 Web 应用程序的名称。请注意,第一行使用 %DeepSee。有一个尾随句点。

或者,要使所有应用程序都能使用 DeepSee,请使用以下变体:

Do EnableDeepSee^%SYS.cspServer(0)

例如,要启用 /csp/webapp Web 应用程序以使用 DeepSee,请使用以下命令:

Do EnableDeepSee^%SY
0
0 162
文章 姚 鑫 · 十月 8, 2022 2m read

第十章 CSP 架构 - Category

Category: AllowPrefix

如果应用程序依赖于调用以同一组字符开头的多个类或包,请使用AllowPrefix选项。

重要提示:如果应用程序依赖于调用上面列出的以外的任何类,则使用它可能是不安全的。建议确定是否需要调用此类,并为部署执行风险评估,以便了解使类可用的含义。

要使给定的Web应用程序能够调用以相同字符集开头的类或程序包,请在%sys命名空间中使用以下命令:

Set ^SYS("Security", "CSP", "AllowPrefix", "web-app-name", "prefix") = value

其中

  • Web-app-nameWeb应用程序的名称,后跟一个尾随斜杠。

要使所有Web应用程序都能使用给定的类或包,请将web-app-name指定为0;在这种情况下,可以省略括起来的引号。

  • 前缀是名称的前几个字符。

  • 值为10

如果将其指定为1,则Web应用程序可以调用这些类(或包)。

如果将其指定为0,则此Web应用程序无法调用这些类(或包)。

例如,要使/csp/webapp应用程序能够调用整个MyApp包,请使用以下命令:

Set ^SYS("Security", "CSP", "AllowPrefix", "/csp/webapps/", "MyApp.") = 1

请注意,

0
0 140
文章 姚 鑫 · 九月 25, 2022 78m read

IRIS的23种设计模式

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

定义

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

使用场景

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

优点

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

缺点

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

示例

  • 用Caché 实现一个计算器控制台程序,要求输入两个数和运算符号。

可能会写成这样:

/// w ##class(PHA.YX.Design.Program).GetResult() 
ClassMethod GetResult()
{
	READ "输入第一个数字:", numberA,!
	READ "输入操作符:", operate,!
	READ "输入第二个数字:", numberB,!
	
	s result = ""
	i operate = "+" d
	.s result 

image

2
1 465
文章 姚 鑫 · 十月 7, 2022 4m read

第九章 CSP 架构 - CSP 应用程序设置

CSP 应用程序设置

CSP 服务器接收到传入的 HTTP 请求时,它使用本地 CSP 应用程序设置来确定如何处理请求。本节介绍 如何使用 CSP 应用程序设置处理 CSP 应用程序请求。

启用对 %CSP 页面的应用程序访问

以下规则管理对页面和类的访问:

  1. 默认情况下,允许用户应用程序访问以下页面:
  • 允许 /csp/sys/ 应用程序及其所有子应用程序的页面
  • 允许使用 isc/studio/templates//isc/studio/usertemplates/ 应用程序的页面
  1. 默认情况下,允许用户应用程序访问所有非 % 类
  2. 用户应用程序还可以访问以下类:
  • %CSP.Broker, %CSP.StreamServer, %CSP.Login, %CSP.PasswordChange, %CSP.PageLookup 被允许
  • %ZEN.SVGComponent.svgPage%ZEN.Dialog.* 是允许的,有以下附加条件
    • 不允许所有其他 %ZEN.*
    • 允许所有其他 %Z*
  • 允许所有 %z*

除了检查 CSP 应用程序中的设置外,还会检查允许的类。可以通过导航到管理门户上的系统管理 > 安全 > 应用程序 > Web 应用程序来查看和更改应用程序设置。因此,类引用必须通过两组测试才能

0
0 176
文章 bai hongtao · 十月 7, 2022 4m read

在Cache 2018之前的版本中,数据库的高可用是通过第三方HA软件保障的,Cache数据库在2018以后及IRIS支持MIRROR技术,通过MIRROR可以保障数据库的高可用及数据的冗余,那么在新版本中,第三方HA软件与MIRROR是否可以同时使用以实现更高的数据库可用性?使用起来有哪些需要注意的?本文重点介绍探讨上述两个问题。

为得出正确结论,我们搭建了如下实验环境:

       我们采用3个服务器节点A、B、C分别部署IRIS 2021.1数据库,其中A节点、B节点部署第三方HA软件组成数据库高可用主备集群(本例中,采用的是基于POWER平台的PowerHA),该集群中定义A节点为主节点,B节点为备用节点,HA集群的共享资源组存放在共享SAN存储上,通过HA,生成HA集群的对外服务IP,即我们通常说的Service ip,保证在生产节点发生网络故障、主机故障、以及操作系统故障、手动切换等情况下,IRIS服务、共享资源组、以及HA的Service IP可自动切换至另外一台服务器,保障IRIS高可用,经测试,HA集群内部节点间服务切换时间约为30秒。

搭建IRIS的MIRROR集群,其中A、B两个节点组成的HA集群通过Service IP添加至MIRROR集群中,做为MIRROR集群的一个Failover member,C节点做为MIRROR集群的另外一个Failove

0
0 559
文章 姚 鑫 · 十月 6, 2022 4m read

第八章 CSP 架构 - CSP 网关配置

CSP 网关配置

CSP 网关是安装在 Web 服务器上并由其加载的 DLL 或共享库。 CSP 网关检测对扩展名为 .csp.cls 的文件的任何请求,并将它们发送到定义的 Caché 服务器进行处理。

CSP 网关管理器

可以使用 CSP 网关管理器(CSP Web 网关管理页面)或直接编辑其配置文件 csp.ini 来配置 CSP 网关。

CSP 网关管理器是一个小型 Web 应用程序,可以在浏览器中使用它。您可以通过导航到系统管理 > 配置 > CSP 网关管理来访问 CSP 网关管理器。默认情况下,它会访问专用 Web 服务器的 CSP 网关管理器。

要访问生产 Web 服务器的 CSP 网关管理器,请根据需要通过替换 localhost 或 localhost:<port_no> 来更改 URL

有关配置 CSP 网关的信息,请导航至系统管理 > 配置 > CSP 网关管理,然后单击帮助。有关更多详细信息,请参阅 CSP 网关配置指南。

注意:CSP Web 网关管理页面的本地化仅基于安装的 CSPres.xml 的内容(如果有)。如果不存在本地化文件,则 CSP Web Gateway 管理页面默认使用嵌入的英文文本。浏览器的语言设置对此机制没有影响。

定义服务器访问

注意:为防止运行时错误,对于通过 CS 运行的高

0
0 117
问题 Liang Jianhui · 九月 30, 2022

访问了一个API,得到的返回结果里面有个时间字段,现在返回的格式是这样的 “2022-09-30T07:24:57.899Z”, 怎么样能转换成 YYYY/MM/DD hh:MM:ss的格式

1
0 217
文章 姚 鑫 · 十月 5, 2022 3m read

第七章 CSP 架构 - URL 的 Web 服务器配置

URLWeb 服务器配置

提供了一个默认的 /csp 虚拟目录来运行 CSP 应用程序。如果正在运行多个 Caché 实例,它还提供了一个默认虚拟目录 /cacheinstance/csp 以供使用。如果正在运行多个 Caché 实例并使用虚拟目录 /csp 访问 CSP 应用程序,而之前没有 /cacheinstance,它将访问最后安装的 Caché 版本。如果计划允许使用以 http://localhost/csp 或 http//localhost/cacheinstance/csp 开头的应用程序路径调用所有 CSP 应用程序,则无需在 Web 服务器中进行任何更改配置。

如果要创建一个应用程序路径不是以 /csp/cacheinstance/csp 开头的 CSP 应用程序,则需要在 Web 服务器配置文件条目中进行更改,别名 /csp

下表显示了需要更改的配置文件。

网络服务器配置文件
ApacheHP 安全网络服务器UNIX®: /etc/httpd/conf/httpd.confWindows: <web-server-install-directory>\conf\httpd.conf
Sunconfig/obj.conf and config/magnus.co
0
0 171
文章 姚 鑫 · 十月 4, 2022 3m read

第六章 CSP 架构 - 静态文件

静态文件

数据库服务器为所有 CSP 提供服务。 数据库服务器还可以通过 CSP 网关为 Web 应用程序提供任何类型的静态文件。在标准 Web 应用程序中,Web 服务器通常提供静态内容。要在 Caché 上运行 Zen 应用程序,必须配置 Web 服务器以允许服务器通过 CSP 网关提供所有静态文件。

注意:要运行基于 Zen 的应用程序,请启用“服务文件”选项并配置 Web 服务器以允许 Caché 服务器提供静态文件。然后 Zen 框架将能够提供依赖图像和 JavaScript 帮助文档。

指示字符编码

CSP 引擎通过流服务器以与主流 Web 服务器一致的方式处理静态文件,以确定 JavaScript 文件的字符编码。

现代惯例是将所有 JavaScript 文件标记为 application/javascript Content-Type,并且确保页面上使用的所有 JavaScript 文件都是这种情况。

以这种方式标记的 JavaScript 文件:

  • 如果文件包含 BOM(字节顺序标记),浏览器会自动检测到这一点并使用正确的字符集来读取它。
  • 如果该文件不包含 BOM,则浏览器假定该文件是 UTF-8

如果需要覆盖此行为以指定 JavaScript 文件的字符集,请将全局 ^%SYS("CSP","MimeFileClass

0
0 130
文章 姚 鑫 · 十月 3, 2022 2m read

第五章 CSP 架构 - 组件,信息流

CSP 组件:Web 服务器、CSP 网关、CSP 服务器

CSP 使用三个软件组件:Web 服务器、CSP 网关和 CSP 服务器(在 Caché 服务器上运行):

  • CSP 组件

Web服务器和CSP服务器可以由一台或多台计算机实现。在开发过程中,所有三个组件(Web 服务器、CSP 网关和 CSP 服务器)可能都位于一台 PC 上。在大规模部署中,可能有多个 Web 服务器和 CSP 服务器采用两层或三层配置。

这些组件(Web 服务器、CSP 网关、CSP 服务器)视为各有一个。它将 CSP 描述为好像只提供 HTML 页面,尽管 CSP 也可以提供 XML 页面,以及其他文本格式和二进制格式,例如图像。

每个组件的作用

Web 服务器是一个软件实用程序,它执行以下操作:

  • 接受传入的 HTTP 请求,通常来自浏览器
  • 检查权限
  • 可以提供静态内容
  • CSP 网关发送对 CSP 内容(以 .csp.cls 结尾的 URL)的请求

CSP 网关是一个共享库、一个 .dll 文件或一个 CGI 脚本。它执行以下操作:

  • 确定将请求发送到哪个 Caché 服务器。
  • 将请求发送到正确的 Caché 服务器。
  • 维护与 Caché 服务器的连接(以避免必须不断打开新连接)。

CSP 服务器是一个运行在 Caché 服务器上的进程,专门用

0
0 176
文章 姚 鑫 · 十月 2, 2022 2m read

第四章 Caché 服务器页面简介 - 通过 html 创建 csp 页面

创建基于 HTML 标记的 CSP 页面

要使用 HTML 文件创建 Hello.World 页面,请执行以下操作:

  1. 启动 Studio 并选择 File > New > CSP File > Caché Server Page
  2. 将新 CSP 文件的内容替换为以下内容:
<html>
<body>
<b>Hello, World!</b>
</body>
</html>
  1. 选择文件 > 保存。
  2. 在显示的另存为窗口中,双击默认 CSP 应用程序 csp/user
  3. 输入文件名 Hello.csp 并单击另存为以保存文件。
  4. Studio 窗口中,选择查看 > 网页。

与前面的示例一样,会看到 Hello, World!显示在浏览器中。

CSP 应用程序可以由单个 CSP 页面或一组页面组成。 CSP 应用程序作为一个单元,使用适用于整个应用程序的设置。系统提供 csp/user 作为默认的 CSP 应用程序。

还可以使用文本编辑器或 HTML 编辑器创建 HTML 文件。将此文件作为 Hello.csp 保存在本地目录 cachesys/csp/user 中(其中 cachesys 是安装 Caché 的位置)。

Hello.csp 页面的工作方式如下:

  1. 浏览器向本地 Web 服务器发送 Hel
0
0 252
文章 姚 鑫 · 十月 1, 2022 2m read

第三章 Caché 服务器页面简介 - 通过 cls 创建 csp 页面

创建第一个 CSP 页面

本节介绍如何以两种不同的方式创建 Hello, World CSP 页面:

创建基于类的 CSP 页面

通过创建 %CSP.Page 的子类并覆盖其 OnPage 方法来创建 CSP 页面。通过此方法写入主设备的任何输出都会自动发送到 Web 浏览器并显示为网页。

  1. 打开Studio
  2. 选择 File > New Project 在本地数据库 USER 命名空间中创建一个新项目。
  3. 在向导的第一页上,输入 Test 作为包名,并输入 Hello 作为类名
  4. 在第二页上,选择 CSP 作为类类型。
  5. 单击完成。可以在 Studio 类编辑器中看到新的 CSP 类定义:
Class Test.Hello Extends %CSP.Page
{

ClassMethod OnPage() As %Status
{
	&html<<html>
<head>
</head>
<body>>
	; To do...
	&html<</body>
</html>>
	Quit $$$OK
}

}

  1. OnPage 方法中,替换注释:
 ; To do...

使用 Write 语句:

 Write "<b>Hello, World</b>",!
  1. 使用 Build > Compile 保存并
0
0 159
文章 姚 鑫 · 九月 30, 2022 2m read

第二章 Caché 服务器页面简介 - 你应该知道

你应该知道什么

要高效使用 CSP,应该熟悉以下内容:

  • Caché objects and ObjectScript

  • HTML

  • JavaScript

  • SQL

CSP Samples

Caché 附带一组示例CSP 页面。要查看这些:

  1. 打开Caché

  2. 要查看 CSP 示例,请确保计算机上的 Web 服务器正在运行。

  3. 启动浏览器并转到 CSP 示例菜单(使用位于以下位置的私有 Web 服务器:http://localhost:57772/csp/samples/menu.csp或位于以下位置的外部 Web` 服务器:http://localhost /csp/samples/menu.csp 。

  4. 如果安装的 Caché 具有正常或锁的安全功能,则可能会显示登录页面。如果是这样,请登录。

  5. Caché 显示示例 CSP 页面的列表以及每个页面的简短描述。单击感兴趣的任何内容。

CSP 文档

可以在此处找到有关 CSP 的文档:

  • 使用 Caché Server Pages 描述了如何创建 CSP 页面
  • 使用 ZEN 描述了如何使用 ZEN,这是一个在 CSP 之上工作的包,用于使用预构建的页面对象进行更快速的 Web 应用程序开发。 Zen 文档包括使用 Zen 组件、开发 Zen 应用程序和使
0
0 205
文章 姚 鑫 · 九月 29, 2022 3m read

第一章 Caché 服务器页面简介 - 什么是CSP

Caché Server Pages (CSP) 既是用于构建交互式 CSP 应用程序的架构又是工具集。 CSP 技术允许构建和部署高性能、高度可扩展的 Web 应用程序。 CSP 允许动态生成网页,通常使用来自 Caché 数据库的数据。 “动态Dynamically”意味着每次从最近更改的数据源请求同一页面时,它可能会提供不同的内容。

CSP 用途广泛。它可以

  • 显示每分钟都在变化的库存数据。
  • 支持拥有数千名活跃用户的网络社区。
  • 根据存储在 Caché 数据库中的用户信息个性化页面。
  • 根据不同用户的要求和安全权限,根据用户数据为不同用户定制页面。
  • 提供 HTMLXML、图像或其他二进制或文本数据。
  • 提供快速性能,因为它与高性能 数据库紧密耦合。

CSP 非常适合数据库应用程序。除了提供对内置 Caché 数据库的快速访问之外,它还提供了许多基于 Web 的数据库应用程序必不可少的功能,包括

  • 会话管理
  • 页面认证
  • 能够从网页中执行交互式数据库操作。

CSP 支持两种风格的 Web 开发。

  • 为了使用类开发应用程序,CSP 提供了一个对象框架。
  • 为了使用 HTML 文件开发应用程序,CSP 提供了一种基于 HTML 的标记语言,允许在网页中包含对象和服务器端脚本。可以在一个应用程序中结合这两种技术以获得最大的灵活性。

C

0
0 439
文章 姚 鑫 · 九月 27, 2022 2m read

第四十五章 配置第三方软件以与 InterSystems 产品结合使用

产品通常在与非 工具一起运行的环境中运行,我们的产品与此类工具之间的交互可能会产生有害影响。 关于最佳、可靠部署配置的指导假定我们的产品可以在不受第三方工具干扰的情况下进行部署。例如, 发现用于安全、系统监控或病毒扫描的软件可能会影响我们产品的安装、性能和功能。对于直接与属于 产品的一部分或被 产品使用的文件进行交互的工具(例如病毒扫描程序)尤其如此。

了解客户面临的业务、合规性和其他要求会影响有关在给定环境中运行哪些软件以及如何配置此类软件的决策。一般来说, 建议我们产品的服务器端安装通过物理安全和隔离来保护。这种保护应该减少对其他工具的需求,或者至少减少它们运行的频率。

病毒扫描仪观察:

  1. 为了交付经过病毒检查的软件, 产品在经过消毒的环境中交付给我们的客户,并通过提供校验和进行验证。
  2. 性能影响。

[对策] 出于扫描目的,排除以下文件和目录:

  • WIJ 文件和包含 WIJ 文件的目录*
  • 本指南“配置 IRIS”一章中的所有数据库文件 (.DAT) 和包含数据库文件的目录*(请参阅配置数据库)。
  • 存储或处理日志文件的任何目录*
  • IRIS® 数据平台运行所需的任何其他文件/目录*。例如备用日志目录*(请参阅数据完整性指南中的“日志”),或业务服务或生产使用的任何目录*。
  1. 可执行文件的误报。
0
0 119
文章 姚 鑫 · 四月 8, 2021 8m read

第二十章 用户、角色和权限

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和系统级安全共享的:单个角色可以包括系统和SQ权限。

下面的例子,以Windows机器上的InterSystems IRIS为例:

  • 在用户名称空间中有一个名为User.MyPerson的持久化类。 这个类被投影到SQL中作为S

image

1
0 488
文章 姚 鑫 · 九月 26, 2022 2m read

[toc]

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

配置多个 IRIS 实例

可以在一台机器上安装并同时运行多个 IRIS 实例。像单一安装一样安装 IRIS,为每个实例提供唯一的名称、唯一的安装目录以及用于超级服务器、Web 服务器和 Telnet 的唯一端口号。

多个实例的特殊注意事项是:

  • 安装多个实例受到系统上仅存在一个的组件的限制。例如,通常系统上只有一个 Web 服务器;因此 IRIS 安装将 Web Gateway 配置为最新安装。存储在注册表中的 IRIS 客户端组件遇到了同样的问题。 IRIS 将其 ODBC 驱动程序存储在注册表中,每个驱动程序使用一个名称。目前,最后一次安装会更新这些组件以指向最后安装的实例。

努力将通用组件移动到可以在 IRIS 实例之间共享的通用目录中。

  • 多个实例可以共享同一个多服务器密钥,但如果这样做,它们必须使用同一个许可证服务器或一组许可证服务器。在一个或多个许可证服务器的支持下运行 IRIS 实例的每个系统都必须在每个实例中安装授权许可证密钥文件的本地副本。
  • 多个实例可以联网。
  • 包括对同时使用数据库的保护(即,每个实例必须有自己的数据库,并且不能访问或修改另一个实例的数据库)。
  • 每个实例必须具有唯一的端口号。有关如何设置端口号的信息,请参阅下一节。

设置端口号

对于 IRIS 的标准单一实例,超级服务器端口号默认为 197

0
0 145
文章 姚 鑫 · 九月 25, 2022 8m read

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

Windows 上的 iris 命令

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

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

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

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 个字符的行。
C:\InterSystems\IRISHealth\bin>iris allw
    Instance Name                   Version ID                   Port   Directory
    --

image

0
0 157
文章 姚 鑫 · 九月 24, 2022 14m read

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

控制 IRIS 实例

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

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

C:\InterSystems\IRISHealth\bin>iris help
usage:
       iris start <instance> [<cpf_file>]
           to start instance <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 star

image

0
0 259
文章 姚 鑫 · 九月 23, 2022 2m read

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

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

管理 IRIS 实例

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

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

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

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

  • iris command 在操作系统命令行上执行 iris 命令可让管理访问 IRIS 实例,其中包括其他选项,可以:

    • 使用 Terminal连接到实例。
    • 启动、停止和重新启动实例。
    • 显示有关该实例以及系统上安装的其他实例的信息。

    要在远程服务器上使用 iris 命令,请使用 TelnetSSH 客户端;要将它与容器化实例一起使用,请在容器内使用它,或者使用 docker exec 命令从容器外部运行它。

连接到 IRIS 实例

Terminal 是一个命令行,可以在 IRIS 实例的任何命名空间中使用。使用命令 iris

0
0 193
文章 体进 邓 · 九月 23, 2022 1m read

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

2、代码

Set httprequest=##class(%Net.HttpRequest).%New()
    set httprequest.SSLConfiguration="MySSLConfiguration"set httprequest.Https=1set httprequest.Server="things.icoldchain.cn"set httprequest.Port=443Do httprequest.InsertFormData("code","1520437297405")
    Do httprequest.InsertFormData("deviceSN","B7ZAU040")
    set tSc = httprequest.Post("/output/getDeviceProperties")
    s strRes=""do{
        s res=httprequest.HttpResponse.Data.ReadLine()
        s strRes=strRes_res
    }
    while(res'="")
    
0
0 202
文章 姚 鑫 · 九月 22, 2022 2m read

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

使用可选的服务器字段

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

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

CSP Server Instance

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

例如,如果在 Windows 机器上安装了 IIS Web 服务器,并且还安装了 IRIS 的两个实例,iris1iris2,则默认情况下,使用作为 IRIS 一部分安装的自己的私有 Apache Web 服务器管理每个实例.

但是,也可以通过更改 Web 服务器端口(IIS 默认为 80)并在为每个实例创建服务器定义时在 CSP 服务器实例字段中指定 iris1iris2 来从公共 IIS Web 服务器管理这两个实例。这会在公共 Web 服务器上自动创建虚拟目录 /iris1/iris2,它们指向相应的 IRIS 实例。

当在 CSP 服务器实例字段中输入一个值并在此服务器的启动器上选择管理门户时,URI 形成如下:

http://<web srvr addr>:<web srvr port>/<csp srv

image

0
0 152
文章 姚 鑫 · 九月 21, 2022 3m read

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

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

要为远程实例使用远程系统访问子菜单上的实用程序:

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

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

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

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

可以从 PC 上运行的终端或任何能够运行 Telnet 的工作站客户端远程登录到任何受支持平台上的 IRIS 实例。此客户端可能只有实用程序,而没有 IRIS 服务器实例。大多数情况下,客户端计算机上的 IRIS 版本必须与其管理的 IRIS 系统的版本相同或更高。

注意:在 macOS 平台上,还可以从 Windows 上的命令提示符使用 SSH 连接到 macOS 机器,然后使用以下命令进行连接:

sudo /sbin/service telnet start

还可以将 Web 服务器页面与远程 Web 服务器一起使用。这可用

0
0 171
文章 姚 鑫 · 九月 20, 2022 2m read

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

管理 IRIS

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

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

只有作为实例所有者的用户 ID 才能并且应该运行所有诊断活动。这确保创建的任何文件或资源都归实例所有者所有,而不是 root(这可能使非 root 用户无法访问这些资源)。因此,不建议 root 以任何方式管理不属于 root 的实例(包括启动和停止实例)。以 root 身份运行的用户应该只管理 root 拥有的实例。

启动 IRIS

要启动 IRIS,请在系统级别运行启动程序。此过程激活默认配置文件或您指定的配置文件。

注意:如果在启动 IRIS 时遇到任何问题,请按照“监控指南”的“监控日志文件”部分中的说明查看 messages.log 文件。

如果不在控制台机器上,请运行 Telnet 并连接到安装了 IRIS 的目标机器。在可以在 UNIX® 上启动 IRIS 之前,必须满足以下条件之一:

  • 超级用户。
  • 已以 root 用户身份登录。 (从另一个帐户登录时,可以接
0
0 117
文章 姚 鑫 · 九月 12, 2022 3m read

第三十章 管理许可(三)

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

如何知道已使用了多少许可证以及由谁使用?类中的 %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:

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

许可证使用页面上的链接License Query
SummarySummary() — 返回许可证使用摘要,如 $System.License.ShowSummary 所示。
Usage by ProcessProcessList() — 返回操作系统进程标识符 (PID) 使用的许可证,如 $System.License.
1
0 237
文章 Jingwei Wang · 九月 20, 2022 2m read

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

1.1 问题描述

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

1.2 解决方案

对于由于虚拟机快照引起的网络中断造成的非计划内主备切换问题,请参考以下两种解决方案:

  • 使用数据库冻结/解冻脚本,具体脚本和操作方式请参考社区文章虚拟机备份和 Caché 冻结/解冻脚本,如有其他疑问请联系InterSystems WRC
  • 在镜像集群中增加一个异步镜像成员,使用异步镜像成员创建虚拟机快照,由于此异步镜像成员也会同步获取主机数据,但是不会自动切换,
0
0 140
文章 姚 鑫 · 九月 19, 2022 3m read

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

在 UNIX® 上启动

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

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

守护进程资源锁

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

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

iris.ids File

iris.ids 文件包含启动 IRIS 的节点的名称。 iris.ids 文件的存在充当 ObjectScript 实用程序和客户编写的脚本的标志,指示实例是否启动并运行。该文件在启动过程中经常被忽略。但是,如果在读取 iris.ids 时发生错误,则会阻止 IRIS 启动。在以前版本的 IRIS 中,共享内存标识符也存储在 iris.ids 文件中,但现在不再如此。

启动顺序

为了更好地理解启动顺序,假设实例可

0
0 199
文章 姚 鑫 · 九月 18, 2022 3m read

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

本章介绍Unix®LinuxMacOS上的特定管理程序。

UNIX® 用户、组和权限

UNIX® 平台上的每个 IRIS® 数据平台安装都有以下用户和组:

  • RootIRIS 必须由 root 安装, IRIS 系统守护程序的某些处理以 root 身份运行。
  • 实例所有者 — 此用户拥有大多数安装文件并完全控制实例。如果使用最小初始安全设置进行安装,则 root 是默认所有者;否则,在安装过程中会提示输入所有者。
  • IRIS 超级服务器及其作业的有效用户——所有由超级服务器生成的用于处理传入请求的 IRIS 进程都以此用户身份运行;此外,由作业服务器进程、任务管理器作业和用户定义的启动例程(例如,^%ZSTART)托管的作业也以该用户身份运行。默认情况下,此用户是 irisusr,但可以在自定义安装期间更改用户。
  • IRIS 进程的有效组——所有 IRIS 进程自动作为该组运行,这允许普通用户在 IRIS 内访问他们可能没有被授予访问权限的 IRIS 数据库和日志文件;这些和其他 IRIS 文件的文件权限设置为允许该组具有适当的访问权限。在安全系统上,只有 IRIS 超级服务器及其作业的有效用户应该是该组的成员。默认情况下,该组包含 irisusr,但您可以在自定义安装期间更改该组。
  • 允许启动和
0
0 212
问题 争取在天亮前起床 · 七月 14, 2022

在更新医保码库前,我们想对旧码库做个备份,以防更新过程失败,还可以还原。
oracle支持 CREATE TABLE AS ..... 的语法快速备份一张表,cache 似乎不支持这个语法,
大家平时是怎么备份一张码表的呢?

最好是像 oracle 那样一条命令搞定的那种。

10
0 394
文章 姚 鑫 · 九月 17, 2022 7m read

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

IRIS 启动器

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

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

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

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

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

IRIS 启动器命令描述
Getting Started显示教程、发行说明、文档和其他相关信息的链接
Start IRIS启动菜单项后方括号中指定的默认实例,例如 [ii2081]。如果 IRIS 服务器已经启动,这个选项会变暗——它不可用。
Stop InterSystems关闭或重新启动本地 IRIS 实例。如果 IRIS 服务器已停止,此选项将显示为灰色——它不可用。
Studio创建、编辑、删除和编译 IRIS 类定义和例程。
Termi

image

0
0 357