go to post Eduard Lebedyuk · Aug 14, 2018 ReadOnly database could be made Read-Write. I assume developer has complete access to Cache and underlying OS.meta data of class definition is included in the read only databaseIt is.
go to post Eduard Lebedyuk · Aug 13, 2018 I don't have a %request.Checked again and my suggested approach only works on production start, not host start, sorry.I have a function which actually run "write $USERNAME" and if I run it from Studio returns the username!$username returns current user, which for Ensemble job is correctly _Ensemble. You can try to query audit database for that info I guess.
go to post Eduard Lebedyuk · Aug 13, 2018 Username would be _Ensemble because Ensemble switches users.Tried OnInit, available context is not enough there: Method OnInit() As %Status { break } And here's the break: break ^ <BREAK>zOnInit+1^Demo.Workflow.WFMetric.1 ENSDEMO 7e1>zw %Ensemble("ArchiveFlags")="" %Ensemble("ArchiveFlags","Demo.Workflow.WFMetric")="" %Ensemble("ArchiveFlags","Demo.Workflow.WFMetric","iCfg")=0 %Ensemble("Config","%ModIndexFlag")=1 %Ensemble("ConfigName")="Demo.Workflow.WFMetric" %Ensemble("Debug","TraceCat","My Terminal Output")=0 %Ensemble("Debug","TraceCat","My Terminal Output","user")=1 %Ensemble("Debug","TraceCat","user")=1 %Ensemble("DoTrace")=2 %Ensemble("JobKey")=10548 %Ensemble("LogSystemTrace")=0 <Private variables> Thought about $zparent but it didn't help too: ENSDEMO 7e1>w $system.Process.UserName($zparent) CSP Gateway
go to post Eduard Lebedyuk · Aug 13, 2018 set c=##class(%Dictionary.ClassDefinition).%OpenId("Deployed.Class") set c.Final=0 write c.%Save() And after that compiling subclasses would be possible.
go to post Eduard Lebedyuk · Aug 13, 2018 Deploying does not prevent user from removing Final keyword.Deploying only prevents user from easily modifying source code.
go to post Eduard Lebedyuk · Aug 13, 2018 Final keyword can be removed and the class extended.To clarify, I want to deploy a class that the user would be unable to extend while having access to the system.
go to post Eduard Lebedyuk · Aug 13, 2018 As I saidthey are not as reliable as audit database.First one may not work at all, try safe get: $g(^CacheTemp.EnsUsername($job)).Second one wouldn't work outside of CSP/ZEN context. Check that %request exists and is an object before calling GetCookie method.
go to post Eduard Lebedyuk · Aug 10, 2018 Audit database contains correct username:You can also get Username by these two ways:write ^CacheTemp.EnsUsername($job)write %request.GetCookie("Username")But they are not as reliable as audit database.
go to post Eduard Lebedyuk · Aug 8, 2018 Try $IsObject function: <if name='CheckObj' condition='$IsObject(response.Content)'>
go to post Eduard Lebedyuk · Aug 8, 2018 $get works as fast as global could be read. Some ideas:You can use ^PERFMON to see how these two globals are read - from disk or from memory. To do that collect 2 reports - with only ListGlobal load and only StringGlobal load and compare Physical reads.Are both globals the same size?How's globals size relative to global buffer?
go to post Eduard Lebedyuk · Aug 8, 2018 You can to change default file I/O from GB18030 to UTF8.To do that, execute do ^NLS and choose: 2) Select defaults 2) I/O tables 4) File And choose UTF8 there. After that, your I/O table should look like that: I/O table Current default --------------------- -------------------- .... 4) File UTF8 (*) After that, restart Cache and delete/reimport faulty files in Atelier Note that this action (changing NLS defaults) can be disruptive to existing Cache applications.
go to post Eduard Lebedyuk · Aug 8, 2018 Let's see Cache locale.Open Cache terminal and execute: zn "%SYS" do ^NLS There, choose 1) Display current locale and copy the output (should be two screens) here.
go to post Eduard Lebedyuk · Aug 7, 2018 If you're sure that your id bigger ids are generated later, you can only get the first id from index and after that iterate the data global directly: set FromDateH = (+$h-1) set id = ^TestI("StartDateIDX",FromDateH,id) for { set id=$order(^TestD(id),1,dat) quit:id="" //dat=$lb("a","b","c","d","e") } Also you can use three-argument form of $order to iterate and get data in one command. Finally, consider checking work-heavy system with %SYS.MONLBL to verify what lines consume more time.
go to post Eduard Lebedyuk · Aug 7, 2018 Open Atelier project Properties and check encoding there. Set to UTF8 if it's not.
go to post Eduard Lebedyuk · Aug 5, 2018 I just don't know which Azure product.For Azure it would be Virtual Machines as you need to specify these parameters.Article would be great.
go to post Eduard Lebedyuk · Aug 5, 2018 InterSystems Cloud Manager can deploy to Azure. First Look for ICM is a step by step guide to run InterSystems IRIS in a cloud.Generally you need to run ICM locally (or on some preexisting server) and then specify a configuration of what you want. ICM would then provision the servers, install InterSystems IRIS, etc.
go to post Eduard Lebedyuk · Aug 4, 2018 There are many ways to launch InterSystems IRIS.If you want to launch it on AWS you can do it one of the following ways.Provision a EC2 instance with SUSE/RHEL/Ubuntu AMI and install InterSystems IRIS on Linux. Here's the guide. Quickstart.Provision a EC2 instance with SUSE/RHEL/Ubuntu AMI, install Docker and run InterSystems IRIS in a container. Documentation. First Look.Use InterSystems Cloud Manager to provision AMI and run InterSystems IRIS. Documentation. First Look.What to choose?If you need to run a lot of or a variable number of servers choose 3.If you're unfamiliar with Docker choose 1.If you're familiar with Docker (or want to become familiar with it) choose 2.