Skip to main content

Web Gateway Registry in InterSystems IRIS

The InterSystems Web Gateway Registry registers each connected Web Gateway installation with InterSystems IRIS® and provides the infrastructure to allow InterSystems IRIS code to interact with those installations (to clear caches and so on). Such programmatically controlled interactions may include reading and modifying the Web Gateway’s runtime configuration and collecting system status and log information. The relevant classes are as follows:

%CSP.Mgr.GatewayRegistry (The Gateway Registry)
%CSP.Mgr.GatewayMgr  (A Connected Gateway)

The following code lists all connected (i.e. active) Web Gateway installations and writes the web server IP address, port and Web Gateway build number to the console window.

Set registry = $system.CSP.GetGatewayRegistry()
Set gateways = registry.GetGatewayMgrs()
For no=1:1:gateways.Count() {
     Set gateway = gateways.GetAt(no)
     Write !,no, " : "
     Write gateway.IPAddress,":",gateway.Port," ",gateway.Version
}

When InterSystems IRIS is first started this list is empty. As Administrator and User activity increases, expect at least one entry to appear for the Web Gateway which serves your instance’s applications.

You can find further documentation associated with the classes listed above. Some code examples follow to illustrate common tasks.

List Default Parameters

Kill defaults
Do gateway.GetDefaultParams(.defaults)
ZWrite defaults

Update Default Parameter(s)

Kill newpars
Set newpars("Server_Response_Timeout")=30
Do gateway.SetDefaultParams(.newpars)

List Servers

Set status = gateway.GetServers(.servers)
For no=1:1:$ListLength(servers) {
     Set server = $List(servers,no)
     Write !,no, " : ",server
}

List Server Parameters

Kill serverpars
Do gateway.GetServerParams("LOCAL",.serverpars)
ZWrite serverpars

Update Server Parameter(s)

Kill newpars
Set newpars("Maximum_Server_Connections")=250
Do gateway.SetServerParams("LOCAL",.newpars)

List Application Paths

Set status = gateway.GetApplicationPaths(.paths)
For no=1:1:$ListLength(paths) {
     Set path = $List(paths,no)
     Write !,no, " : ",path
}

List Application Parameters

Kill pathpars
Do gateway.GetApplicationParams("/csp",.pathpars)
ZWrite pathpars

Update Application Parameter(s)

Kill newpars
Set newpars("GZIP_Compression")="Enabled"

Clear Gateway cache

Do gateway.ClearCache("*")

Forcing the Web Gateway to Reload Its Configuration

There are occasions when the Web Gateway’s configuration is modified by external agents (i.e. agents other than the Web Gateway’s own Systems Management Suite).

There are two methods for interactively instructing the Web Gateway to reload its configuration, and in a way that doesn’t require a complete restart.

Using the InterSystems IRIS Web Gateway Registry

The following Registry Method is provided:

Set status = %CSP.Mgr.GatewayMgr.ActivateCSPIni()

When successfully called, the Web Gateway reads its configuration file and activates all changes made.

Using Scripts External to InterSystems IRIS

Scripts should add the following line (case-sensitive) to the SYSTEM section of the modified Web Gateway configuration file:

[SYSTEM]
RELOAD=1

The Web Gateway caretaker daemon checks the RELOAD flag approximately every minute and, if correctly set, reloads and reactivates its configuration and removes the flag from the file. The following message is written to the Event Log after a successful reload operation:

Gateway Management 
Gateway Configuration Reloaded and Reactivated
FeedbackOpens in a new tab