Hello Paul,
The compression is using "zstd" type of compression, comming from %occStream.inc
The function that is used is: $System.Util.Compress(%data,"zstd")
- Log in to post comments
Hello Paul,
The compression is using "zstd" type of compression, comming from %occStream.inc
The function that is used is: $System.Util.Compress(%data,"zstd")
I would put also embedded python here
I see that all your TLS/SSL configurations are Client type.
Usually, there is no need to point to the certificate, unless the "client will be asked to authenticate itself".
You should go into each of your configurations, to check if this option is enabled/used. If so, then you will have to update the: "File containing this client's certificate" with the new pem file
Hello,
I have done a CSP page that allows to measure timings. This shows that using a delimited string, is somehow "a slight" faster than using a list.
Running 10,000,000 iterations on the following code gives:
| Set a=$LB(1,2,3) Set b=$LG(a,2) | 1.214642 sec. |
| Set a="1_2_3" Set b=$P(a,"_",2) | 1.1711362 sec. |
Happy new year Udo.
And many thanks and wishes to all the great community members that makes this place one of the best to acquire and share Intersystems technology knowledge.
Was the normal procedure done after the upgrade?
e.g. $system.OBJ.CompileAllNamespaces("cru")
Ephraim,
When you say "corrupted" to better understand...
- Did you try to mount the DB (from the SMP of with ^MOUNT)? Sometimes if IRIS/Cache was "forced" than a *.lck file on the DB folder need to be deleted in order to allow a successful mount.
- If the DB is mounted, did you got a <DATABASE> (or other) error? if so, then what was said using ^Integrity and ^Repair could help - but only if you fully understand how to use those tools (!) Most of the time, a corrupted DB is fixable using those tools, or at least data can be 99% recovered. Depending on the number of errors: if its huge than sometimes it is faster to recover the DB from a valid backup + journal files.
BTW - if this is a mirrored DB than there are other considerations as well.
Happy new year!
Hello,
Basically, a namespace is a "logical" place that can have it's data from more than 1 database.
You have namespace1 binded to database1.
When you create a new namespace2 (binded to database2) and then create a "global mapping" for namespace2 to point for your specific globals from database1
Usually what matters on "big globals" is the capacity (and compression) on disk.
For that, you may use:
Set sc=##class(%GlobalEdit).GetGlobalSize(directory , GlobalName , .Allocated , .Used)
%Library.GlobalEdit - InterSystems IRIS Data Platform 2022.2 - including private class members
Yes the arbiter was unable to communicate. It looks like a network issue.
I recommend you to open a WRC for that
Read this: CSP Session Management | Using Caché Server Pages (CSP) | Caché & Ensemble 2018.1.4 – 2018.1.7 (intersystems.com) - look at "Session Timeout"
Class codeGolf.Pyramid
{
ClassMethod Build(f As %Integer)
{
F i=1:1:f K s,c S ($P(s," ",f-i+1),$P(c,"#",i*2))="" W s,c,!
}
}
How exactly are you counting, Robert? to me it looks shorter than the previous one
90 min. to 1M records is very low.
It seems that the query is scanning at one of your big tables (Records maybe).
Do you have indices on: Records.qw and on Records.er
Consider to run the query in %parallel mode, after you optimize it.
Hello,
If the database that you copy/import routines is journaled, and changes to routines source (^ROUTINE) and compiled code (^rOBJ) will also exist in the journal files. There is also a ^rBACKUP but it is not relay holding old versions of routines (for this you will have to use wither studio-hooks or GIT)
Very good article, Yuri.
Wonder when Intersystems will support AMQP protocol, to integrate seamlessly with ASB (Azure Service Bus)
if you encounter another situation that you cannot add a space before the # you can do:
all headers are stored in the %request.CgiEnvs("HTTP"_xxxxx)
You may do something like this in the OnPreHTTP method in your CSP page:
SQL adaptive mode s not avail. on 2022.1.2 but only on 2023.1 (right)
%SYS>s Status=##Class(Config.SQL).Get(.Properties)
%SYS>zw Properties
Properties("ANSIPrecedence")=1
Properties("AdaptiveMode")=1
...
Properties("TimePrecision")=0
you need to have an object from the %Dictionary.CompiledClass not from "your" table/class. Then you will be able to access all those Methods, Triggers, Incidies and so on.
The code I gave is a working code, not a pseudo code.
I would check the following:
1. Check the %SYS.Task class with SQL but also do an Integrity check, to see if there are any errors on those globals that hold that task manager data.
2. if the "corrupted"/"copied" task (with $h=0) is the one that consume 100% of CPU, I would try to "re-schedule" it to see if the new "next date" is set to something else. If not, to delete (you don't need to re-create it, looks like 1001 is a copy of 1000)
3. Monitor the 100% CPU task (SMP or JOBEXAM) to try to understand at what commands it's "stuck"
I started programming around $H=55000.
Found in old MSM languange refrence manual ver. 4.4 that:
$ZU(1) and $ZU(0) are same as $ZUCI(1) and will returns the external name "UCI,VOL" for the current UCI
Which browser do you use? I noticed that in Edge the credentials box is not popped-up resulting an 401 error, so you need to work with "IE mode" (on chrome, it does pop-up).
Check the user "task2" permissions, maybe this user does not have permission to the audit databse?
I would recommend that in systems that the audit database is big or huge you stop IRIS and move that database to another disk. Then change in IRIS.CPF (Database section) the location for the audit database.
Great workaround. I remember that I had a problem few years ago that the WebTerminal was unable to do:
ZLOAD routine ZPRINT
I did some (ugly, must say) changes in the broker to let this work
Does your wrapper is able to handle this as well?
For a-sync mirror membwers, you could use the query:
and then to iterate on result and do the necessary cheeks.
Robert,
WIJ is used to write data to the Db. WIJ holds the copy of Db blocks before they are written to the Db to allow to keep Db integrity (Cache checks if there are "dirty" blocks on WIJ when started, if so writtes them to the Dbs).
"cache buffers" are used to store blocks that were READ from the Db to aviod disk access for concurrent reads
No, there is no limit for the size of %Library.DynamicObject, but the %ToJSON() might give a <MAXSTRING> - here is a workaround for such:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
You may use $LISTFIND