As the error says, you have to install the JDK 11 on your computer from here and configure JAVA_HOME system environment variable:

Perhaps you have already configured it but with newer version.

From the official documentation: 

The compact database operation is designed to run concurrently with normal database activity. The operation does consume some system resources, however, and may not complete if the system is under extremely high load. For these reasons, InterSystems recommends running this and other database reorganization operations (including compacting and defragmenting globals) during off-peak hours, and running only one such operation on a system at a time.

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

You can do it by hand, specifying in the JDBC url used the schema to connect, so you have to disconnect from the previous connection and connect again with the new **CORRECTION** namespace:

jdbc:CACHE://127.0.0.1:1972/NAMESPACE1--> jdbc:CACHE://127.0.0.1:1972/NAMESPACE2

The documentation is pretty clear, you have to include the external table as a subquery:

FROM Sample.Person,(SELECT * FROM Mylink.Person)

That means that you have to modify your view to use the external table in that way. 

I was Java developer for more than 15 years and for me to use arguments by reference was totally disgusting, you can use it in Java, but it's not very common, in Objectscript is the opposite, Output arguments are the rule, no the exception.

Calling instance methods using variables not declared as arguments made me feel dirty.

PUT and DELETE works, but you have to use as id the generated by FHIR server, you can't use MRN or any other type of id.