go to post Dmitry Maslennikov · Feb 25, 2022 Yeah, I've replaced %Library.GlobalCharacterStream with %Stream.GlobalCharacterStream, solved the main issue, but was a cause to another issue, with storage format, they are not compatible, any new data is ok, but all the previously saved data became unavailable, but it's possible to fix its storing. In my case that change was worth it.
go to post Dmitry Maslennikov · Feb 21, 2022 I have a system on Caché, which has about 100TB of data in it, with a couple of thousands of concurrent users. And it's ECM system, which in fact has no developers support for some time, but still able to be modified, as it's kind of low-code system, where all the forms can be configured with UI, all the processes and document's conventions as well, and it has integrations with many other systems. So, probably it can be proof that InterSystems is good enough for such cases.
go to post Dmitry Maslennikov · Feb 11, 2022 $system.OBJ.OpenId(class,id) $classmethod(class,”%OpenId”,id)
go to post Dmitry Maslennikov · Feb 10, 2022 I have not played with the Foreground feature before, but, I tried to do it right now, and it looks like, you can just publish port 63300 when you run the container, so, your host's telnet client will be able to connect to the Foreground port. If you wish, you can change the port number, by setting it directly to the global Set tPortRangeStart=$G(^Ens.Config("FGTelnetRange","start"),63300) Set tPortRangeEnd=$G(^Ens.Config("FGTelnetRange","end"),63499)
go to post Dmitry Maslennikov · Jan 30, 2022 I found only this way when it's working. __name__ will have current classname Class User.Test { ClassMethod SomeMethod() As %String { quit "test" } ClassMethod PTest() [ Language = python ] { import iris print(iris.cls(__name__).SomeMethod()) } }
go to post Dmitry Maslennikov · Jan 24, 2022 %ToJSON has three ways. One of the is to output through String, as you did with Write command. In your case you can simply use Do command instead, and it will just output to the current device directly, without collecting it to a limited variable. Or you can do through the stream, passed as a first parameter
go to post Dmitry Maslennikov · Jan 18, 2022 ndjson, is just when a bunch of ordinary JSON separated by a newline in one file So, if you would read that stream with ReeadLine(), and parse each line separately, it should work.
go to post Dmitry Maslennikov · Jan 17, 2022 Ahh, looks like it's just only WSL2 issue. Fortunately, I don't need to use it, and have no way to try it. But looks like there is a solution with PowerShell script here
go to post Dmitry Maslennikov · Jan 11, 2022 Hmm, why do you need to do it with .bash_profile? Why not just set it as a shell, instead of bash And about passwords, the best and only right way in your case is to enable OS-Authentication. In this case users will go inside without a password prompt.
go to post Dmitry Maslennikov · Dec 29, 2021 There are no reasons to have it Studio, instead I would recommend to have a look at VSCode, where is good support for JavaScript and for ObjectScript
go to post Dmitry Maslennikov · Dec 24, 2021 set hr=##class(%Net.HttpRequest).%New() set hr.Server = "server.com" set hr.Location = "method" do hr.InsertParam("name","value") do hr.InsertParam("name2","value2") do hr.Post("",1) And the result USER>do ^test POST /method?name=value&name2=value2 HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;) Host: server.com Accept-Encoding: gzip Content-Length: 0
go to post Dmitry Maslennikov · Dec 10, 2021 Yeah, of course, you can change any class, if it's not a system and not deployed class stored in a read-only database looks like you already know how to generate classes, so, to edit some method, you have to open a particular method by its id, which can be constructed from the class name and the method name. USER>set method = ##class(%Dictionary.MethodDefinition).%OpenId("%Library.File||Exists") USER>write method.Implementation.Size 56
go to post Dmitry Maslennikov · Dec 7, 2021 Found this news, so, probably unqork is a good way to go now.
go to post Dmitry Maslennikov · Dec 7, 2021 Well, Axure, is just a prototyping tool. And it does not have anything that would help to create something production-ready, with any kind of backend at all. It would be probably ok for designers to create some prototype of the application, or probably make something working, but only if no database is needed at all, such as a landing page. So, I don't think that this tool could be considered in this role
go to post Dmitry Maslennikov · Dec 7, 2021 The most important thing you have to understand first, that when you use containers-way for running your application (and Docker here is just one of the ways, to run containers). You have to remember, that container should be as simple as possible, and do just only one thing. So, it means, that your NodeJS application, should run in a separate container, even if it connects to IRIS, it still has to be run separately and connected to IRIS over TCP. So, you can use any official Debian-based NodeJS image, put InterSystems NodeJS driver in it, as well as your application, and run it. And your IRIS will run in a separate container, no matter which version.
go to post Dmitry Maslennikov · Dec 7, 2021 Ahh, did not notice you using x86_64 version, you need arm64 version, and it will be another image store/intersystems/iris-community-arm64:2021.1.0.215.3
go to post Dmitry Maslennikov · Dec 3, 2021 It would not be safe to clean just everything there, on the fly. Alive processes may have expected some data in there. The best way to solve it, to keep it cleaned well. You should try to figure out which globals have a bigger size. And if it's are part of your app, you may try to figure out which one could be cleaned safely and at what time.