Home Applications IRIS-fast-ECP-setup


This application is not supported by InterSystems Corporation. Please be notified that you use it at your own risk.
1 reviews
IPM installs
Pull requests
Fast setup of ECP client / sever with almost no manual intervention.

What's new in this version

move to archive

Testing ECP-based applications often take quite some effort for setup and preparation.
I have created a Docker-based workbench that allows you to have it quick at hands.
And if you crash it? You just give your containers a fresh start.
The whole setup runs code-based during the start-up of your instance.
In that sense, it is also a portable coding example using ZPM and the objectscript-docker-template

It’s a fast setup of ECP client / server with almost no manual intervention
with everything included in the repository available from OEX.
As the default community-license doesn’t include multi-server-features (ECP) you might
have to use your own license or get a temporary loan license from WRC that you add to
the downloaded set from GitHub as ECP_iris.key before starting.

From terminal/command prompt in the download directory run

      docker-compose build 

And it will prepare 2 containers for ECPserver and ECPclient.
They are pretty much the same except that they get a hostname: server and client
This allows communication between the containers based on network names
instead of dynamic (and unpredictable) DHCP addresses.
The internal ports for external access as SMP, … 1972,52773,53773 are published to
41773,42773,43773 for the server and 41443,42443,43443 for the client

Next, you launch both containers by

      docker-compose up -d server
      docker-compose up -d client  

Don’t start containers together but in sequence, as it may take some time until
the whole configuration completes [only during the first startup] of the container.
For a simple reason I had to learn:
The final hostname is not available in the temporary containers during the build!
And there is obviously a difference!

In addition, the client can only connect when the server finished startup.
I experienced up to 120 sec until ECP was running stable and both startups completed.

Impatient people (as me) meanwhile watch the progress by

      docker logs <containername>   

It is exactly the output you see in messages.log

You may either open a session to server or client by

      docker-compose exec server iris session iris
      docker-compose exec client iris session iris

or you use SMP at local ports 42773 or 42443

Test data:
In namespace USER Code and Data are stored in separated databases:
Code (Classes) are in database USER in both containers.
Data are stored in the database IRISLOCALDATA on the server
On the client, data from the same database are used as RemoteDatabase over ECP

Classes and test data are borrowed from SAMPLES in Caché and preloaded.

  • Sample.Address
  • Sample.Company
  • Sample.Customer
  • Sample.Employee
  • Sample.Person
  • Sample.USZipCode
  • Sample.Utils
  • Sample.Vendor

So trying, testing, extending, screwing this workbench by
your own Classes, Tables, Data, Queries are ready to go.

Article in DC

see Video

Made with
0.1.605 Nov, 2023
ObjectScript quality test
Developer Environment
Works with
InterSystems IRIS
First published
27 Mar, 2021
Last checked by moderator
25 Jul, 2023Works