go to post Vic Sun · Oct 19, 2021 Michael, What's the use case? You might be able to design something with SQL triggers but that feels ripe for complications. You can find people discussing this kind of solution (using triggers) for other databases online, and from what I can tell people generally agree this is a messy option. If the idea is that people are accidentally executing improper SQL commands, perhaps I would tackle this from a training perspective, or by restricting SQL commands to a more limited audience.
go to post Vic Sun · Oct 18, 2021 Hello Michael, If the Ensemble log reports an arbiter loss of connection, Ensemble doesn't really have more logs that can explain why that happened. These messages are just reporting the underlying condition that Ensemble experiences. Confirming the cause of connection losses is really more a matter of reviewing network/other logging in the environment.
go to post Vic Sun · Oct 14, 2021 Michel, This is an "internal" method that has made its way into the wild. I'm going to file a ticket with ISC to check whether it should be made public.
go to post Vic Sun · Oct 13, 2021 Hello Herb, Have you checked the connectivity since the error is a timeout? Can you make an SFTP connection outside of IRIS using a third party application or the command line? You can debug the SSH portion of the connection via: https://community.intersystems.com/post/using-and-debugging-netsshsession-ssh-connections Hope that helps.
go to post Vic Sun · Oct 13, 2021 On top of Robert's answer, I would add - why are you copying from another namespace at all? If you just need the standard interoperability mappings, those get generated from the "enable namespace for Interoperability productions" checkbox. You can't run 2 productions (even if you assign 2 namespaces) from the same databases simultaneously, so I would probably avoid "copy from" in general, particularly because you are trying to use EnsLib code. There are probably specific cases where you might want to copy a namespace from another one, but I'd be cautious and make sure that copying is what you actually want. edit: I am unsure whether using "copy from" on HSSYS is a good idea. Personally, I haven't done that, but I would be concerned that you might have similar issues to copying from %SYS, as HSSYS is a shipped database.
go to post Vic Sun · Sep 30, 2021 Hello Michel, Ens.Config.Item has a Category property. Is that what you are looking for? sample: TEST>s item=##class(Ens.Config.Item).%OpenId(244) TEST>zw itemitem=4@Ens.Config.Item ; <OREF>+----------------- general information ---------------| oref value: 4| class name: Ens.Config.Item| %%OID: $lb("244","Ens.Config.Item")| reference count: 2+----------------- attribute values ------------------| %Concurrency = 1 <Set>| AlertGroups = "" <Get>| Category = "test.cat"| ClassName = "Ens.Enterprise.MsgBankOperation" <Set>| Comment = ""| DisableErrorTraps = ""| Enabled = 0| Foreground = 0| LogTraceEvents = 0| Name = "Ens.Enterprise.MsgBankOperation" <Get>| PoolSize = 1| Schedule = ""+----------------- swizzled references ---------------| i%ModifiedSettings = "" <Set>| r%ModifiedSettings = "" <Set>| i%Production = "TESTPKG.FoundationProduction"| r%Production = ""| i%Settings = ""| i%Settings(1) = $lb($lb("IPAddress","Adapter","127.0.0.1"))| i%Settings(2) = $lb($lb("LocalInterface","Adapter",""))| i%Settings(3) = $lb($lb("Port","Adapter","9192"))| i%Settings(4) = $lb($lb("EnableArchiving","Host","1"))| i%Settings(5) = $lb($lb("StayConnected","Adapter","3"))| r%Settings = "" <Set>| i%VirtualSettings = "" <Set>| r%VirtualSettings = "" <Set>+--------------- calculated references ---------------| CommentOrClassname <Get>| InactivityTimeout <Get,Set>+----------------------------------------------------- TEST>w item.Category"test.cat"
go to post Vic Sun · Sep 29, 2021 I'm not sure about that, Apache has been updated over the years but I don't know which versions and when off the top of my head. I would suggest investigating this with WRC. I am aware that that error can be thrown in a container environment depending on the OS, so perhaps that is relevant to your situation.
go to post Vic Sun · Sep 28, 2021 Augusto, I'd check if the port is taken by something else. Perhaps the OS logs or the IRIS ^SYSLOG will have entries of note?Maybe you can try restarting the web server to see if you can throw an error?
go to post Vic Sun · Sep 28, 2021 Lionel, Check out the following article: https://community.intersystems.com/post/handling-date-and-time-operations-cach%C3%A9 You might want to try something like: %SYS>s time=$PIECE($horolog,",",1)-1_","_$PIECE($horolog,",",2) %SYS>zw timetime="66014,35176" %SYS>w $zdatetime(time,3)2021-09-27 09:46:16 When you just do $horolog-1, you're truncating the time off of $horolog. $PIECE lets you modify and combine the date/time segments of $horolog independently.
go to post Vic Sun · Sep 28, 2021 Hello, Additional context on what exactly you need to do would probably be helpful. If this is something critical, I would consider reaching out to the WRC for assistance. Otherwise, the ^JRNRESTO documentation is where I'd start: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_journal#GCDI_journal_util_JRNRESTO You can restore a backup and then choose what subset of journals to restore.
go to post Vic Sun · Sep 27, 2021 Hello Garin, Differing free vs available memory is a natural occurrence for Linux. The buff/cache is what's being used by the OS for memory and can be relinquished to applications as necessary. I would check underlying items like OS logs and whether the OS version is supported. error 22 is presumably error 22 invalid argument - not sure what exactly that indicates though.
go to post Vic Sun · Sep 27, 2021 Hi Niko, I'm not sure I understand what you mean by "linking that query into a process", but you can run SQL from Object Script code using either dynamic or embedded SQL: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL I hope that helps. If you are looking for other general guidance for this, feel free to reply.
go to post Vic Sun · Sep 24, 2021 Cedric, Take a look at the server migration guide which contains a list of other items you can export. https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AMIG You can use the Security.Users.Export() method to export programmatically.
go to post Vic Sun · Sep 24, 2021 Ah, great. Thanks for the update. I'm glad you were able to figure this one out!
go to post Vic Sun · Sep 23, 2021 Hello Igor, What steps did you follow exactly? Do you see any potential permissions issues? Does the messages.log include any useful errors? Did you follow the documented temp directory unzip steps? mkdir /tmp/iriskit # chmod og+rx /tmp/iriskit # umask 022 # gunzip -c /download/iris-2019.3.0.710.0-lnxrhx64.tar.gz | ( cd /tmp/iriskit ; tar xf - )
go to post Vic Sun · Sep 23, 2021 Actually, reviewing more closely, it looks like your version string is for Unified Care Record / Patient Index. That has a different set of requirements than the basic IRIS migration. I'd recommend closely reviewing the HealthShare documentation - I'm not personally very familiar with the HealthShare side of things, but I'm fairly certain there is a version plateau for HealthShare to allow for the move to IRIS. edit: this doc page at least is relevant: Unified Care Record Installation and Migration Guide > Preparing for an Upgrade Installation https://docs.intersystems.com/hs20211/csp/docbook/DocBook.UI.Page.cls?KEY=HEINS_prep#HEINS_prep_considerations "If you are upgrading from a Caché-based Unified Care Record or Information Exchange system earlier than version 2019.1, you must first upgrade to the plateau version 2019.1 before upgrading to this release."
go to post Vic Sun · Sep 23, 2021 Now that you mention it, I think you have not followed a supported migration path. You can find details in the IRIS migration guides available in the WRC distributions page's documents section, but the minimum version to migrate in-place from is 2016.2.x, and it can be used to go to IRIS 2019.1.1+ or 2020.1. It does not support migration directly to 2021.1.
go to post Vic Sun · Sep 23, 2021 Augusto, Ens.Director definitely still exists in IRIS. That error means the "%Library.CacheStorage" class doesn't exist. I don't know why that class would be called, however, as it has been replaced by %Library.Persistent by comparing CE / IRIS docs. Are you sure your in-place migration completed successfully? I assume Ens.Director should try to use the corresponding class in IRIS. I think this is a candidate for WRC investigation.
go to post Vic Sun · Sep 22, 2021 Can you identify what is being locked? Is it possible the lock is on something internal, and not the table itself?
go to post Vic Sun · Sep 20, 2021 Sai, By folder, do you mean moving a class to a different package? It's okay if the class name overlaps, because the package will still differentiate the "full name" of the class. ex, the following can coexist. package1.class package2.class You could also use subpackages such as package1.subpackage.class. Some of the built in class divisions might be helpful for you to compare with - for example, on IRIS for Health, the following packages exist: EnsLib.HL7.Operation EnsLib.HL7.Service etc., for each type of business component. I certainly agree that having Git / source control set up is a good practice. You may also find the built-in production deployment functionality useful:https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=EGDV_deploying