%CSP.Mgr.GatewayMgr
abstract class %CSP.Mgr.GatewayMgr
The Gateway Manager class defines an API used to control a Gateway from ObjectScript code. These provide the infrastructure for accessing (and modifying) the Gateway's internal tables, configuration, and log files from participating servers. This functionality is only provided by Version 2012 Gateways and later.Participating InterSystems IRIS servers are those to which the Gateway holds at least one connection. The Gateway will not allow access to these facilities from any other client. This does mean, however, that ObjectScript routines cannot access Gateway resources until the Gateway has created its first connection to that server - even if the Gateway contains a configuration (under 'Server Access') for accessing that InterSystems IRIS server.
Security
For read-oriented methods (e.g. GetDefaultParams()), users must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.For update-oriented methods (e.g. SetDefaultParams()), users must hold the %Admin_Manage:Use privilege.
Logging
All Gateway Manager commands are recorded in the Event Log (Gateway Log Level 'v2'). For example a request for the configuration file would be logged as:
Gateway Management: CallBack Request for Information Command=sys_get_CSP_ini; Bytes Returned=4206; CSPSYS=sys_set_config:default&Server_Response_Timeout=300
Gateway Management: Response to CallBack: /csp/samples/%CSP.Callback.cls HTTP/1.1 200 OK Content-Type= application/x-www-form-urlencoded Connection: close Content-Length: 83 CSPID: MyToken
Gateway Management: Bad Request CSPrequest: xxx_yyy_CSP_log
Types of Methods
The methods are divided into two groups. Those that GET information from the Gateway and those that SEND information or action requests to the Gateway. These methods send asynchronous requests to the Gateway. To get a list of gateways see %CSP.Mgr.GatewayRegistry.
GET |
GET methods wait for ten seconds for the CSP infrastructure to process the
request.
|
SEND | The status return indicates that the request was successfully
sent to the Gateway. However, it does not indicate that updates were successfully applied.
When a configuration is interactively modified, each parameter will be fully checked for validity. If a parameter or a value give for a particular parameter is unacceptable, then an error will be generated and the existing value is left unmodified. In some cases, the Gateway will modify a value such that it makes more sense in the context of the current configuration. For these cases a warning is generated with notification of the 'corrected' value. For commands updating configuration parameters, the new values should appear as a list of [name,value] pairs. For example:
$lb("Server_Response_Timeout=90","Queued_Request_Timeout=70")
|
Example:
%SYS>s Reg=$SYSTEM.CSP.GetGatewayRegistry() %SYS>s Mgrs=Reg.GetGatewayMgrs() %SYS>w Mgrs.Count() 1 %SYS>s Mgr=Mgrs.GetAt(1) %SYS>w Mgr.Port 57775 %SYS>s Status=Mgr.GetCSPIni(.ini) %SYS>zw ini ini("[APP_PATH_INDEX]","/csp")="Enabled" ini("[LOCAL]")="" ini("[LOCAL]","Maximum_Session_Connections")=3 ini("[LOCAL]","Minimum_Server_Connections")=3 ini("[LOCAL]","TCP_Port")=56781 ini("[SYSTEM]","Configuration_Initialized")="Thu Oct 27 08:57:23 2011" ini("[SYSTEM]","Configuration_Initialized_Build")=1201.1264 ini("[SYSTEM]","Queued_Request_Timeout")=60 ini("[SYSTEM]","SM_Timeout")=300 ini("[SYSTEM]","Server_Response_Timeout")=60 ini("[SYSTEM]","sys_shm_inst")=1 ini("[SYSTEM]","sys_timestamp")=1336083061
Property Inventory
Method Inventory
- ActivateCSPIni()
- ClearCSPLog()
- ClearCache()
- CloseConnections()
- GetApplicationParams()
- GetApplicationPaths()
- GetCSPIni()
- GetCSPLog()
- GetDefaultParams()
- GetInfo()
- GetServerParams()
- GetServerStatus()
- GetServers()
- GetSystemMetrics()
- GetSystemStatus()
- GetThisServerName()
- SetApplicationParams()
- SetDefaultParams()
- SetServerParams()
- SetServerStatus()
Properties
The Server and Port information of the Gateway being managed. This is used if connecting using the server name fails.
LastConnectTime contains the data/time of the last time this Gateway connected to this InterSystems IRIS instance
ResponseBufferTimeout the maximum time the Mgr will before for the next portion of the response. 'GET's wait for a response from the Gateway. The response is sent in buffers. This is the maximum time the Manager will wait for the next buffer to be send, including the first buffer, i.e., the response must begin within ResponseBufferTimeout seconds of the request. This is measured in seconds. The default value is 10 seconds.
The Server and Port information of the Gateway being managed. If connecting with the server name fails, the IP Address will be used instead.
State has one of the following values:
- "a" - This gateway has a live connection to the currently-running instance of InterSystems IRIS.
- "i" - This gateway was connected to this InterSystems IRIS instance some time in the recent past (currently one month), but is does not have a live connection to the currently-running InterSystems IRIS instance
The Version of the Gateway being managed.
.Methods
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
The values of clearFilenames determines the exact action of the method.
- An empty or undefined value indicates that the entire cache should be cleared.
- A list of the file names to be purged from the cache.
- A file name may contain a
wildcard, '*'.
1. Clear all forms named 'zenutils.js', regardless of path: */zenutils.js 2. Clear all forms from the '/csp/samples/images/' location: /csp/samples/images/* 3. Clear all forms whose path/name contains the '/Zen_' token: */Zen*
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
connections specifies which connections are to be closed:
Value | Connections Closed|
---|---|
* | All connections |
Server Name | Close connections to a specific server, e.g. LOCAL |
number | Close a specific connections, e.g. 3 |
list of numbers | Close a list of specific connections, e.g, $lb(2,5,7) |
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
path indicates the application path whose parameters are being requested. See the GetApplicationPaths()() method to obtain a list of the application paths defined for this Gateway.
configAry [name,value] pairs are returned in local array
See SetApplicationParams() for a list of parameters.
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
appPaths is a list of strings, each an application path.
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
format is the return format:
"array" - return as
an array.
"stream" - returns as a %Stream.GlobalCharacter.
cspIni
If format="array", tke values are returned in a two-level array. A partial example:
cspini("[APP_PATH:/]", "Default_Server" ) = "LOCAL" cspini("[APP_PATH:/csp]", "Default_Server") = "LOCAL" cspini("[APP_PATH:/csp]", "GZIP_Minimum_File_Size") = "0" cspini("[LOCAL]", "Ip_Address") = "127.0.0.1" cspini("[LOCAL]", "Maximum_Server_Connections") = "4" cspini("[LOCAL]", "Maximum_Session_Connections") = "3" cspini("[LOCAL]", "Minimum_Server_Connections") = "30" cspini("[LOCAL]", "Username") = "CSPSystem"
If format="stream", the data is returend as a %Stream.GlobalCharacter object which allows the CSP Ini text to be parsed directly.
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
cspLogStream is a %Stream.GlobalCharacter stream from which you can read the lines of the returned from the event log When you close the stream, the temporary data from the server will be removed.
startDateTime the time from which to start returning events. The format the date one of the following:
C format: e.g.: Fri Apr 01 22:28:23 2011 RFC1123 format: e.g.: Mon, 26 Jul 2010 15:09:28 GMT
The value "now" [default] will be replaced by the current date and time.
direction the direction to scan for events: 1 -> forward; -1 -> backward
nEvents the number of Events to return from the event file. Each event consists of one line in a structured name-value pair format. Caution: The CSP Log file contains tens of thousands of lines of text. If you request too many events in one call, GetCSPLog() will timeout waiting for the Gateway to finish transfering all the data.
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
config values are returned as named parameters of the object. See SetDefaultParams() for a list of parameters.
configAry [name,value] pairs are returned in local array
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
format is the return format:
"object" - return as
%CSP.Mgr.GatewayInformation object;
"stream" - returns as the information as XML in a %Stream.GlobalCharacter.
info if format="object" this is an instance of the
%CSP.Mgr.GatewayInformation class.
if format="stream", this is a %Stream.GlobalCharacter containing the information as XML
<?xml version="1.0" encoding="UTF-8" ?> <GatewayInformation> <Version>2011.2.0.202.0</Version> <Build>1102.1226</Build> <WebServerName>localhost</WebServerName> <WebServerPort>57773</WebServerPort> <WebServerSoftware>Apache Cache_Server_Pages-Apache_Module/2011.2.0.202.0-1102.1226</WebServerSoftware> <ActiveInterface>apapi</ActiveInterface> </GatewayInformation>
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
server indicates that server path whose values are being requested. See the GetServers()() method to obtain a list of the servers defined for this Gateway.
configAry [name,value] pairs are returned in local array
See SetServerParams() for a list of parameters.
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
GetServerStatus() retrieves the 'online' status for either a single or a specified range of InterSystems IRIS servers
path is the application path as defined in the Gateway Configuration (or "*" for all)
server is the InterSystems IRIS server name as defined in the Gateway configuration (or "*" for all)
An array of servers and their status is returned as follows:
statusAry(path,server_number)=$List(server, status)
Where status is '1' for online and '0' for offline
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
serverList is a list of strings, each the name of a configured server.
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
metricsAry [name,value] pairs are returned in local array
Security: No privileges are necessary to call this method.
GetSystemStatus() gets the System Status.
format is the return format:
"object" - return as an object;
"stream" - returns as the information as XML.
systemStatus if format="object" returned as an instance of a %CSP.Mgr.GatewaySystemStatus
object. There are the following main
sections to the status: Connections, Servers, Application Paths, Alternative Servers, and Cached Form.
if format="stream", this is a %Stream.GlobalCharacter containing the information as XML
Connection, number | |
WebServerPID | |
CacheServerName | |
IpAddress | |
TCPPort | |
CacheServerPID | |
Status | |
IdleTime | |
Activity | |
CacheServer, number | |
CacheServerName | |
IpAddress | |
TCPPort | |
TotalConnections | |
ConnectionsInUse | |
PrivateConnections | |
Activity | |
QueuedRequests | |
Application Path, path | |
AlternativeServer | |
CacheServerName | |
Activity | |
Status | |
Alternative Server, number | |
CacheServerName | |
Activity | |
Status | |
CachedForms | |
FormsInCache | |
CachedData | |
CacheActivity | |
CachedForms,Form, form name | |
Size | |
Activity |
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
serversAry [number,name] pairs are returned in local array
Security: To call this method, you must hold the %Admin_Operate:Use or %Admin_Manage:Use privilege.
path indicates that application path being updated. See the GetApplicationPaths()() method to obtain a list of the application paths defined for this Gateway.
configUpdates a local array whose [name,value] pairs are used to update the configuration.
Param Name | Description |
---|---|
Application_Status | Service Status: Enabled, Disabled |
Extra_CGI_Env_Variables | Extra CGI Environment Variables |
Proc_Class | Process with this class |
GZIP_Compression | GZIP Compression: Enabled, Disabled |
GZIP_Mininum_File_Size | GZIP minimum file size |
GZIP_Exclude_File_Types | GZIP exclude file types |
KeepAlive | Keep alive: Enabled, Disabled, No Action |
Non_Parsed_Headers | Non-parsed headers: Enabled, Disabled |
Default_Server | Default server |
Alternative_Servers | Alternative Servers. This takes one of the following values: LoadBalancing - Load balancing and failover FailOver - Failover only Disabled - Disabled |
Alternative_Server_[n] | Alternative server |
Alternative_Server_[n]_Status | Alternative Server Status: Enabled, Disabled, OFFLINE |
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
configUpdates a local array whose [name,value] pairs are used to update the configuration.
Param Name | Description |
---|---|
Instance_Host_Name | Instance host name |
SM_Forms | Access to these forms |
Username | User name |
Password | Password All passwords will be encrypted (as appropriate) before they are saved in CSP.ini. |
SM_Timeout | Session Timeout |
System_Manager | System Manager Machine(s) |
System_Manager_UNPW_Override | Override Username and Password Checkbox "1"=checked; ""=unchecked |
Server_Response_Timeout | Server response timeout |
Queued_Request_Timeout | Queued request timeout |
No_Activity_Timout | No activity timeout |
Env_Parameters | Event Log Level |
Event_Log_File | Event log file |
Event_Log_Rotation_Size | Event log rotation size |
Maximum_Logged_Request_Size | Maximum data logged per HTTP request |
Document_Root | Web document root |
ASP_Directory | Temp ASP Directory |
WS_Service_Status | Service State: Enabled,Disabled |
NSD_Document_Root | NSD Document Root |
Server_Error | Server Error |
Server_Busy | Server_Busy |
Server_Unavailable | Server Unavailable |
Server_Timeout | Server timeout |
Connection_Closed | Connection closed |
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
server indicates that server path being updated. See the GetServers()() method to obtain a list of the servers configured on this Gateway.
configUpdates a local array whose [name,value] pairs are used to update the configuration.
Param Name | Description |
---|---|
Server_Status | Server status: Enabled, Disabled |
Ip_Address | IP Address |
TCP_Port | TCP Port |
Minimum_Server_Connections | Minimum server connections |
Maximum_Server_Connections | Maximum server connections |
Connection_Security_Level | Connection Security Level This takes a numeric value: 0 Password 1 Kerberos 2 Kerberos with Packet Integrity 3 Kerboros with Encryption 10 SSL |
Product | Product This takes a numeric value: 0 (deprecated) 1 InterSystems IRIS |
Service_Principal_Name | Service principal name |
Keytable | Key table |
SSLCC_Protocol | SSL Protocol Deprecated; use SSLCC_Protocol_Min and SSLCC_Protocol_Max instead |
SSLCC_Protocol_Min | Minimum SSL/TLS Protocol Version This takes a numeric value: 4 TLSv1.0 8 TLSv1.1 16 TLSv1.2 32 TLSv1.3 |
SSLCC_Protocol_Max | Maximum SSL/TLS Protocol Version This takes a numeric value: 4 TLSv1.0 8 TLSv1.1 16 TLSv1.2 32 TLSv1.3 |
SSLCC_Key_Type | SSL Key Type This takes a numeric value: 1 DSA 2 RSA |
SSLCC_Verify_Peer | SSL Verify Peer checkbox: "1"=Checked;""=Unchecked" |
SSLCC_Cipher_Suites | The Cipher Suite list (TLSv1.2 and below) |
SSLCC_Cipher_Suites_1_3 | The Cipher Suite list (TLSv1.3) |
SSLCC_Certificate_File | SSL Certificate File |
SSLCC_Certificate_Key_File | SSL Certifictate Key File |
SSLCC_CA_Certificate_File | SSL CA Certificate File |
Alternative Servers should be saved as a contiguous set of alternative servers as follows:
Alternative_Server_1=APPSERVER1 Alternative_Server_1_Status=Enabled Alternative_Server_2=APPSERVER2 Alternative_Server_2=Disabled
Security: To call this method, you must hold the %Admin_Manage:Use privilege.
SetServerStatus() sets the 'online' status for either a single or a specified range of InterSystems IRIS servers
path is the application path as defined in the Gateway Configuration (or "*" for all)
server is the InterSystems IRIS server name as defined in the Gateway configuration (or "*" for all)
status is '1' for online and '0' for offline
Security: To call this method, you must hold the %Admin_Manage:Use privilege.