go to post Vic Sun · May 27, 2021 Hello Kathy, This would be an installer/OS level issue so not something that SQL could help with. Do you still have the install kit and can you try to use that to uninstall? If you check the Windows event log do you see any errors from your first (or subsequent) uninstall attempts? Can you check if there are any pending installation/uninstalls? Perhaps you could try restarting the server and then trying to uninstall? Out of curiosity, have there been other instances installed/uninstalled on the same server?
go to post Vic Sun · May 26, 2021 Hello Matthew, Out of curiosity, what are some examples of things that you don't want shared within one instance? I'm not sure about the per-instance overhead, I don't know how common of a scenario that is, so you may want to test it out. With multiple instances, you would have multiple write/journal daemons. I wonder if your current setup benefits from the shared buffer pool, or if your separate namespaces are handling totally different sets of data. Re: the memory split, I think that depends on how much activity you're running through each instance. If you think they'll all need the same amount of memory, an even split might be fine. Is there any consideration to splitting out to separate servers? It sounds like isolation/granularity are some of the things you are looking for, and separate servers would help with that.
go to post Vic Sun · May 26, 2021 Is this what you mean by Rose? It's not a technology I'm familiar with, but from this page and your description it sounds like an HA cluster with shared storage: https://www.rosedata.com/index_en.php/Prodetail/index/proid/1 Do you have any specific questions about this setup? Can you provide more detail on what kind of disaster events you are looking to handle? What is your desired behavior? Basically, I would suggest thinking about different disaster scenarios and how this environment would react. Failover Strategies for High Availability Here are the docs regarding different HA strategies including HA clustering and mirroring. The main point they highlight for a HA cluster with shared storage is that the disk then becomes a single point of failure. Adding a mirror instance on separate hardware provides an option if your RoseHA disk fails.
go to post Vic Sun · May 25, 2021 @wenjie zhao If I'm interpreting your question (and its translation) correctly, it sounds like you will have multiple mirror members on the same disk array. Is this a mirror member in the same mirror or different? If the same, I think part of the value of a mirror is that you can failover if a problem happens to a piece of hardware, for example. If both mirrors are running on one disk array, if that disk array has a problem, you can't really failover. If a separate mirror, then you could have two separate mirrors failing over if your 1 disk array has a problem - if that's acceptable to you, I don't necessarily see a problem. Realistically, it's hard to provide advice without knowing exactly the architecture you are considering and the types of problems you want to be prepared for. I'd refer back to my initial reply, which is that I'd think about mirroring as I would any other HA architecture and think about what will happen if single items fail - generally, I think you would want your HA to be able to work around a single piece failing.
go to post Vic Sun · May 24, 2021 Hello Wenjie, Google translate wasn't able to help me understand the infrastructure you are suggesting. Perhaps a diagram would be helpful. Mirroring can be used as part of a highly available architecture, but if you have concerns I would look at what your single points of failure are.
go to post Vic Sun · May 18, 2021 Great analogy Nigel, thanks for sharing a fun modern-day Aesop's fable!
go to post Vic Sun · May 18, 2021 Great! This was an interesting topic and I'm sure one that will help future viewers of the community.
go to post Vic Sun · May 18, 2021 Hey Matthew, No technical suggestions from me, but I would say that there are pros/cons to file / global streams which have been covered quite well by the other commenters. For the performance concern in particular, it is difficult to compare different environments and use patterns. It might be helpful to test using file / global streams and see how the performance for your expected stream usage, combined with your system activity, plays into your decision to go with one or the other.
go to post Vic Sun · May 17, 2021 Hello Nikhil, There are a variety of learning resources for Caché / IRIS / ObjectScript. From InterSystems documentation: ObjectScript Tutorial Also linked in the top bar of the developer community, the InterSystems learning portal has many videos/courses: Learning.intersystems.com
go to post Vic Sun · May 14, 2021 Ah, that is certainly a separate issue. Hopefully, you figure out what's causing that or somebody has ideas, but I've not seen random recompiles personally.
go to post Vic Sun · May 14, 2021 Hello Brian, It is interesting to know that this might be implemented at some point. My first thought is to recommend not compiling a running production, though I understand that's not "helpful" advice. When you compile a business component it should be stopped, and I assume similar best practices apply to compiling a production. Can you explain why the production needs to be recompiled while active? Maybe that will help somebody present a workaround.
go to post Vic Sun · May 11, 2021 Hello Lawrence, Screen is certainly an option (and doesn't require more than installing and running ^DBREST per your normal steps), but there is also the built-in function of: Unattended Restore Using ^DBREST EXTALL^DBREST and EXTSELECT^DBREST.
go to post Vic Sun · May 11, 2021 Hello T, Some settings such as AlertOnError aren't in Ens.Config.Item but are stored in the production definition class. edit: see my comment below, these settings are in the production definition, but you seem to be able to modify them using Ens.Config.Item as well. Perhaps you could use the System Default Setting? For something like this, especially with urgency, I'd recommend reaching out to your InterSystems rep or the WRC.
go to post Vic Sun · May 11, 2021 Actually, I'm seeing that I can find the InactivityTimeout setting (for example) and modify it using Ens.Config.Item. I'm not sure where exactly your problem is coming from.
go to post Vic Sun · May 11, 2021 I agree that Danny's suggestion to review where your licenses are being used is a good starting point. Since you mention using this license across multiple servers, I would consider the different ways your developers are connecting to Caché. If a developer has Studio, the management portal, and a terminal session open, they are probably using more than 1 license. Even with a limit of 2 developers per server, if 6 developers are on the 3 servers connecting multiple ways, you could surpass a 10 user limit. You may need a more robust license to support your team's usage patterns.
go to post Vic Sun · May 10, 2021 Hello T, I see that Kurro has already provided some samples but you are still waiting on the first question. I'm not sure if my understanding of your desire is correct, but individual rules in a routing rule are a part of the overarching rule class. While it is technically possible to programmatically edit a class, my personal feeling is that this approach feels more complicated than necessary. To make changes to individual rules it might make more sense to use a source control solution and deploy the version of the rule class that has the rules that you want. Another benefit of the source control methodology is that to make changes in prod, rather than editing production code in a live system, you would be choosing between deployment of (hopefully) tested versions of the rule.
go to post Vic Sun · May 3, 2021 Hello Andre, Take a look at these two other posts with very similar questions, maybe you can find something that works for you. Unfortunately, there doesn't seem to be a built-in random function on the SQL side (though on the Objectscript side there is $RANDOM.) https://community.intersystems.com/post/how-select-random-row-table https://community.intersystems.com/post/custom-query-returns-random-number-columns
go to post Vic Sun · May 3, 2021 Hello again Fábio, These errors are one part of the picture. It would probably be beneficial to open a ticket with the WRC so they can look into these errors and your performance issues to see if they are related/separate. Do you know what queries are triggering these errors? w3wp.exe is an IIS process but I'm not familiar with EXTRService.exe or KIORAS. Perhaps the IP addresses can also help you narrow down the source. The <READ> errors indicate something like a problem reading from the socket, but that doesn't explain the cause. There may be other logs you can review in your environment to help explain this.
go to post Vic Sun · Apr 28, 2021 To add-on to my initial post, I do think that if you use the same type of outbound adapter and inbound adapter (ie counted), it would be expected for the message to be accepted. Since you're sending XML I wonder why the operation isn't using the counted XML adapter. Hopefully, somebody with expertise in this area can help you.