Scott,

take a look inside iam-setup.sh

Based on the inputs it constructs a URL and then tries to 'curl' it.

And fails for some reason. Check which URL it constructs and check if curl indeed works fine for that URL

The URL should look like:

https://IAM:
@xxx.xxx.xxx.xxx:443/api/iam/license

Check if you can access it from the bash

Can you provide small test case. It works fine for me. dc.demo is the same as HS.Local.CZ.OR.ROUTER.Service.Data.KeyProperty

dc.demoser is:

Class dc.demoser Extends %SerialObject
{

Property A As %String;

}

Test program:

set p = ##class(dc.demo).%New()
set x = ##class(dc.demoser).%New()
set x.A = "a1"
set p.Serial = x

set y= ##class(dc.demoser).%New()
set y.A = "a2"
do p.SerialList.Insert(y)

set ec= p.%Save()
zw ec

And then runnning:

USER>do ##class(dc.demo).test()
ec=1

USER>zw ^dc.demoD
^dc.demoD=1
^dc.demoD(1)=$lb("",$lb("a1"),$lb($lb($lb("a2"))),"",0,0,"","","","","","",0)

I never saw such direct of %SerialObject. Why do you need it? I wonder if %DynamicAbstractObject and JSON representation suits you here better

I believe IRIS already can GRANT privileges on schema:

You can use SCHEMA schema-name as the object-list value to grant the object-privilege to all of the tables, views, and stored procedures in the named schema, in the current namespace. The following example grants this user SELECT privilege for all objects in the Sample schema.

GRANT SELECT ON SCHEMA Sample TO Deborah

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...

I don't know what happens in your particular case. What you can do -- set logging level in the Web Gateway to "ev2"

"V2" incudus the following information: "Information regarding basic connection management between the Web Gateway and InterSystems IRIS (Start and Close points for each connection)"

Let the Web Gateway run for some time, then hopefully in the csp.log you'll see the details on how new connections are created and old ones are terminated

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...

Other idea -- check Apache settings. Which MPM does it use, what recycle settings for worker does it have?

Also, some notes on MPM models of Apache:
https://docs.intersystems.com/iris20232/csp/docbook/Doc.View.cls?KEY=GCG...