注意文章中的提示:
1. $$$JRNNEWVAL(Address) 、$$$JRNOLDVAL(Address)`这2个宏定义在%syJrnRecord.inc文件里,因此需要将这个include文件加入ZCustom.MirrorDejournal类定义:Include %syJrnRecord
2.在InterSystems IRIS上修改并编译dejournal过滤器类后,需要重启异步镜像成员的Mirror,以使更改生效。
- Log in to post comments
注意文章中的提示:
1. $$$JRNNEWVAL(Address) 、$$$JRNOLDVAL(Address)`这2个宏定义在%syJrnRecord.inc文件里,因此需要将这个include文件加入ZCustom.MirrorDejournal类定义:Include %syJrnRecord
2.在InterSystems IRIS上修改并编译dejournal过滤器类后,需要重启异步镜像成员的Mirror,以使更改生效。
可以通过Ens.Config.Production 的 %OpenId 方法打开现有的Production,
新建一个Ens.Config.Item的对象,该对象对应于Production界面中的各个组件(BusinessHost)
再使用production.Items.Insert方法将该Item对象插入到现有Production中,就可实现使用代码的方式创建Production 的 BusinessHost。
同时可以通过创建Ens.Config.Setting的实例以及设置相关属性的方式,对创建的BusinessHost中的配置在代码中进行设定,比如设定加载BO的URL、凭据等。
#Dim businessHost as Ens.Config.Item = ##class(Ens.Config.Item).%New()
#Dim setting as Ens.Config.Setting = ##class(Ens.Config.Setting).%New()
#Dim production as Ens.Config.Production = ##class(Ens.Config.Production).%OpenId("MyPkg.DemoProduction")
Set setting.Name="WebServiceURL"
Set setting.Value="http://localhost:52773/MyWS/Demo.Test.cls"
Set businessHost.ClassName="MyPkg.Operation.HISWSOperation"
Set businessHost.Name ="HIS web 服务"
Set businessHost.Production = production
Do businessHost.Settings.Insert(setting)
Do production.Items.Insert(businessHost)
Set tsc = production.%Save()USER>set file="box.xml"
USER>set sc=$system.OBJ.Export("box.GBL",.file)
Exportieren in XML gestartet am 06/08/2021 11:46:58
Exportiere Global: ^box
Export erfolgreich abgeschlossen.
USER>$type box.XML
<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25" zv="IRIS for Windows (x86-64) 2021.1 (Build 209U)" ts="2021-06-08 11:46:58">
<Global>
<Node><Sub>^box</Sub>
<Node><Sub>1</Sub>
<Node><Sub>1</Sub>
<Data> </Data>
<Node><Sub>0</Sub>
<DataBase64>G1syOzRI
</DataBase64>
</Node>
<Node><Sub>1</Sub>
<Data>1</Data>
</Node>
<Node><Sub>2</Sub>
<Data>...456..9</Data>
</Node>
</Node>
<Node><Sub>2</Sub>
<Data> </Data>
<Node><Sub>0</Sub>
<DataBase64>G1syOzEwSA==
</DataBase64>
- - - - removed -------
</Node>
</Node>
<Data> </Data>
USER>我在 IRISHealth_Community-2020.1.1.408.0-win_x64 安装版本中可以看到该%Service_Telnet服务
注意服务名称前有%
.png)
在正式环境中不建议使用该适配器。
该适配器仅用作参考和测试,不做正式提供SOAP服务使用。
SOAP 的 URL中一定会出现类名没法去掉。在Ensemble production的BS中不一定出现类名。
一般由 Ensemble 生成的Soap 服务的 URL 地址有下面几个部分组成:
http(s)://DomainName:port/web application name/bs类名.cls组成
前面域名端口由提供服务的服务器地址以及web server决定.
web application name可以在SMP的菜单:系统管理 -- 安全 -- 应用程序 -- web 应用程序中设置
bs类名为创建包含web method 的类的类名。在将类添加到Ensemble 的 BS中时,默认服务名为类名。如果你手动设置了服务名称,则需要在soap url中使用 CfgItem 参数来指明. 例如:http://Myserver/MyApplication/MyClass.cls?CfgItem=MyServiceName
请参考下面资料检查是否符合运行需求以及相关配置是否正确:https://docs.intersystems.com/irisforhealth20201/csp/docbook/Doc.View.c…
其中的检查包括JDK版本、安装时的选项、服务%Service_CallIn是否打开以及环境变量CLASSPATH 的设置
为了方便的将FHIR转化为SDA3的格式,可以直接添加HS.FHIR.DTL.Util.HC.FHIR.SDA3.Process 到 Production配置界面中的流程部分,而不需直接调用DT。
更详细内容请参考:https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View…
不知您测试使用的具体是IRIS哪个版本,以及运行在哪个操作系统上。
还有提到的客户端使用的是哪个IRIS版本。低版本的客户端没法连上高版本的IRIS服务端,Caché客户端更加连不上IRIS的服务器。
%Service_Telnet 在菜单 系统 > 安全管理 > 服务 中查看
PS. 远程terminal仅用于windows作为服务端操作系统使用,如果再linux/rh请使用ssh远程登录
请您提供CDS 文件示例,我实在不知道CDS文件是什么。
问题需要您提供JDBC 日志以供研究所用。
如何打开日志请参考文档 https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.U…
不知你用的什么版本的产品,如果是2019.3.0之前的版本,需要手动在HTTP header中设定content-length
可以参考下面代码
ClassMethod GetGenericMessage(request As %String) As %Status
{
set status = $$$OK, kb = "ENSEMBLE"
set url = "rdr/interpreter/query?kbcode="_kb
/// Get the message from Antrim
set stream = request.StreamGet()
set xStream = stream.Read(3500000)
$$$TRACE("*****Stream String: "_xStream)
set contentLength = $length(xStream)
$$$TRACE("*****Length "_contentLength)
/// Set the headers for posting orders/results to CDS.
set tRequest=##class(EnsLib.HTTP.GenericMessage).%New()
set headerA=##class(%ArrayOfDataTypes).%New()
do headerA.SetAt("POST","httprequest")
do headerA.SetAt(url,"url")
do headerA.SetAt("gzip","accept-encoding")
do headerA.SetAt("Mozilla/4.0 (compatible; Cache;)","user-agent")
do headerA.SetAt(contentLength,"content-length")
do headerA.SetAt("application/json","content-type")
set tRequest.HTTPHeaders = headerA
$$$TRACE("*****tRequest: "_tRequest)
set tRequest.Stream = stream
quit tRequest
}如果是2019.3或者之后的版本,HTTP header会自动设定content-length的值。
请注意在下面命令中的第四个参数需要以/开始,以及以/结束
set ^SYS("Security","CSP","AllowClass","/miproyecto/ws/","%SOAP.WebServiceInfo")=1
set ^SYS("Security","CSP","AllowClass","/miproyecto/ws/","%SOAP.WebServiceInvoke")=1
可参考文档:https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.U…
使用其他三方工具使用这个jdbc连接sqlserver2008 有问题吗?
目标服务器是不是还装有其他低版本的sqlserver, sqlserver2008 使用的是1433端口吗?
最后还是建议参照上面的连接,收集jdbc log,之后把这个日志发给我们, 会给出详细分析。
请从Nginx官网:nginx.org 下载,InterSystems不提供nginx 下载。
文中提到的文件可以在InterSystems IRIS 安装目录的 \dev\csp\nginx 文件夹下找到。
可以做以下尝试:
如果以上都没有问题,可以参考文档 https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…,里面关于JDBC Log部分的章节,收集Log 信息,以进一步确认问题的原因。
一般使用View ID (%VID) 实现,详细内容请参考下面文档
https://docs.intersystems.com/iris20191/csp/docbook/DocBook.UI.Page.cls…
有关社区系统使用问题请发邮件给 AppServicesSupport@InterSystems.com。
你好, 如果这个问题发生在生产环境,请联系WRC:support@intersystems.com,将会提供补丁或者升级建议。
如果问题是在测试或者开发环境中出现,建议在产品的最新版本下进行。
你好,
请参考在Openexchange中发布的例子:Example of InterSystems IRIS with external Apache and WebGateway( https://openexchange.intersystems.com/package/iris-webgateway-example)