Skip to main content


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

SQL Table Name: Config.ECPServers

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 syntax 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.


; Use class methods to create an instance
%SYS>s Properties("Address")=""
%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
%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
%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)

Property Inventory


parameter CAPITALNAME = 1;
Server name is always capitalized.


property Address as Config.Host (MAXLEN = 256, MINLEN = 1) [ Required ];
IP Address to connect to.
Property methods: AddressDisplayToLogical(), AddressGet(), AddressGetStored(), AddressIsValid(), AddressLogicalToDisplay(), AddressLogicalToOdbc(), AddressNormalize(), AddressSet()
property BatchMode as %Boolean [ InitialExpression = 0 , Required ];
ECP Server runs in batch mode.
Property methods: BatchModeDisplayToLogical(), BatchModeGet(), BatchModeGetStored(), BatchModeIsValid(), BatchModeLogicalToDisplay(), BatchModeLogicalToXSD(), BatchModeNormalize(), BatchModeSet(), BatchModeXSDToLogical()
property MirrorConnection as %Integer [ InitialExpression = 0 , Required ];
Specifies the behavior of this connection with regard to mirrored database servers.


  • 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 methods: MirrorConnectionDisplayToLogical(), MirrorConnectionGet(), MirrorConnectionGetStored(), MirrorConnectionIsValid(), MirrorConnectionLogicalToDisplay(), MirrorConnectionNormalize(), MirrorConnectionSet(), MirrorConnectionXSDToLogical()
    property Port as %Integer [ InitialExpression = 1972 , Required ];
    IP Port to connect to.
    Property methods: PortDisplayToLogical(), PortGet(), PortGetStored(), PortIsValid(), PortLogicalToDisplay(), PortNormalize(), PortSet(), PortXSDToLogical()
    property SSLConfig as %Integer [ InitialExpression = 0 , Required ];
    Use SSL configuration (%ECPClient) for the ECP connection.
    Property methods: SSLConfigDisplayToLogical(), SSLConfigGet(), SSLConfigGetStored(), SSLConfigIsValid(), SSLConfigLogicalToDisplay(), SSLConfigNormalize(), SSLConfigSet(), SSLConfigXSDToLogical()


    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, BatchMode As %Boolean
    List ECPServers in a CPF file.

    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.
    0 - Standard report list format
    1 - ^CONFIG global format
    2 - CPF file format format
    Note: This query may change in future versions


    index (CPFNameSectionHeaderName on CPFName,SectionHeader,Name) [IdKey, Type = key, Unique];
    Index methods: CPFNameSectionHeaderNameCheck(), CPFNameSectionHeaderNameDelete(), CPFNameSectionHeaderNameExists(), CPFNameSectionHeaderNameOpen(), CPFNameSectionHeaderNameSQLCheckUnique(), CPFNameSectionHeaderNameSQLExists(), CPFNameSectionHeaderNameSQLFindPKeyByConstraint(), CPFNameSectionHeaderNameSQLFindRowIDByConstraint()

    Inherited Members

    Inherited Properties

    Inherited Methods


    Storage Model: Storage (Config.ECPServers)

    FeedbackOpens in a new tab