Good to hear that you solved it. Unfortunately, development workflow guide is on the way, yet. But I'm going to do it this month.

First of all, any logging related to this extension goes to Output ObjectScript, so, you maybe can find there errors, or compile log.

Actually, it should compile class and notify about success or errors, just after change and save any class/routine.

Import and compile from explorer, good to use when you have changed many files in the sources folder, by Source Control System for example.

You can also trigger compile from command pallete and with a shortcut Cmd +F7/ Cmd + F7

I would not agree with the way of using "in-memory global" instead for logging. It would be easier to have one ClassMethod  Log, which would log everything needed to be logged, it can do it with objects, which would have indexes for future usage, to get faster access. But it can temporarily switch off journalling at all, or just suspend the transaction. In any normal application, any logging should already be centralized. So, it would not add any complexity for an application. But in some cases quite difficult to debug some issues, when you lost some logging because they were rollbacked.

Yes, it is, but in this case, it exceeded connections limit for one license unit and it is even just only 4 in comparing with 25 for ordinary versions.

And I think this message in the log should be changed to be more clear. 

Another issue, here

USER> Write $SYSTEM.License.MaxConnections()
25

25 connections for ordinary version, but Community Edition, has only 4 connections and fails to start more.

And another problem is that reaching connections limit for just one user, changes state of the instance as with warn

root@d5eaa844235c:/# iris list

Configuration 'IRIS'   (default)
        directory:    /usr/irissys
        versionid:    2019.2.0.107.0com
        datadir:      /dur/config
        conf file:    iris.cpf  (SuperServer port = 51773, WebServer = 52773)
        status:       running, since Tue Jun 25 13:00:11 2019
        state:        warn
        product:      InterSystems IRIS

And this state used for HEALTHCHECK of the container, so, this container became as Unhealthy, which means in production such container should be killed, even it is actually in good condition.

$ docker-compose ps
        Name                   Command               State     
---------------------------------------------------------------
jdbc-jpa-rest_iris_1   /iris-main             Up (unhealthy)

so, my application.properties

in this case, I have only 4 connections on the server, without any issues with licenses

spring.datasource.driverClassName = com.intersystems.jdbc.IRISDriver
spring.datasource.url = jdbc:IRIS://127.0.0.1:9091/USER
spring.datasource.username = _SYSTEM
spring.datasource.password = 1234
spring.datasource.testOnBorrow = true
spring.datasource.testWhileIdle = true
spring.datasource.timeBetweenEvictionRunsMillis = 60000
spring.datasource.minEvictableIdleTimeMillis = 30000
spring.datasource.validationQuery = SELECT 1
spring.datasource.max-wait = 8000
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.InterSystemsIRISDialect
spring.jpa.hibernate.ddl-auto = create
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false = false
spring.datasource.hikari.maximumPoolSize = 4