I was asking if it was a BPL or a router, mainly. Looks like a BPL. I think it would definitely take some looking at the code to figure out where the connection's coming from. I think if you looked at the class in Studio you could probably try to find in files to see where the reference is, might be easier than looking through the BPL in the portal.

Hello Wenjie,

^oddPROC is an internal global with metadata for your BAIYAOJIREQUEST class (I think in your custom Ensemble.Ens package, not sure exactly how the characters translate). I think for this issue you may want to reach out to InterSystems support so they can look into what may have happened to "corrupt" that global and look into solutions. Do you have any ideas of whether something unusual might have happened to that class?

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?

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.

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.

@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.

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.

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.

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.