%SYS
MapMirrors Class Reference

This class allows you to activate and view Mirror definitions in the [MapMirrors. More...

Inheritance diagram for MapMirrors:
Collaboration diagram for MapMirrors:

Static Public Member Functions

_.Library.Integer Count (_.Library.String mirrorname, _.Library.Boolean othersonly, _.Library.String CPFFile)
 Returns the number of mirror set members defined in a. More...
 
- Static Public Member Functions inherited from GenericMapMethods
_.Library.Status Delete (_.Library.String ID, _.Library.String Name, _.Library.String CPFFile, _.Library.Integer Flags)
 Delete a mapping from a CPF file. More...
 
_.Library.Boolean Exists (ID, _.Library.String Name, _.Library.ObjectHandle Obj, _.Library.Status Status, _.Library.String CPFFile, _.Library.Integer Flags)
 Checks for the existence of a mapping in a CPF file. More...
 
_.Library.Status Get (_.Library.String ID, _.Library.String Name, _.Library.String Properties, _.Library.String CPFFile, _.Library.Integer Flags)
 Get a mapping's properties from a CPF file. More...
 
_.Library.Status GetList (_.Library.String ID, _.Library.String Name, _.Library.String CPFFile, _.Library.Integer Flags)
 Returns the properties from a instance of a mapping section from a CPF file by value in $list format
More...
 
_.Library.Status Modify (_.Library.String ID, _.Library.String Name, _.Library.String Properties, _.Library.String CPFFile, _.Library.Integer Flags)
 Modify a mapping in a CPF file. More...
 
_.Library.ObjectHandle Open (_.Library.String ID, _.Library.String Name, _.Library.String CPFFile, _.Library.Integer concurrency, _.Library.Status Status, _.Library.Integer Flags)
 Open an instance of a mapping object in a CPF file. More...
 

Public Attributes

 AgentAddress
 Network address (IP address preferred to avoid DNS issues) More...
 
 AgentPort
 Port # which the agent on this system is configured to listen. More...
 
 AsyncMemberType
 AsyncMemberType indicates the async member is a disaster recovery (DR), read-only reporting or read-write reporting async member. More...
 
 ConnectsTo
 Reserved for future use. More...
 
 DejournalFilter
 The name of the filter class for mirror dejournaling, null string means the dejournal filter is disabled. More...
 
 ECPAddress
 This is the Super Server address referenced in the documentation for this. More...
 
 EncryptCommunication
 When SSL is not required by <Property>Config.Mirrors.UseSSL</Property> mirror wide. More...
 
 GUID
 Uniquely identifies this node in the mirror. More...
 
 InstanceDirectory
 The installation directory of the instance (the parent of the mgr directory). More...
 
 MemberType
 Numeric value indicating the type of mirror member. More...
 
 MirrorAddress
 Address (IP preferred to avoid DNS troubles) the other mirror members. More...
 
 MirrorSSPort
 Super Server port for this instance. More...
 
 Name
 This is the name of this instance in the mirror. More...
 
 SSLComputerName
 Value of the DN field in the SSL certificate which is part of. More...
 
- Public Attributes inherited from GenericMapProperties
 CPFFile
 CPF file which the object maps to. More...
 
 Comments
 Embedded comments in the CPF file. More...
 
 Flags
 Flags governing how the object is processed when Save() is called. More...
 
 ID
 ID where the mapping is. More...
 
 Name
 Name of the mapping. More...
 

Static Public Attributes

 CAPITALNAME = None
 The Mirror System Name is always uppercase

 
- Static Public Attributes inherited from GenericMapMethods
 CAPITALNAME = None
 Determines if the Name specified in the index should be capitalized. More...
 
 SECTIONTYPE = None
 This parameter governs how the class creates audit records. More...
 
- Static Public Attributes inherited from GenericMapProperties
 DOMAIN = None
 This class contains properties which are included by classes which manipulate namespace mappings in the CPF file. More...
 

Static Private Member Functions

_.Library.Status OnDeleteCallBack (_.Library.ObjectHandle Obj)
 Called from Delete(). More...
 

Detailed Description

This class allows you to activate and view Mirror definitions in the [MapMirrors.

&ltmirror name&gt] section of the CPF file through programatic APIs. The properties in this section are managed via the Enterprise Management system as the information needs to be kept in sync across all of the instances which share the mirror definition. The ^MIRROR utility or the System Management Portal may be used to withdraw from a mirror in which case it will delete one of these sections.

In all of the Config methods, the CPFFile parameter defaults to the currently active CPF file. If you wish to query a different CPF file the file must be specifyied in the method call.
The Flags parameter is normally omitted; the defaults are usually sufficient for most cases.

You can use either the Get API to retrieve an array containing all of the parameters from the object or you can open an instance using the Object syntax to craete a reference variable.

EXAMPLE:

    ; Use class methods to retrieve properties
    SYS>s MirName="TEST"
    SYS>s Member="TESTSERVER/DATA1"
    SYS>s Status=##Class(Config.MapMirrors).Get(MirName,Member,.Properties)
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    SYS>zw Properties
    Properties("AgentAddress")="testserver"
    Properties("AgentPort")=2188
    Properties("AsyncMemberType")=0
    Properties("ConnectsTo")=""
    Properties("DejournalFilter")=""
    Properties("ECPAddress")="testserver"  ;This is the Super Server address in the documentation
    Properties("EncryptCommunication")=0
    Properties("GUID")="F23D0A92-5961-4E2A-BFE9-EF91880323F0"
    Properties("InstanceDirectory")="c:\intersystems\data1\"
    Properties("MemberType")=0
    Properties("MirrorAddress")="testserver"  ;This is also called the mirror private address
    Properties("MirrorSSPort")=1972
    Properties("PreferredArbiter")=""
    Properties("SSLComputerName")=""
    

Member Function Documentation

◆ OnDeleteCallBack()

_.Library.Status OnDeleteCallBack ( _.Library.ObjectHandle  Obj)
staticprivate

Called from Delete().


Any error returned here will keep the object from being deleted.

◆ Count()

_.Library.Integer Count ( _.Library.String  mirrorname,
_.Library.Boolean  othersonly,
_.Library.String  CPFFile 
)
static

Returns the number of mirror set members defined in a.

configuration. If <parameter>othersonly</parameter> is set we exclude ourselves (if we're listed) from the total.

Member Data Documentation

◆ AgentAddress

AgentAddress

Network address (IP address preferred to avoid DNS issues)

mirror members which connect to the primary should use to contact the Agent on this failover member. This is omitted reporting members as the agent is not used for mirroring on those systems. This is required on failover members. This field does not need to be specified on DR members although it will need to be filled in before promotion of the DR to a Failover member. It is best to configure the agent and the address information earlier rather than later.

The agent can transfer journal data so a private address may be desirable here to avoid network congestion.  

◆ AgentPort

AgentPort

Port # which the agent on this system is configured to listen.

on. <classmethod>##class(SYS.Agent).GetApplicationPort()</classmethod> will return the current value if the local agent is active.  

◆ AsyncMemberType

AsyncMemberType

AsyncMemberType indicates the async member is a disaster recovery (DR), read-only reporting or read-write reporting async member.


0 - Disaster Recovery (DR). This is a disaster recovery async member, all its mirrored databases are read-only mirrored databases.
1 - Read-Only Reporting. This is a reporting async member, all its mirrored databases could be read-only or read-write databases, the default is read-only when the database is created.
2 - Read-Write Reporting. This is a reporting async member, all its mirrored databases could be read-only or read-write databases, the default is read-write when the database is created.
 

◆ ConnectsTo

ConnectsTo

Reserved for future use.

 

◆ DejournalFilter

DejournalFilter

The name of the filter class for mirror dejournaling, null string means the dejournal filter is disabled.


This property is meaningful only for Reporting Async members.  

◆ ECPAddress

ECPAddress

This is the Super Server address referenced in the documentation for this.

instance. External mirror-aware systems can connect to the primary using this address. Currently the only such external systems are ECP application servers connecting to failover members. This is distributed to the ECP clients, along with the address for the other failover member (if there is one) when an ECP client builds a connection to a mirror.

Other mirror members may also make connections to a member's Super Server address for certain control and monitoring purposes. When a member is primary, async members attempt to establish their data channel to the member using this address if the mirror private address is not accessible, which means that journal data may travel over the network via this address.

This a required field on failover members, optional on others.  

◆ EncryptCommunication

EncryptCommunication

When SSL is not required by <Property>Config.Mirrors.UseSSL</Property> mirror wide.

setting, this property controls whether this member uses SSL for its outgoing connections and/or whether it requires SSL for its incoming connections. Whenever SSL is used to encrypt a connection, the endpoints also perform authorization and verify that the DN name in the SSL configuration matches the listed <property>SSLComputerName</property> for that system in the Mirror configuration.

Values are:

  • 0 - Encryption is not required. Outgoing connections may still be encrypted if the member we connect to requires SSL for incoming connections.

  • 1 - SSL is used to encrypt outgoing connections. the server must have an SSL Mirror configuration or the connection will fail

  • 2 - Encryption is required for incoming connections. The clients which connect must have an SSL Mirror configuration or the connection will fail

  • 3 - Both 1+2: Outgoing connections are encrypted, encryption is required for incoming connections

     

◆ GUID

GUID

Uniquely identifies this node in the mirror.

Apart from identifying

the nodes, primary used to identify the instance that owns a particular copy of a mirrored database.  

◆ InstanceDirectory

InstanceDirectory

The installation directory of the instance (the parent of the mgr directory).

Used primarily on failover members to identify the instance to the agent  

◆ MemberType

MemberType

Numeric value indicating the type of mirror member.



0 - Failover member
1 - &ltreserved for future use&gt
2 - Async member (doesn't accept client connections)
(defined in syMirror.inc as FailoverMemberType, AsyncMemberType)  

◆ MirrorAddress

MirrorAddress

Address (IP preferred to avoid DNS troubles) the other mirror members.

should use to contact the Super Server on this instance. When a InterSystems IRIS instance is running as the primary failover member, each of the other mirror members uses the mirror private address to establish its mirror data channel, the channel over which it receives journal data from the primary and the most heavily used mirror communication channel.

Failover members are restricted in that they can only use this address for establishing the connection to receive live updates. Async members attempt to use this address to connect to the primary but fall back to the Super Server address (<property>ECPAddress</property> property) if necessary.

This documentation refers to ths property as the Mirror Private Address.  

◆ MirrorSSPort

MirrorSSPort

Super Server port for this instance.

Used in conjunction with both the

<property>MirrorAddress</property> and the <property>ECPAddress</property> by clients establishing connections to this instance.  

◆ Name

Name

This is the name of this instance in the mirror.

Mirror system names

must be unique (enforced by Enterprise Manager) across all of the mirrors which the EM manages, as an instance has a single mirror system name which may appear in multiple mirror sets (eg. a reporting member may connect to multiple mirrors). For the most part the <property>GUID </property> is used to identify a mirror member, the Name is used for display purposes.

The name must not contain a colon (':') and is converted to uppercase before saving.  

◆ SSLComputerName

SSLComputerName

Value of the DN field in the SSL certificate which is part of.

the Mirror SSL configuration on this instance. When SSL is enabled an instance sends this value as part of establishing a TCP connection. Both sides of the connection verify that the other side's DN value matches a value stored in the configuration. It is best for every mirror member to have a unique DN value as otherwise it may be possible for a system that was removed from the mirror to still connect if it's DN value matches the DN stored with another system of the same type (eg. async v. failover).