Class Reference
IRIS for UNIX 2019.2
InterSystems: The power behind what matters   
Documentation  Search
  [%SYS] >  [Config] >  [ECPServers]
Private  Storage   

persistent class Config.ECPServers extends %Persistent, Config.CommonMultipleMethods, Config.CommonProperties, %SYSTEM.Help

This class allows you to modify and view the [ECPServers] section of the CPF file through programatic APIs. While properties are usually modified through the System Management portal, there may be some occasion where modifying them through the API's is best for your system. In all the Config methods, if you do not specify the CPFFile parameter, the currently active CPF file is used. If you wish to modify a CPF file which is not the currently active one, then specify the CPFFile you wish to modify in the method call.
The Flags parameter does not normally need to be specified; the defaults are usually sufficient for most cases.
You can use either the provided API's (Create/Get/Modify/Delete) to modify the properties by passing in the correct parameters, or use Object sytax to open and directly manipulate the config objects (Open() and Exists()). Most objects created here need only to specify the Name of the object, and 1 or 2 properties since the the defaults are what are commonly used for most cases.

EXAMPLE:

; Use class methods to create an instance
%SYS>s Name="SERVERA"
%SYS>s Properties("Address")="127.0.0.10"
%SYS>s Status=##Class(Config.ECPServers).Create(Name,.Properties)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Use class methods to modify properties
%SYS>s Status=##Class(Config.ECPServers).Get(Name,.Properties)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
%SYS>zw Properties
Properties("Address")="127.0.0.1"
Properties("Port")=1973
%SYS>s Properties("Port")=1972
%SYS>s Status=##Class(Config.ECPServers).Modify(Name,.Properties)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Now use Objects to modify properties
%SYS>s Obj=##Class(Config.ECPServers).Open(Name)
; We could have used i ##Class(Config.ECPServers).Exists(Name,.Obj) instead of Open()
%SYS>w Obj.Port
1972
%SYS>s Obj.Port=1975
%SYS>s Status=Obj.%Save()
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Now delete the object we just created
%SYS>s Status=##Class(Config.ECPServers).Delete(Name)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
2 4 4 1


Summary

Properties
Address CPFFile Comments Flags
MirrorConnection Name Port SSLConfig

Methods
%AddToSaveSet %AddToSyncSet %BMEBuilt %CheckConstraints
%CheckConstraintsForExtent %ClassIsLatestVersion %ClassName %ComposeOid
%ConstructClone %Delete %DeleteExtent %DeleteId
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Exists
%ExistsId %Extends %GUID %GUIDSet
%GetLock %GetParameter %GetSwizzleObject %Id
%InsertBatch %IsA %IsModified %IsNull
%KillExtent %KillExtentData %LoadFromMemory %LockExtent
%LockId %New %NormalizeObject %ObjectIsNull
%ObjectModified %Oid %OnBeforeAddToSync %OnDetermineClass
%Open %OpenId %OriginalNamespace %PackageName
%PhysicalAddress %PurgeIndices %Reload %RemoveFromSaveSet
%ResolveConcurrencyConflict %RollBack %Save %SaveDirect
%SaveIndices %SerializeObject %SetModified %SortBegin
%SortEnd %SyncObjectIn %SyncTransport %UnlockExtent
%UnlockId %ValidateIndices %ValidateObject Create
Delete Exists Get GetList
Help Modify Open XMLDTD
XMLExport XMLExportToStream XMLExportToString XMLNew
XMLSchema XMLSchemaNamespace XMLSchemaType


Parameters

• parameter CAPITALNAME = 1;
Server name is always capitalized.

Properties

• property Address as Config.Host(MAXLEN=256,MINLEN=1) [ Required ];
IP Address to connect to.
• property MirrorConnection as %Integer [ InitialExpression = 0,Required ];
Specifies the behavior of this connection with regard to mirrored database servers.

Value:

  • 0: Non-mirrored connection. Access databases on non-mirror members. Also used to connect to async members to access mirror databases, configured by their database paths.
  • 1: Mirrored connection. ECP will automatically find the primary mirror member and will only connect to the primary. Access to mirrored databases is configured by mirror database name.
  • -1: Mirrored connection restricted to the configured mirror member only. The configured member is the one specified by Address and Port. Like value '1', a connection will be established if the configured member is primary and access to mirrored databases is configured by mirror database name. Unlike '1', if the configured member is a Disaster Recovery member, the connection will be established, allowing read-only access to mirrored databases. If the DR member is promoted, the connection will be dropped and will be re-established when it becomes primary. Warning: This setting is not appropriate in typical configurations where mirroring will automatically fail over, as the new primary won't be found. This is for use in specialized DR configurations, or other long-distance configurations, to prevent the application server from being automatically redirected to a primary in a different data center while allowing local read-only access. There is no system utility to set the value of '-1', but it can be specified via this class interface.
  • • property Port as %Integer [ InitialExpression = 1972,Required ];
    IP Port to connect to.
    • property SSLConfig as %Integer [ InitialExpression = 0,Required ];
    Use SSL configuration (%ECPClient) for the ECP connection.

    Queries

    • query List(Names As %String, CPFFile As %String = "", Flags As %Integer = 0, Format As %Integer = 0)
    Selects Name As %String, Address As %String, Port As %Integer, MirrorConnection As %Integer, SSLConfig As %Integer
    List ECPServers in a CPF file.

    Parameters:
    Names - Comma separated list of ECPServer names
    "*" - All records match
    "String,String1" - Any records matching one of these elements
    "String*" - Any record starting with "String"
    "String,String1*,String2" - Any record matching one of these elements, or starting with "String1"
    CPFFile - Name of the CPF file to use. A null string means use the active CPF file.
    Flags - Currently ignored.
    Format
    0 - Standard report list format
    1 - ^CONFIG global format
    2 - CPF file format format
    Note: This query may change in future versions

    Indices

    •index (CPFNameSectionHeaderName on CPFName,SectionHeader,Name) [IdKey,Unique];


    Copyright (c) 2019 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.