go to post Dmitry Maslennikov · Nov 6, 2019 Depends on the OS, you can also try to do the same outside of Caché, just to test it.
go to post Dmitry Maslennikov · Nov 6, 2019 where database installed, or in case of ECP where user's code executed
go to post Dmitry Maslennikov · Nov 6, 2019 You should check it in the OS, which you use. If it is a Linux, you can use the command lsof. For Windows, I don't know how to find it.
go to post Dmitry Maslennikov · Nov 4, 2019 Unfortunately, InterSystems officially does not offer how to deal with docker at all. Where articles from, let's say from you or somebody else, with the ways how to do it the Right way. Comments to the repository https://github.com/intersystems/container-tools: 2019.4 already exists and published, but examples still only for 2019.3 ZSTART.XML in XML format. Why so, when it should be MAC file quite arguing the decision, to load code in this place endless loop with goto in the code Dockerfile, with a line longer than screen size. where QuiesceForBundling? InterSystems say how to run InterSystems products with docker, while nothing about running customer's applications on IRIS with Docker. What's happens here is, it is how the community works. I have a problem, I don't want to write to much in my Dockerfile. I wrote a lot of them, for many different projects. I need some universal way, for me. I did it, and I update my own template from time to time.
go to post Dmitry Maslennikov · Nov 4, 2019 You can stop it by interrupting, anyway, but it is not good for the database, it may cause to integrity errors, which may be difficult to resolve.
go to post Dmitry Maslennikov · Nov 3, 2019 Are you sure that you really need it? Yes, you have free space in your database but it will be used when the amount of data stored in this database will grow, so, your free space will become less. I have an article with some visualization, how free-space looks like in a kind of real-life. How Compaction works, it good to read it just to know what expect from those actions. In short Compact, just should move all free blocks to the end of the database. It does not return this space to system, you then should do Truncate. I don't know the way how to measure how much time it will take, it depends on many factors. But you can try run FileCompact method, with quite a small TargetFree, get ActualFree, and with the next time increase TargetFree until you reach desired.
go to post Dmitry Maslennikov · Nov 3, 2019 This error may happen in case if your routine or class, executed but the debugger did not catch any breakpoint. Are you sure that you have a breakpoint set successfully? Could you try how debugger in VSCode-ObjectScript works in your case?
go to post Dmitry Maslennikov · Oct 31, 2019 New look for the documentation it's really great. But also, how about improving search over documentation?
go to post Dmitry Maslennikov · Oct 30, 2019 Multi-line blocks It's actually working. And it's because of code from RUN command goes to chosen SHELL as one line without line endings, \ at the end of the line, is not line ending it is line continuation. So, you can write code in Dockerfile visually like multi-line but it is no so. Error handling Any error in iris session will change exit code, so, any such error will fail docker build anyway. So, with, such lines in my Dockerfile SHELL ["/irissession.sh"] RUN \ write !,"Start",! \ for i=1:1:10 { \ write !,"Test Loop",i \ }\ write !,"Finish",! \ write !, error I will get this Starting IRIS Node: 24032930b1e3, Instance: IRIS %SYS> %SYS> Start Test Loop1 Test Loop2 Test Loop3 Test Loop4 Test Loop5 Test Loop6 Test Loop7 Test Loop8 Test Loop9 Test Loop10 Finish WRITE !,"Start",! FOR i=1:1:10 { WRITE !,"Test Loop",i } WRITE !,"Finis h",! WRITE !, error ^ <UNDEFINED> *error %SYS> ERROR: Service 'iris' failed to build: The command '/irissession.sh write !,"Start",! for i=1:1:10 { write !,"Test Loop",i } write !,"Finish",! write !, error' returned a non-zero code: 1 As you can see, for loop working well, and UNDEFINED error fails to build
go to post Dmitry Maslennikov · Oct 30, 2019 I would rather expect that some kind of irissession.sh was implemented by InterSystems. It is a docker build process, InterSystems already added ##class(SYS.Container).QuiesceForBundling() which in fact I would expect it should be called automatically while IRIS stopping during docker build. I'm against putting all of those container's only lines to Installer manifest, just because of Installer manifests can be used in non-container's environment as well. And those lines need only during docker build. PS. With 2019.4 this line do ##class(SYS.Container).SetMonitorStateOK("irisowner") should not be used (even will give an error), as it is already as part of do ##class(SYS.Container).QuiesceForBundling()
go to post Dmitry Maslennikov · Oct 25, 2019 1. Faster to type (as you said). Every developer should think not only about himself but about the next developer, who will have to read his code. You can type it faster when you use IntelliSense, like in any modern IDE. Like we already have it with VSCode-ObjectScript. It now supports extending commands and functions, and I see the near future when it will be able to extend any old-school code, with dots, or inline do. More compact. Allowing the reader to "see" more of the structure in one go. So, you say that this very compact code, is readable because you can see all code at once? No, no, no, it makes the code completely unreadable. When you put many commands in one line, with one or even more F and D it makes so much pain, to understand what's going on there. And it very fast becomes like a black box, nobody understands how it works, and nobody wants to touch it, just to not break it completely.
go to post Dmitry Maslennikov · Oct 25, 2019 I'm just a developer of this particular tool. If you will be happy you will use it. I'm not from InterSystems, so, I can just recommend it, as a developer and user of own product.
go to post Dmitry Maslennikov · Oct 25, 2019 please fill the issue here with the details of how to reproduce it, so I may help. And you can try the latest not published version here, which you can install manually by command Install from VSIX from the command palette.
go to post Dmitry Maslennikov · Oct 25, 2019 I'm not sure if Atelier will get too much anymore. I would suggest you move to VSCode-ObjectScript extension, which is more useful already by now. Don't hesitate to contact me directly or publicly here, if you have any questions about it.
go to post Dmitry Maslennikov · Oct 22, 2019 // Changes the max-limit on the process memory from the default 16384 Kilobytes set $ZS=49152 It's already 256Mb, since 2012.2
go to post Dmitry Maslennikov · Oct 21, 2019 It's pretty easy to convert from one to the other using the Expand and Compress commands option in Studio. Or Alt+Shift+F in VSCode-ObjectScript
go to post Dmitry Maslennikov · Oct 21, 2019 Don't even try to write code like this Q N R,Q,C,D,E,W,B,G,H,S,T,U,V,F,L,P,N,J,A S N=$G(N),Q='N,F=Q+Q,P=F+F,W=$L($T(Q)) S W=$E(W,Q),S='N_+N,W=W-F*S,L=$G(L),R=$C(Q_F_P),R(F)=$C(F+Q_F),R(P)=$C(W-F) W # S T=$E($T(Q+F),F,W\S)_$C(W+S+F) X T S B=$P(T,$C(P_P),F),C=B\(W*W),D=B-(C*W*W)\W F G=S-Q:F:S+F+Q S E=B-(C*W*W+(D*W)),H=$E($T(Q),G),@H=$S(@H<S:'Q,Q:N)_@H,T=C_D_E F A=Q:Q:W\S S J=$E(T,A),C(F)=$S(J>(F+Q)&(J<(S-F)):Q,Q:+N),C(P)=$S(J#F:Q,Q:+N) D .S C(Q)=$S(J<(S-F):+N,Q:Q),C(F+Q)=$S(J>Q&(J<(S-F))&(J'=(P+'L))&(J'=(P)):Q,Q:+N) .S H('L)=L F S H(N?.E)=$O(C(H('$G(N)))) Q:H('+L)=L S F(A,H('L))=C(H(W[(W\S))) F U=Q:Q:P W !,R F V=Q:Q:P+F W $S(F(V,U):'Q,Q:$C(P_(W\S))) W:'(V#F) $C('N_F_F+F) W !!,R(F)_C_R(P)_D_R(P)_E_R(F) X $RE($E($T(Q),Q+F,P+Q))_R(P)_'N W # G:N=L Q+F Q For sure full commands and functions more readable. Not only for your current developers but for any who will come later.
go to post Dmitry Maslennikov · Oct 15, 2019 Scott, could you please specify, are you going to use Visual Studio or Visual Studio Code. Both are from Microsoft, but completely different products. I know nothing about MS SQL. Visual Studio (not code) does support officially IRIS. There was one project, but already closed. Visual Studio Code or VSCode itself supports GitHub by default very easy, just edit files locally, commit and push changes. VSCode-ObjectScript is my extension for VSCode, adds support for Caché, Ensemble, and IRIS, any versions from 2016.2 (where were added Atelier support). It perfectly supports classes and routines, but if talk about "DTL, Business Process, Schema Editor, and etc" it does not have native support for it, but all of those staff based on classes, so, you can edit it as classes. IRIS itself does not need to have support for GitHub, this task for an editor. How secure is the Source Control if you integrate it with GitHub? What do you mean here? Developers should manually choose what to commit to source control. It is not an automated task.
go to post Dmitry Maslennikov · Oct 14, 2019 BTW, FHIR specs also say to use GET and query parameters. I'm really like the way how REST defined in FHIR.