go to post Danny Wijnschenk · Jun 21, 2021 Hi Joan, hmm, running out of ideas, can you create a new namespace (or use e.g. USER if not used), and map some routines from your database to that namespace. Is Studio also slow in that namespace ?
go to post Danny Wijnschenk · Jun 18, 2021 If your partners work in the same namespace without any problems, you might want to reset the Studio settings to default, or use their settings: Studio menu Tools -> Import and Export SettingsFirst export your settings as a backup, and than reset All settings (or import a setting from a partner)
go to post Danny Wijnschenk · Jun 18, 2021 Hi Joan, Are there many routines in the namespace ? Is the studio faster on other namespaces ? Any special mapping in the namespace ? Have you tried creating a new namespace and exporting/importing some routines to that namespace ? (or map routines to the new namespace)
go to post Danny Wijnschenk · Jun 18, 2021 In terminal : USER>d ^%RCOMPIL Routine(s): * Routine(s): Display syntax errors? Yes => Yes Display on Device: Right margin: 80 => Compiling in namespace USER at 11:26:55 xxx.MAC xxx3.MAC ... nn routines compiled with 0 errors at 11:26:55 in 00:00:00.029 In portal : System Explorer -> Routines
go to post Danny Wijnschenk · May 20, 2021 This has probably to do with underscores ( _ ) in variable/method names. (not allowed in object script, but used with callbacks in the (deprecated) product VISM (or also called Cache Direct, hence the CD and CalBk in the error)I get a similar error when doing : %SYS>set _abc=1 <FUNCTION>SetProp+2^%CDCalBk %SYS 3d1> From the documentation : Invalid Names A local variable name that does not follow the above naming conventions generates a error. There is one exception: if an invalid variable name begins with an underscore character followed by a letter, the system generates a <_CALLBACK SYNTAX> error. (Note the underscore character within the error name.) For example, SET _abc = 123 or SET x = _abc. This is because Caché identifies these names as VISM control names, rather than local variable names.
go to post Danny Wijnschenk · May 11, 2021 Do you use CSP pages or REST (through portal or other applications) ? It uses a grace period that can hold a license slot longer than the actual login time. You can look at the license usage in the Management Portal :- Click on View System Dashboard, in Licensing tab : You can click on Current License Use, and click on the bottom of the page on 'Click here for more details' to go to the License Usage page (also accessible via System Operation -> License Usage)You can view the same figures in terminal by using Do $system.License.ShowSummary()(Look at Do $system.License.Help() for other methods to show license stats.
go to post Danny Wijnschenk · Mar 10, 2021 Hi Daniel, did you do a zwrite output ? It is an array, so if output=2 there should be more data in it. (usually output is empty when the command was executed successfully)I like using using OPEN because any shell output message is captured and can be logged.e.g. do ##class(Image.Utils).Convert("a.jpg","-resize 10X10", .output) zwrite output output=2 output(1)="convert: UnableToOpenBlob 'a.jpg': No such file or directory @ error/blob.c/OpenBlob/3109." output(2)="convert: MissingAnImageFilename `10X10' @ error/convert.c/ConvertImageCommand/3272."
go to post Danny Wijnschenk · Mar 10, 2021 I am using read queue to be able to monitor the output from Image like this : Parameter INSTALLDIR = "c:\ImageMagick\"; /// Do ##class(Image.Utils).Resize(file, newFile500, "500X500", .msg) ClassMethod Resize(fileOrig As %String, fileNew As %String, newSize As %String, ByRef output as %String) As %Boolean { Quit ..Convert(fileOrig, "-resize "_newSize_"^> """_fileNew_"""", .output) } ClassMethod Convert(file, options, ByRef output as %String) As %Boolean { Do ..Cmd("convert """_file_""" "_options, .output) Quit 1 } ClassMethod Cmd(command As %String, ByRef outputStr As %String) { Kill outputStr Try { Set cmd=..#INSTALLDIR_command Open cmd:("RQ") For { Use cmd Read line If $ZEOF=-1 Quit Set outputStr($i(outputStr))=line } } catch { } Close cmd }
go to post Danny Wijnschenk · Nov 6, 2020 Look at the %Dictionary tables, you can find the docs here :https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.... Also look at following answer for examples :https://community.intersystems.com/post/example-list-persistent-classes-...
go to post Danny Wijnschenk · Sep 15, 2020 by the way great album : The Police - Ghost in the Machine
go to post Danny Wijnschenk · Sep 14, 2020 Hi Hansel, Temp should only grow because of use of temporary globals. (^IRIS.temp, ^mtemp, or any other global explicitly mapped to IRISTEMP)In my experience, sudden growth of temp is mostly due to an SQL query that is doing a join or order of non-indexed columns.When you restart Iris, you could delete the iristemp (it will recreate it), you can also set a param to truncate it automatically at startup:https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
go to post Danny Wijnschenk · Sep 14, 2020 You could redirect the output of the python script to a file as described in https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?K... or https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=BG... and read the file in Cache.Or better to create a rest call in python and call it in Caché
go to post Danny Wijnschenk · Sep 14, 2020 I don't see any performance disavantages in using SOAP or REST to call classmethods of other IRIS instances compared to ECP.And SOAP/REST is available in all IRIS license types, in contrast with ECP.
go to post Danny Wijnschenk · Sep 3, 2020 When i use %SQL.Statement, and I pass sql to the %Prepare method as an array, it will start to fail around 11,400 characters
go to post Danny Wijnschenk · Sep 3, 2020 The maximum length of a column is defined by the MAXLEN parameter in the class definition.The maximum string length is 32,767 and 3,641,144 if long strings are enabled.If you use Streams as data type, you don't have a limit and can use Substring(column, from, maxlen) in SQL
go to post Danny Wijnschenk · Sep 3, 2020 Look at the file CodeSnippets.txt which is located in the Documents\InterSystems directory on your windows pc where Studio is installed
go to post Danny Wijnschenk · Aug 21, 2020 What error are you getting ? Can you call the function in terminal ? SQL queries via xDBC are cached, you can remove the cached queries in the managment portal, Explorer -> SQL :
go to post Danny Wijnschenk · Aug 3, 2020 You should not always rely that all data is in cache and processing of the data can be done before a timeout occurs. (data will grow, more users can use the system, ...)For REST queries that have the risk of running too long, you can do as follows :- the api responds immediately with a queryId (some sequential number),- the query continues to run in the background, and the response of the query will be stored in some table/global/... with the queryId as the key- a separate api call is used by the client (with the queryId) to get the response (or a 'not ready' status when the query is still running).It is a little more work on the client to call once to launch the query, and a second.. time to get the results, but you are safe when your systems grows with data or users
go to post Danny Wijnschenk · Jul 5, 2020 Hi Robert, Handy to know i can still use this whenever the internet goes down, and i need to dial into my customers with a 300 BAUD modem ! Danny (fellow dinosaur)