Laptop - Windows 11
AMD workstations - Windows 10 Home (official OEM, with fresh updates)
- Log in to post comments
Laptop - Windows 11
AMD workstations - Windows 10 Home (official OEM, with fresh updates)
I know about messages.log, but in my case it's pretty short (~2kb) and contains no useful trace info :( There are workarounds with Docker and VMs, both approaches work
Great, thanks a lot, works perfectly!
UPD1: launched the installation package via the "Run as administrator" menu item. Now the messages.log file contains the following diagnostics info:
- on Ryzen 3900 - the processor has too many cores which is not allowed by Community edition license
- on Athlon 3000G the error message is less informative: `11/06/22-01:06:28:788 ( 5200) 3 irisctl.dll (error during startup):(289) IRIS failed to start. IRIS Control Process terminated abnormally (exit code = 0).`
Thanks but I doubt it's a license issue. The IRIS installer creates another log in C:\Windows directory, and it also contains no useful information. At some point the installation process just hangs as well as the log file stops growing.
I have ended up with Hyper-V and Ubuntu but thanks ![]()
I'm using Postman, the default Accept header value was */*, then according your advice I tried application/json, then application/fhir+json, both not working, IRIS still produces HTML
<div id="content">
<div class="content-container">
<fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset>
</div>
</div>
Thanks, I caught your idea but no, IIS is not a cause, although the issue exists in Windows but not in Linux
Great answer! And yes, I badly need that for testing!
I need to find a reason of a performance bug in the source code of the original class :)
Finally, I've implemented the following brute solution. I don't like the look of this at all, but it works
ClassMethod test() As %Status
{
#dim request as %CSP.Request
set request = %request
#dim headerName as %String
set headerName = ""
set headerName = request.NextCgiEnv(headerName)
while (headerName '= "") {
if $find(headerName, "HTTP_") '= 0 {
set localHeaderName = $replace(headerName, "HTTP_", "")
set localHeaderName = $replace(localHeaderName, "_", "- ")
set localHeaderName = $zconvert(localHeaderName, "L")
set localHeaderName = $zconvert(localHeaderName, "W")
set localHeaderName = $replace(localHeaderName, "- ", "-")
write localHeaderName, ": ", request.GetCgiEnv(headerName), !
}
set headerName = request.NextCgiEnv(headerName)
}
return $$$OK
}
Here it is:
Class MyHL7HTTPService Extends EnsLib.HL7.Service.HTTPService
{
Method OnAdapterHTTPResponse(
ByRef pStatus As %Status,
ByRef pHTTPResponseStatus As %String,
ByRef pBodyLen As %Integer,
ByRef pResponseBodyStream As %Stream.Object,
ByRef pMainResponseHeader As %String,
ByRef pHeaderExtra As %String)
{
set pHeaderExtra = pHeaderExtra _ "Access-Control-Allow-Origin: *"_ $char(13) _ $char(10)
_ "Access-Control-Allow-Headers: *" _ $char(13) _ $char(10)
_ "Access-Control-Allow-Methods: *" _ $char(13) _ $char(10)
}
}
Thanks Robert.
> args = number of params
Arrays in IRIS are counterintuitive 😥
Got it! Now I'm struggling with adding a value to that array. Would it be correct?
set arr(arr + 1) = value
Perfect, thanks a lot
If you want to modify the response produced by your service, perhaps this will work: https://community.intersystems.com/post/enslibhl7servicehttpservice-ena…
PS the original post is two years old
> What parameter are you trying to change?
My subclassed Transform calls some external web service and I want to allow a user configure that web service settings (url-port-ssl-etc) by clicking on the business process <transform> element. Also, it is crucial that such a transformation cannot be delegated to BO. So anyway, thank you, it is fine if I move settings to BP, but it is not that elegant :(
I'm a very beginner :) but personally I would not recommend such an approach. That "syntax sugar" will only discourage people who come from the world of Java and C#.
Ended up with a compromise 😊 Just replaced <transform> with a <call> and delegated that transform to BO
It seems to me that I found the answer (was googling for two hours and found nothing, then used forum search and voila):
Class My.Production Extends Ens.Production
{
XData ProductionDefinition
{
<Production Name="My.Production" TestingEnabled="true" LogGeneralTraceEvents="true">
<Description></Description>
<ActorPoolSize>1</ActorPoolSize>
</Production>
}
}
Set isProductionRunning = ##class(Ens.Director).IsProductionRunning("My.Production")
If isProductionRunning = 0 {
Set sc = ##class(Ens.Director).StartProduction("My.Production")
}
Interesting... I'm actively using the Write method, but for emitting console messages using constant strings. Anyway, thanks
Thanks so much! It was not obvious for me that the DebugMode property value is of type integer (looks like boolean)
Thanks a lot Robert. I completely forgot about multiple inheritance 😶
Thanks, got it. Then perhaps this setting can somehow be changed programmatically, in the installer code?
You have to cast your %CharacterStream to a specific implementation, say, to %GlobalCharacterStream. The latter one implements %GlobalStreamAdaptor, which inherits from %AbstractStream and %Stream.Object. Finally, the %Stream.Object class exposes the CopyFrom method which allows you to copy data from your %Stream.GlobalBinary instance (and vice versa)
Thanks a lot!
In short, I failed.
1. This requires installing pip3 on Unix and you'll need to be su
2. If you want to reference npm libraries, you'll need to be su (although technically it's possible to place JS library/libraries code in the XData section(s))
3. The most annoying thing is that most JS libraries are asynchronous and that's a dead end
Thanks Robert, I've read this article, but the syntax isn't entirely clear to me:
Select ID,Company from rcc_IC.ItemList
Where FOR SOME %ELEMENT(rcc_IC.ItemList.Items) ($list(%Value,3) in ('blue','yellow'))
Here the integer is used, but I need to search using a named property
The option with $LIST(...) works, thanks again (not so elegant though but OK as a workaround). I'm thinking about registering a feature request.
I'm sorry for the false alarm. I've increased the FHIR server "Max Search Results" option value so now everything works fine.
Hi Tani, in most cases the stream contains JSON. The container definition looks like:
Class MyRequest Extends (Ens.StreamContainer, %JSON.Adaptor) { }
I just want the stream content to be rendered always