go to post Timo Lindenschmid · Aug 8, 2023 Hi, question is here how is that global being populated/created? Is this global defined by usage of a class inheriting from %Persistent? If so, a fast way would be to be using %Extent to enumerate all instances and then look at the rowcount. e.g. set query = ##class(%SQL.Statement).%New() set qStatus = query.%PrepareClassQuery("User.Person","Extent") set rset=query.%Execute() d rset.%Display() zw %ROWCOUNT
go to post Timo Lindenschmid · Aug 1, 2023 most of the solutions don't cater for the ")(" case being not valid here is mine size 92 ClassMethod IsValid(s As %String) As %Boolean { s r=1 f {s c=$e(s,$i(i)) q:c="" d:c="(" $i(r) d:c=")" $i(r,-1) q:r<1} ret $s(r=1:1,1:0) }
go to post Timo Lindenschmid · Jul 4, 2023 40 ClassMethod Check(word As %String) As %Boolean { ret '$match($ZCVT(word,"U"),"(.).*\1.*") } or 39 using $$$UPPER ClassMethod Check(word As %String) As %Boolean { ret '$match($$$UPPER(word),"(.).*\1.*") }
go to post Timo Lindenschmid · Jul 3, 2023 As per Jeffrey latest ISC studio should work fine. Also it might be the time to start the discussion for the move from Cache2017 to IRIS. With IRIS you will also get other IDE options like VSCode.
go to post Timo Lindenschmid · Jun 1, 2023 Is this backup planned to be done once daily? continuously? if it once daily, the easiest way would be find the storage global you class is saved in then e.g. ^MyClass.CurrentTableD and copy that into another backup global e.g m ^BackupGlob($H,"BackedUpData")= ^MyClass.CurrentTableD
go to post Timo Lindenschmid · May 23, 2023 Hi Pietro, i don't have a cloning tool yet. Usually i export the "template" task, then modify the xml a needed and reimport. Cheers Timo
go to post Timo Lindenschmid · Apr 5, 2023 So just looking at your SQL,. You got 2 parameters in your where clause. Select ID, Name from MSDS_Common.ComponentSub Where (? is null or %UPPER(Component)[%UPPER(?)) and Active=1 If the first dropdown is null this will always be true if Active is 1 Try changing the where clause to Where (? is null AND ( %UPPER(Component)[%UPPER(?)) and Active=1 This will check if first parameter is empty and if subcomponent contains the second parameter and if its active.
go to post Timo Lindenschmid · Mar 27, 2023 If the source class is in deployed mode, there is no way to modify the source code.
go to post Timo Lindenschmid · Mar 27, 2023 Ben is correct. Apply saves the current state and Update saves and continues the workflow/returns you to the previous screen.
go to post Timo Lindenschmid · Mar 20, 2023 as an alternative you could use to standard traceroute traceroute -n -T -m 5 -q 1 -p 80 hostname.local -p portnumber -T use TCP syn for connects -m max TTL to test If it succeeds it will return all IPs if the IP is not reachable it will only report *.If the port is blocked it will return somethink like 1 192.168.1.198 0.411 ms !X Where !X means admin prohibited.
go to post Timo Lindenschmid · Mar 20, 2023 Hi, without understanding what workload the job is doing its nearly impossible to suggest best approach. You could try to reduce the priory of the jobbed process. d %SYSTEM.Util.SetPrio("-1") //reduced prio of current process by one
go to post Timo Lindenschmid · Mar 8, 2023 Hi, if you make some assumptions 1. numbers are always enclosed in curved brackets 2. you want to always return string starting with REASON this could be as easy as just: set mystring="REASON->Blood(1.23)" w "REASON"_$extract(mystring,$find(mystring,"(")-1,*) or if you really want to use regex: IRISHEALTH:USER>set mystring="REASON->Blood(1.23)" IRISHEALTH:USER>set regex=##class(%Regex.Matcher).%New("^([A-Z]*)->.*(\([0-9]*.[0-9]*\))",mystring) IRISHEALTH:USER>zw regex.Locate() 1 IRISHEALTH:USER>zw regex.Group(1) "REASON" IRISHEALTH:USER>zw regex.Group(2) "(1.23)"
go to post Timo Lindenschmid · Mar 6, 2023 Hi Leon, You probably would need an init method that gets called if the file does not exist, That creates the file and writes the csv header line. Have a look at Using %Library.File | InterSystems IRIS Data Platform 2022.3, that should give some pointers on hoe to check, create file and writeLn to it.
go to post Timo Lindenschmid · Mar 3, 2023 Actually just thinking the IRIS contained ALPHAUP function converts to string by prefixing a " " (space) to force %String not suffixing
go to post Timo Lindenschmid · Mar 3, 2023 Hi Pietro, if you got access try doing a BaselineExport using %Studio.SourceControl.ISC:BaselineExport
go to post Timo Lindenschmid · Mar 3, 2023 The entrypoints of ZMIRROR are called during the mirror failover process. E.g. if the backup mirror has successfully taken over all roles and now has become primary the relevant entrypoint (not sure but something like HasBecomePrimary^ZMIRROR) is being called. So code added to that entrypoint will be executed at that time . ZMIRROR cannot be used for monitoring purposes only to execute actions during a failover process.
go to post Timo Lindenschmid · Mar 3, 2023 This is NOT correct a VIP is not needed for a failover mirror even with ASYNC DR. Any Async Mirror will know of all mirror nodes and try both failover mirror members if it cannot connect to the primary automatically. For this it uses the superserver IP configured on the mirror setup or the private mirror IP if it is able to access it. A VIP is only needed for application that are not mirror aware. Even the current web/csp gateway can be configured to be mirror aware.
go to post Timo Lindenschmid · Mar 3, 2023 Agreed contact WRC on this and get your messages log from Primary and backup (from during the outage) reviewed. This sounds like a full loss of connectivity or just a hunch are both mirror members backed up at the same time and does this coincide with the outage?