Can any Target Object be non-IRIS base?

Absolutely. The services you offer via IAM can be sourced anywhere. Both from InterSystems IRIS and not.

How can IAM help with non-IRIS services?

All the benefits you get from using IAM (ease of administration, control, analytics) are available for both InterSystems IRIS-based and non InterSystems  IRIS-based services

Use EnableConfigItem method of Ens.Director class to enable/disable business hosts programmatically.

If you want to enable/disable/modify several ensemble hosts, it's better to update them without updating production first and after that
update production. Also add longer timeout on production update.

set sc = ##class(Ens.Director).EnableConfigItem("Item1", 1, 0)
write:'sc $System.Status.GetErrorText(sc)
set sc = ##class(Ens.Director).EnableConfigItem("Item2", 1, 0)
write:'sc $System.Status.GetErrorText(sc)
set sc = ##class(Ens.Director).UpdateProduction(600)
write:'sc $System.Status.GetErrorText(sc)

 

Are you sure you want to change system routine?

Is there any particular reason why you want to replace Cache for IRIS in code?

Anyway, is IRISLIB database writable?

Here's how you can make database writable.

  • Open System Management Portal
  • Go To: Menu (upper right corner) -> Databases
  • Choose database you want to modify
  • Set/remove ReadOnly flag
  • Saave

It's really not recommended for IRISLIB.