go to post Otto Medin · Feb 16 The marketplace search is a little sensitive, so note that it's "GitLens", not "Git Lens".
go to post Otto Medin · Feb 11 The documentation link at the end of the post has changed. Here's the current one.
go to post Otto Medin · Oct 7, 2024 Thanks! Looking at Ens.Job, there's also a ShouldAbort() and ShouldSuspend(). I guess I'll need to handle those, too, right?
go to post Otto Medin · Oct 4, 2024 Thanks!I found OnProductionStop(), but I'm after something different, along the lines of calling Ens.Director.GetProductionStatus() from within OnMessage() but with a fifth possible state: ProductionStateStopping What I'm trying to do is custom retry logic that retries on certain errors, which could mean a pretty long total hang time, so it would seem well-behaved to check every second (or so) whether it's time to shut down.Thinking about it, it would be a lot better to be able to tell whether the host itself should stop. That is, regardless of whether it's because of a production shutdown or a stop/restart of the individual host.
go to post Otto Medin · Mar 25, 2024 Thanks Dimitrii, your question answered my question (how to get rid of the trailing slash).
go to post Otto Medin · Oct 29, 2021 Note that applying the new IRIS for Health key (I haven't tried plain IRIS) yields a warning that it lacks some of the analytics features of the expiring key.
go to post Otto Medin · Sep 22, 2021 Nothing nonstandard. I went to the marketplace (link below) and pressed "Launch". The deployment page then (optionally) allows TCP traffic on ports 22, 1971 and 52773. (For unrelated reasons, I haven't actually deployed yet.) https://console.cloud.google.com/marketplace/product/intersystems-launch... Cheers, Otto
go to post Otto Medin · Dec 10, 2020 ...or using a stored procedure along these lines: ClassMethod RenameTable(oldName As %String, newName As %String) As %String [ SqlProc ]{ try { &sql(select %ID into :className from %Dictionary.ClassDefinition where SqlTableName = :oldName ) if SQLCODE set status = "Error: Table '" _ oldName _ "' not found." quit set classDef = ##class(%Dictionary.ClassDefinition).%OpenId(className) set classDef.SqlTableName = newName set saveStatus = classDef.%Save() set status = $case(saveStatus, 1: "OK", : "Error: " _ $system.Status.GetErrorText(saveStatus)) } catch { set status = "Error: " _ $zerror } return status}Note: This doesn't handle the special case where there is no 'SqlTableName' defined.
go to post Otto Medin · Apr 15, 2020 Hi Dimitry, Was the webinar recorded? I'd say you'll get at least another 80 viewers if you publish it... Cheers, Otto
go to post Otto Medin · Jan 24, 2018 Agreed, and if you want to have your cake and eat it, too: if (a) { set b = a }
go to post Otto Medin · Nov 8, 2017 Somewhat off-topic, there are reasons to watch out for %OnBeforeSave():The object is already serialized at this point, so you can't change any properties.The method is only triggered if the object was changed.%OnAddToSaveSet() has neither of these gotchas (but you don't have %Id() there either, of course).
go to post Otto Medin · Aug 16, 2017 ...and don't forget to kill the global when you're done. On a busy system, the log file could grow very large.Otto