go to post Robert Cemper · Sep 17, 2020 quick sketch: open file start loop read line split pieces P1,P2 set ^global(p1,p2)="" done
go to post Robert Cemper · Sep 15, 2020 If there are queries hanging around then the mayor impact is just on IRISTEMP or CACHETEMP database that might grow.But it's not worth mentioning just for a query.
go to post Robert Cemper · Sep 15, 2020 with complete I mean something starting with Class.... Extends %Persitent......all Properties, .... until the last line of Storage definition. Just a copy out of Studioactually at least I just see a little bit here, some part there like a puzzle.
go to post Robert Cemper · Sep 15, 2020 Have you ever considered asking ADSC for help ?Do you have some maintenance contract with them as it seems to be their code.?With a COMPLETE class definition and some sample data, it shouldn't be magic.
go to post Robert Cemper · Sep 15, 2020 Typically a %ResultSet is an object. It is destroyed as soon as you de-reference it.This could be a ba killing the referencing variable or by assigning a different value.there is no need for a %Close or an object destructor. this happens implicitely. set rs= ##class(%ResultSet).%New() . . . . ; work it kill rs ; or set rs=""
go to post Robert Cemper · Sep 15, 2020 What you see could be explained best by "model mismatch"Java Gateway connection stays as long as the connecting process exists.While CSP.REST services a request and stops.To avoid repeated connection times you may run some background process as worker jobs that open Java Gatewayand get its requests from your CSP.Rest.As you have Ensemble already, you might run your Java Gateway as a Business Service connecting OnInit() an stay connected.This is of course all asynchronous processing which affects your response time. If you revert it and a Java process is scanning request using Native API for Java I wouldn't expect more attractive timing.
go to post Robert Cemper · Sep 14, 2020 I think you were looking for this: IRIS Native API for ObjectScriptSorry, I wasn't aware of it until a short time before.Thanks for asking!
go to post Robert Cemper · Sep 14, 2020 Is Native API for ObjectScript also included for Bonus Points ?
go to post Robert Cemper · Sep 14, 2020 BIG THANKS to @Dan Pasco for sharing this example: The test is simple - I am running in the 2020R1 instance, namespace USER and there are no classes runnable in this namespace - just a clean, new install. I have several other instances running, all different versions/build numbers. I am testing against my XDBC instance which is currently labeled as 2020.4 (obviously not yet released but the IRIS Native code is essentially the same as in 2020.1). The XDBC instance is listening on port 51780. First, proof this doesn't work locally. USER>write ##class(Sample.Person).CurrentAge($h-35000) WRITE ##CLASS(Sample.Person).CurrentAge($H-35000) ^ <CLASS DOES NOT EXIST> *Sample.Person And then, attempt the same function using the IRIS Native connection to the XDBC instance. USER>set host="localhost",port=51780,namespace="USER",user="_SYSTEM",pwd="SYS" USER>set connection = ##class(%Net.DB.DataSource).CreateConnection(host, port, namespace, user, pwd) USER>set iris = connection.CreateIris() USER>write iris.ClassMethodValue("Sample.Person","CurrentAge",$h-35000) 95
go to post Robert Cemper · Sep 14, 2020 Thank you @Dan Pasco I just did a summary on the Class Ref.I'll take a copy of your reply as an example for the audience.
go to post Robert Cemper · Sep 14, 2020 Hi, @Dan Pasco Since what release does this exist.?It never crossed my way and obviously nobody else reacted to these questions. I found a first trace showing up in Class References of 2020.1 but it is even invisible in IRISlatest docbooks.Big THANKS for uncovering this secret.
go to post Robert Cemper · Sep 14, 2020 some ideas from the hip: classic SOAP service running a background job over ECP having a listening job that triggers whatever you need using WebSocket communications They all run over TCP as there is nothing else between separated servers.At the bottom line, you rely on some code expecting a request."Native API" for various languages, or Studio, or CSP do the same over Super Server Port (1972) the quality is different, not the principle.
go to post Robert Cemper · Sep 14, 2020 IRIS compiles NOW embedded SQL totally different from Caché / Ensemble. (external Class)Before you could run in all kind of problems if your host variables were not %* or declared in the global variable scope.
go to post Robert Cemper · Sep 14, 2020 After a lot of troubles around variable scoping in past I try to avoid embedded SQL wherever possible.
go to post Robert Cemper · Sep 12, 2020 Fully with you.There are so many variants to let talk them to each other. And on the same server there are enough other options.
go to post Robert Cemper · Sep 12, 2020 It's not clear what you mean by "native".This is one option. Background Jobs over ECP.But as IRIS Servers also talk to each other over TCP I don't see any advantage over using a SOAP service or WebSockets or similar.
go to post Robert Cemper · Sep 11, 2020 I have no idea if VSCode can do it???? @Dmitry Maslennikov ???
go to post Robert Cemper · Sep 11, 2020 AHHH!that sort of comfort isn't foreseen.You have to type in the variable names.But you see it when you move the cursor over the variable in the code window as "hoover"-text.The Watch Window is useful if you have objects, or $LB structures, arrays, ... or obj.property. Schönen Abend noch aus Wien.
go to post Robert Cemper · Sep 11, 2020 once your debugger is attached to a process you press ALT+4 /(Watch Window) sorry, have just my German version at hands next you type the variable you want to see and it gets updated at every step see “Using the Studio Debugger.” details Watch Window