简单分享下在医院实际业务过程中%Dictionary.CompiledClass的一些应用。
一,Query查询出来的数据直接存表。
我们经常会遇到一些突如其来的检查,如:飞行检查,审计检查等等,往往一下子要查询几年的各种数据,每种数据涉及字段还非常多,数据之间还要求对上,查询耗时长,数据对比难度大,此时,我们需要把查询出来的数据直接存到临时表,数据核对和修改直接在临时表中完成,核对好的数据直接在sqldbx或者水滴等查询工具中整表导出,效率会高一些。
具体实现:按照数据要求,把表建好,Query输出字段和表字段顺序一致,按日期每天调用Query查询和插入,记录异常数据,后续单独处理。
优点:效率明显提高,数据核对和修改、导出很方便,避免了数据量大,多次查询耗时长问题。
缺点:数据量大会占用存储,记得删。
// W ##CLASS(lizw.CloseCycleData).insertDayByDay("2022-01-01","2022-06-30")
ClassMethod insertDayByDay(sd, ed)
{
k ^tmplzw("insertFromQyeryTestpara",$j)
S classOBJ=##class(%Dictionary.CompiledClass).%OpenId("lizw.
背景
Cache起源于没有SQL的1970时代,当时各种高级计算机语言才刚刚诞生,其中M语言较为独特,它的诞生就是为了在没有操作系统的机器上,进行数据存储。别忘了,Unix在1971年才发布。M语言别具一格地采用了Global多维数组,统一了复杂的内存操作和文件读写,使之成为了1970年代数据库的事实标准,特别是在医疗行业。而后Intersystems在1978年接过M语言的旗帜,在M语言上添加了SQL兼容层和ObjectScript层,前者顺应了时代的潮流,后者不仅为M语言提供了强大的OOP和各种便捷的语法糖,还让数据能以对象形式进行访问,让数据和代码更加紧密。
本文将简述多维数组、SQL、对象这3种数据操作方式,提供实例代码片段,并在运行效率、开发效率、管理效率、实用性方面讨论它们的优缺点。 为方便讨论,以学校与学生为例。对每种操作方法,都列举3种典型的用例,分别为,访问某特定ID的学生(即数据库ID索引)、访问某特定studentID的学生(即遍历唯一索引)、和访问某学校的所有人(即遍历非唯一索引)。
第十二章 CSP 中的 HTTP 请求 - CSP 运行时环境
CSP 的主要任务是提供动态内容以响应传入的 (超文本传输协议)请求。本节介绍 CSP 如何处理 请求的基础知识。
是一种简单的协议,其中客户端向服务器发出请求。 是一种无状态协议;客户端和服务器之间的连接只持续为服务请求所需的时间。每个 HTTP 请求都包含一个请求标头,该标头指定请求类型(例如 或 )、一个 和一个版本号。请求还可能包含附加信息。 自动确定它应该处理哪些 请求,将它们分派到运行在 服务器上的适当类,并将请求信息打包成易于使用的对象(例如对象中的 )。
CSP 运行时环境
下图显示了 和 请求的架构:
应用程序的运行时环境包括以下内容:
HTTP客户端(例如Web浏览器)HTTP服务器( 服务器,例如 或 )- 网关( 服务器的
Caché插件) - 服务器( 服务器在其上运行请求的 应用程序)
HTTP 请求处理
下图说明了 处理 请求时的事件流:
- 浏览器(或类似的 客户端)发出 请求。
- 服务器确定这是一个 请求并将其分派到 网关(安装在 Web 服务器上)。 2a 服务器可能会提供静态内容,具体取决于应用程序配置。
- 网关重新打包请求并将其发送到正确的缓存服务器。
在生产环境中IRIS通常以故障转移集群的形态被部署,而集群中各故障转移成员的镜像状态将决定该集群在故障发生时是否能够顺利切换保障业务不中断。因此,成员状态通常也是运维团队需要巡检或监控的目标。
尽管IRIS内部API提供了丰富的集群配置、成员状态监控等一系列接口,但除Portal上的镜像监视器外,并没有特定的接口便于从外部系统访问(如进行企业级监控集成时),也没有整合好的监控接口可用与获取镜像的健康状态。但在IRIS上开发一个REST接口暴露镜像状态数据并不困难,如下所示:
Include %syMirrorClassParameter在该实现中,由于需要调用%SYS下的API,因此需要在执行过程中切换到%SYS命名空间,并在执行完毕后切换回原命名空间。
Kong提供了一个开源的配置管理工具(用Go语言编写),称为decK(即声明式Kong,declarative Kong)。
- 通过deck ping检查deck是否能识别你的Kong Gateway安装
deck ping
Successfully connected to Kong!
Kong version: 2.3.3.2-enterprise-edition- 通过deck dump把 Kong Gateway 配置导出到一个叫 "kong.yaml" 的文件
deck dump- 修改kong.yaml文件后, 通过 deck diff 显示区别
deck diff
updating service alerts {
"connect_timeout": 60000,
- "host": "172.24.156.176",
+ "host": "192.10.10.18",
"id": "3bdd7db4-0b75-4148-93b3-2ff11e961f64",
"name": "alerts",
"path": "/alerts",
"port": 50200,
"protocol": "http",
"read_timeout": 60000,
"retries": 5,
"write_timeout": 60000
}
Summary:
Created: 0
Updated: 1
Deleted: 0Hi 大家好,
我最近开始学习InterSystems IRIS 的互操作性,我发现官方文档对理解它的工作原理很有帮助,尽管我自己在实现它时仍有一些困难。在我的同事的帮助下,我成功地创建了一个系统的Demo,并从实践中学习。因此,我决定写一下文章,分享我得到的帮助,来帮助更多的其他人。
介绍
首先,让我们掌握一些基本概念:
- 互操作性 - 这个词的含义并不像它的发音那样复杂--它基本上是把各种信息从一个系统带到另一个系统的“魔术”。
- 业务主机 - 如果把互操作性比作是魔术,那么业务主机Business Host就是魔术师的魔法帽--业务主机里有能够识别和接收信息的业务服务Business Service/BS,并将其作为消息发送给业务流程BP或业务操作BO。业务操作执行所需的操作(顾名思义)并传递信息。业务流程控制着消息的流动:它们定义了消息的去向(基于你所选择的任何东西)以及它是如何被传递的。
- 适配器 - 适配器是一些我们可以用来识别和操作我们可能要处理的各种信息的类。在实践中,我们把它们作为参数和(可选)属性来访问其方法和属性
准备搭建Production
从简单的开始比较容易--让我们先想想服务和操作--比如说你有一个接收一种信息的服务,它很容易被我们唯一的操作所识别。
当生产的目的和它的部分非常清楚时,开发就比较容易。如果你愿意,画一张图或写下你希望它完成的步骤可能会有帮助。
Cache软件自带数据服务和应用服务。在实际使用中会将Cache数据服务和应用服务分别安装在不同的服务器上面,作为数据库服务器和应用服务器。数据库服务器和应用服务器通过ECP(企业缓存协议)进行数据交换。在应用服务器部署上web服务,让数据交换和应用处理分开,实现瘦数据和胖应用的系统模式。
这种早已存在于互联网行业的基础级模式,虽然解决计算资源和存储资源的合理分配的问题,但也常用来扩展了用户许可数。毕竟将数据服务和应用服务装在一台服务器上面只能满足百级的用户需求,而将数据服务和应用服务分开的二层模式,就可以满足千级的用户需求。

在二层模式下,大量用户必须访问同一个应用源地址,才能在日常繁杂的应用维护中,减少维护的成本。这样,就在所有的应用服务器和客户端之间,加上了负载均衡,这种网络服务器。它通过SNAT发布的虚拟地址,满足了上面的需求。
但同时,也将客户与应用服务器的直接对话,替换成了,负载均衡服务器与客户端,和负载均衡服务器与应用服务器段的通话。
在客户端访问负载均衡的虚拟地址的时候,通过网络的三次握手协议建立连接。
在负载均衡确认了客户端的真实性后,负载均衡再与应用服务器,也是通过网络的三次握手协议,建立连接,将应用服务器作为负载均衡的服务器池成员。再将客户端的数据转发到应用服务器。
这个看似满足解决了当下所有应用需求的方案,也存在的些不确定。
2022年9月5日-10月24日(北京时间),我们正在举办🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)!投票截止至10月23日,你的支持与喜爱,是作者获得“开发者社区奖”的关键!如何为你喜欢的作品投票呢?
第十一章 CSP 架构 - Web Application Settings
Special Case: DeepSee
对于使用 DeepSee 的 Web 应用程序,它需要访问 %DeepSee 包中的所有类。要使特定应用程序能够使用 ,请在 命名空间中使用以下命令:
Do EnableDeepSee^%SYS.cspServer("/csp/webapp/")
其中 是带有斜杠的 应用程序名称。前面的命令等价于以下命令:
Set ^SYS("Security","CSP","AllowClass","web-app-name","%DeepSee.") = 1
Set ^SYS("Security","CSP","AllowClass","web-app-name","%CSP.UI.Portal.About")=1
其中 是带有尾随冲突的 Web 应用程序的名称。请注意,第一行使用 。有一个尾随句点。
或者,要使所有应用程序都能使用 ,请使用以下变体:
Do EnableDeepSee^%SYS.cspServer(0)
例如,要启用 /csp/webapp Web 应用程序以使用 ,请使用以下命令:
要禁止特定 应用程序使用 DeepSee,请使用以下命令:
编辑 应用程序设置
可以在管理门户的编辑 应用程序页面上创建或修改 如何处理特定
第十章 CSP 架构 - Category
Category: AllowPrefix
如果应用程序依赖于调用以同一组字符开头的多个类或包,请使用AllowPrefix选项。
重要提示:如果应用程序依赖于调用上面列出的以外的任何类,则使用它可能是不安全的。建议确定是否需要调用此类,并为部署执行风险评估,以便了解使类可用的含义。
要使给定的Web应用程序能够调用以相同字符集开头的类或程序包,请在命名空间中使用以下命令:
Set ^SYS("Security", "CSP", "AllowPrefix", "web-app-name", "prefix") = value
其中
Web-app-name是Web应用程序的名称,后跟一个尾随斜杠。
要使所有Web应用程序都能使用给定的类或包,请将web-app-name指定为;在这种情况下,可以省略括起来的引号。
-
前缀是名称的前几个字符。
-
值为
1或0。
如果将其指定为1,则Web应用程序可以调用这些类(或包)。
如果将其指定为,则此Web应用程序无法调用这些类(或包)。
例如,要使应用程序能够调用整个包,请使用以下命令:
请注意,前缀是 ,前缀中的句点表示应用程序无法访问等包。但是,应用程序可以访问包和。
再举一个例子,要使所有应用程序都能够访问以开头的所有包,请使用以下命令:
再举一个例子,假设 应用程序应该能够访问 % 包中除类
本篇文章使用的InterSystems IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
Mysql ODBC 和 JDBC 驱动版本:8.0.28
使用ODBC 网关连接mysql
- 下载MySQL驱动安装包: https://downloads.mysql.com/archives/c-odbc/
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 = numberA + numberB
i operate = "-" d
.s result = numberA - numberB
i operate = "*" d
.s result = numberA * numberB
i operate = "/" d
.s result = numberA / numberB
q result
}
第九章 CSP 架构 - CSP 应用程序设置
CSP 应用程序设置
当 CSP 服务器接收到传入的 HTTP 请求时,它使用本地 CSP 应用程序设置来确定如何处理请求。本节介绍 如何使用 应用程序设置处理 应用程序请求。
启用对 页面的应用程序访问
以下规则管理对页面和类的访问:
- 默认情况下,允许用户应用程序访问以下页面:
- 允许
/csp/sys/应用程序及其所有子应用程序的页面 - 允许使用
isc/studio/templates/和/isc/studio/usertemplates/应用程序的页面
- 默认情况下,允许用户应用程序访问所有非 % 类
- 用户应用程序还可以访问以下类:
%CSP.Broker, ,%CSP.Login, , 被允许- 和 是允许的,有以下附加条件
- 不允许所有其他
%ZEN.*类 - 允许所有其他
%Z*类
- 不允许所有其他
- 允许所有 类
除了检查 应用程序中的设置外,还会检查允许的类。可以通过导航到管理门户上的系统管理 > 安全 > 应用程序 > Web 应用程序来查看和更改应用程序设置。因此,类引用必须通过两组测试才能被允许。
要允许访问其他类,请在 命名空间中配置 ,其中 是 、 或 。以下部分描述了这些选项
重要提示:首先应用默认规则,然后按列出的顺序应用类别来完成检查。此外,每个关键字都可以被多次调用。
在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秒。
第八章 CSP 架构 - CSP 网关配置
CSP 网关配置
CSP 网关是安装在 Web 服务器上并由其加载的 DLL 或共享库。 网关检测对扩展名为 或 的文件的任何请求,并将它们发送到定义的 服务器进行处理。
CSP 网关管理器
可以使用 网关管理器( 网关管理页面)或直接编辑其配置文件 csp.ini 来配置 网关。
网关管理器是一个小型 应用程序,可以在浏览器中使用它。您可以通过导航到系统管理 > 配置 > CSP 网关管理来访问 网关管理器。默认情况下,它会访问专用 服务器的 网关管理器。
要访问生产 服务器的 网关管理器,请根据需要通过替换 或 localhost:<port_no> 来更改 。
有关配置 网关的信息,请导航至系统管理 > 配置 > CSP 网关管理,然后单击帮助。有关更多详细信息,请参阅 网关配置指南。
注意:CSP Web 网关管理页面的本地化仅基于安装的 的内容(如果有)。如果不存在本地化文件,则 管理页面默认使用嵌入的英文文本。浏览器的语言设置对此机制没有影响。
定义服务器访问
注意:为防止运行时错误,对于通过 运行的高可用性配置, 建议使用启用了粘性会话支持的硬件负载平衡器。
可以定义此 网关可以访问的服务器列表(可能运行 CSP 应用程序的
访问了一个API,得到的返回结果里面有个时间字段,现在返回的格式是这样的 “2022-09-30T07:24:57.899Z”, 怎么样能转换成 YYYY/MM/DD hh:MM:ss的格式
最近一些用户问到监控集成平台业务行为查询的问题,例如如何查询服务的平均耗时、发生错误的服务数量...
业务行为监控对于集成平台来说非常重要,可以帮助我们:
- 监控系统健康情况 — 查看系统性能表现。例如发现队列积压和长耗时的消息处理,都可能是性能问题的表现。
- 排查异常 — 通过查看业务行为数据,帮助我们判断特定的业务组件配置是否是造成性能瓶颈的主要原因。
- 做业务规划 — 通过业务行为数据,了解各个业务量变化情况,并辅助我们做业务规划。
- 做硬件规划 — 通过长期跟踪消息吞吐量的变化了解性能的变化和业务量的增长,进而辅助我们做硬件计划,避免出现在性能问题。
仅提供这些查询是很容易的,但要更好地监控集成平台的业务行为,需要更深入的了解InterSystems集成架构。
InterSystems集成架构
无论Ensemble、Health Connect还是InterSystems IRIS,它们都具有下面的集成架构:
通过业务服务向外发布服务、通过业务操作连接第三方接口、通过业务流程协同业务操作,它们统称为集成业务组件。可以简单理解为业务行为是由这些业务组件完成的:
- 业务服务 = 服务,它启动一个业务流程;
- 业务操作 = 接口,它通过接口操作第三方业务系统;
- 业务流程 = 流程,它控制一笔业务需要按什么流程调用哪些接口。
第七章 CSP 架构 - URL 的 Web 服务器配置
URL 的 Web 服务器配置
提供了一个默认的 /csp 虚拟目录来运行 应用程序。如果正在运行多个 Caché 实例,它还提供了一个默认虚拟目录 以供使用。如果正在运行多个 实例并使用虚拟目录 访问 应用程序,而之前没有 /,它将访问最后安装的 版本。如果计划允许使用以 http://localhost/csp 或 http//localhost/cacheinstance/csp 开头的应用程序路径调用所有 应用程序,则无需在 Web 服务器中进行任何更改配置。
如果要创建一个应用程序路径不是以 或 开头的 CSP 应用程序,则需要在 服务器配置文件条目中进行更改,别名 。
下表显示了需要更改的配置文件。
| 网络服务器 | 配置文件 |
|---|---|
Apache、HP 安全网络服务器 |
UNIX®: Windows: |
| 如“在 服务器上配置新 ”中所述定义虚拟目录。 |
下表显示了使用 服务器和 实例的组合访问 页面的示例:
| URL | web server | Instance |
|---|---|---|
| http://localhost/cache20071/csp/samples/menu.csp | public |
*** Recovery started at Wed Sep 28 08:14:28 2022
Current default directory: d:\dhc\devsoftware\ensemble\mgr
Log file directory: d:\dhc\devsoftware\ensemble\mgr\
WIJ file spec: d:\dhc\devsoftware\ensemble\mgr\CACHE.WIJ
Recovering local (d:\dhc\devsoftware\ensemble\mgr\CACHE.WIJ) image journal file...
Starting WIJ recovery for 'd:\dhc\devsoftware\ensemble\mgr\CACHE.WIJ'.
0 blocks pending in this WIJ.
第六章 CSP 架构 - 静态文件
静态文件
数据库服务器为所有 CSP 提供服务。 数据库服务器还可以通过 CSP 网关为 Web 应用程序提供任何类型的静态文件。在标准 应用程序中, 服务器通常提供静态内容。要在 上运行 应用程序,必须配置 服务器以允许服务器通过 网关提供所有静态文件。
注意:要运行基于 Zen 的应用程序,请启用“服务文件”选项并配置 Web 服务器以允许 服务器提供静态文件。然后 框架将能够提供依赖图像和 帮助文档。
指示字符编码
引擎通过流服务器以与主流 Web 服务器一致的方式处理静态文件,以确定 文件的字符编码。
现代惯例是将所有 文件标记为 的 ,并且确保页面上使用的所有 文件都是这种情况。
以这种方式标记的 文件:
- 如果文件包含 (字节顺序标记),浏览器会自动检测到这一点并使用正确的字符集来读取它。
- 如果该文件不包含 ,则浏览器假定该文件是 。
如果需要覆盖此行为以指定 JavaScript 文件的字符集,请将全局 设置为列表值 。例如,
SET ^%SYS("CSP", "MimeFileClassify", "JS") = $listbuild("text/javascript", 0 ,"ISO-8859-1")
第五章 CSP 架构 - 组件,信息流
CSP 组件:Web 服务器、CSP 网关、 服务器
使用三个软件组件: 服务器、CSP 网关和 服务器(在 服务器上运行):
CSP组件
服务器和CSP服务器可以由一台或多台计算机实现。在开发过程中,所有三个组件(Web 服务器、 网关和 服务器)可能都位于一台 上。在大规模部署中,可能有多个 服务器和 服务器采用两层或三层配置。
这些组件( 服务器、 网关、 服务器)视为各有一个。它将 描述为好像只提供 页面,尽管 也可以提供 页面,以及其他文本格式和二进制格式,例如图像。
每个组件的作用
服务器是一个软件实用程序,它执行以下操作:
- 接受传入的
HTTP请求,通常来自浏览器 - 检查权限
- 可以提供静态内容
- 向
CSP网关发送对 内容(以 或 结尾的 )的请求
CSP 网关是一个共享库、一个 文件或一个 脚本。它执行以下操作:
- 确定将请求发送到哪个 服务器。
- 将请求发送到正确的 服务器。
- 维护与 服务器的连接(以避免必须不断打开新连接)。
服务器是一个运行在 服务器上的进程,专门用于处理来自 网关的请求。它执行以下操作:
- 接收应用程序的 请求
- 检查应用程序配置设置(在管理门户中设置并保存在 文件中)。
第四章 Caché 服务器页面简介 - 通过 html 创建 csp 页面
创建基于 HTML 标记的 CSP 页面
要使用 HTML 文件创建 页面,请执行以下操作:
- 启动
Studio并选择File>New> > 。 - 将新 文件的内容替换为以下内容:
<html>
<body>
<b>Hello, World!</b>
</body>
</html>
- 选择文件 > 保存。
- 在显示的另存为窗口中,双击默认
CSP应用程序csp/user。 - 输入文件名
Hello.csp并单击另存为以保存文件。 - 在 窗口中,选择查看 > 网页。
与前面的示例一样,会看到 显示在浏览器中。
CSP 应用程序可以由单个 页面或一组页面组成。 CSP 应用程序作为一个单元,使用适用于整个应用程序的设置。系统提供 作为默认的 应用程序。
还可以使用文本编辑器或 编辑器创建 文件。将此文件作为 Hello.csp 保存在本地目录 中(其中 是安装 的位置)。
页面的工作方式如下:
- 浏览器向本地 服务器发送 请求
- 服务器将此请求传递给 网关(连接到 服务器), 网关又将请求传递给 服务器。
- 服务器查找文件 ,并将其交给 编译器。
- 编译器创建一个名为 的新类,该类具有写出 文件内容的 方法。 (它实际上生成一组方法,每个方法依次从
第三章 Caché 服务器页面简介 - 通过 cls 创建 csp 页面
创建第一个 CSP 页面
本节介绍如何以两种不同的方式创建 Hello, World CSP 页面:
创建基于类的 CSP 页面
通过创建 的子类并覆盖其 OnPage 方法来创建 页面。通过此方法写入主设备的任何输出都会自动发送到 浏览器并显示为网页。
- 打开
Studio - 选择 File > New Project 在本地数据库
USER命名空间中创建一个新项目。 - 在向导的第一页上,输入 作为包名,并输入 作为类名
- 在第二页上,选择
CSP作为类类型。 - 单击完成。可以在 类编辑器中看到新的
CSP类定义:
- 在
OnPage方法中,替换注释:
; To do...
使用 语句:
- 使用 Build > Compile 保存并编译新类。
- 选择视图 > 网页。
会在浏览器中看到 Hello, World 。
这个 页面也是一个 应用程序,其工作原理如下:
-
浏览器向指定命名空间中的本地
Web服务器发送对Test.Hello.cls的请求。 -
服务器将此请求传递给 网关,
CSP网关将请求传递给 服务器。在我们的例子中,浏览器、 服务器和 应用程序服务器都运行在同一台机器上。在实际部署中,这些可能位于不同的机器上。 -
服务器查找名为 的类并调用其
第二章 Caché 服务器页面简介 - 你应该知道
你应该知道什么
要高效使用 CSP,应该熟悉以下内容:
-
Caché objects and ObjectScript -
HTML -
JavaScript
CSP Samples
Caché 附带一组示例CSP 页面。要查看这些:
-
打开
-
要查看 示例,请确保计算机上的 Web 服务器正在运行。
-
启动浏览器并转到
CSP示例菜单(使用位于以下位置的私有Web服务器:http://localhost:57772/csp/samples/menu.csp或位于以下位置的外部Web` 服务器:http://localhost /csp/samples/menu.csp 。 -
如果安装的 具有正常或锁的安全功能,则可能会显示登录页面。如果是这样,请登录。
-
显示示例 页面的列表以及每个页面的简短描述。单击感兴趣的任何内容。
文档
可以在此处找到有关 的文档:
- 使用 描述了如何创建 页面
- 使用 ZEN 描述了如何使用
ZEN,这是一个在 之上工作的包,用于使用预构建的页面对象进行更快速的Web应用程序开发。 文档包括使用 组件、开发 应用程序和使用 报告。 - ,对所有 标签的引用
CSP示例菜单,显示了许多 页面示例。- 服务器页面快速入门教程让入门。
Hi Developers,
嗨,各位开发者们:
各位都知道,Python是一个庞大而强大的生态系统,包含了成千上万的库和包,特别是在数据科学方面。
因此,我想首次尝试使用IRIS最近的一项功能--嵌入式Python,简单地导入一个名为datetime的Python库,生成带有时间戳成分的数据,并在InterSystems IRIS for Health Data Platform中持久化。同样的方法在IRIS数据平台上也可以使用。
第一章 Caché 服务器页面简介 - 什么是CSP
Caché Server Pages (CSP) 既是用于构建交互式 CSP 应用程序的架构又是工具集。 CSP 技术允许构建和部署高性能、高度可扩展的 应用程序。 允许动态生成网页,通常使用来自 数据库的数据。 “动态”意味着每次从最近更改的数据源请求同一页面时,它可能会提供不同的内容。
用途广泛。它可以
- 显示每分钟都在变化的库存数据。
- 支持拥有数千名活跃用户的网络社区。
- 根据存储在
Caché数据库中的用户信息个性化页面。 - 根据不同用户的要求和安全权限,根据用户数据为不同用户定制页面。
- 提供
HTML、XML、图像或其他二进制或文本数据。 - 提供快速性能,因为它与高性能 数据库紧密耦合。
非常适合数据库应用程序。除了提供对内置 数据库的快速访问之外,它还提供了许多基于 Web 的数据库应用程序必不可少的功能,包括
- 会话管理
- 页面认证
- 能够从网页中执行交互式数据库操作。
支持两种风格的 开发。
- 为了使用类开发应用程序,
CSP提供了一个对象框架。 - 为了使用 文件开发应用程序,
CSP提供了一种基于 的标记语言,允许在网页中包含对象和服务器端脚本。可以在一个应用程序中结合这两种技术以获得最大的灵活性。
CSP 和 Zen
是一个应用程序框架,用于快速创建包含在 和 中的数据丰富的
如何获得Business Process 的message header信息?
用扩展函数可以获得每条message的session ID ,进而获得message header的信息,不使用扩展函数可以取得message header的信息吗?
[toc]
第四十六章 功能跟踪器收集使用统计信息
作为 不断努力改进其产品以满足客户需求的一部分, 在 IRIS® 数据平台中包含一个名为 Feature Tracker 的软件实用程序,该软件实用程序收集软件模块使用情况的统计数据。本主题介绍特征跟踪器。
为什么 InterSystems 收集统计数据
Feature Tracker 收集的统计数据记录软件模块是否存在并在给定的 实例中使用。 Feature Tracker 每周通过 将此信息发送给 。这些统计数据有助于 规划开发和支持。
收集的信息不包括任何应用程序数据。
日志在哪里
如果 成功发送数据,它会更新 目录中的 文件。此文件包含已发送数据的 格式副本。每个条目具有以下形式:
如果 无法发送数据,它会再尝试几次。如果仍然不成功,它将停止尝试并在下一个定期安排的时间再次尝试。
IRIS 使用成功和不成功的尝试更新消息日志文件 。显示成功发送的条目具有以下形式:
显示尝试发送失败的条目具有以下形式:
mm/dd/yy-hh:mm:ss 1 %SYS.Task.FeatureTracker failed to transfer data
传输的数据包括编码的许可证密钥和主机名,以及实例 。
收集了哪些统计数据
记录是否启用了以下软件功能:
-
BitTrakCare
我有一个xsd文件,它定义了xml的结构,现在别人要传给我xml,我想通过它验证xml结构是否正确,这个在m里面是怎么使用的?
How to obtain the user's operation permission on the database,
How to obtain the user's operation permission on the class
