Configuration objects

This section provides detailed descriptions for all properties in each node deploy configuration object. A snippet is also provided for each configuration object showing the syntax for specifying all of the configuration values.

NodeDeploy

The NodeDeploy object is the top-level container for all of the node deploy configuration. Figure 3.2, “NodeDeploy relationships” shows the relationships to other configuration objects.

NodeDeploy relationships

Figure 3.2. NodeDeploy relationships


A detailed description of the configuration object properties is in Table 3.1, “NodeDeploy object properties” and a snippet for these properties is in Example 3.2, “NodeDeploy object snippet”.

Table 3.1. NodeDeploy object properties

NameTypeDescription
nodesAssociative array of Node objects keyed by fully qualified node service name.Nodes configured in this file. The nodes may be in the same or different clusters. At least one node must be defined.
availabilityZonesAssociative array of AvailabilityZone objects keyed by availability zone name.Availability zone configurations. Optional. No default.
globalConfigurationString [ ]Array of configuration data that applies to all configured nodes. Optional. No default.

Example 3.2. NodeDeploy object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        globalConfiguration = 
        [
            """
            name = "mysecurity"
            type = "com.acme.security.keystore"
            version = "1.0.0"
            configuration =
            {
                CommunicationSecurity =
                {
                    keyStore = "myKeyStore.jks"
                    keyStorePassword = "secret"
                }
            }
            """
        ]

        nodes =
        {
            "A.X" = { ... }
            "B.X" = { ... }
            "C.X" = { ... }
        }

        availabilityZones = 
        {
           "elastic-credit" = { ... }
           "elastic-debit" = { ... }
        }
    }
}


Node

The Node object defines the configuration for a specific node. Figure 3.3, “Node relationships” shows the relationships to other configuration objects.

Node relationships

Figure 3.3. Node relationships


A detailed description of the configuration object properties is in Table 3.2, “Node object properties” and a snippet for these properties is in Example 3.3, “Node object snippet”.

Table 3.2. Node object properties

NameTypeDescription
nodeTypeStringThe node's type, as defined in the application definition configuration. Optional. Default value is a built-in node type of default.
descriptionStringNode description. Optional. Default value is node name.
enginesAssociative array of EngineBinding objects keyed by engine name.Engine bindings for this node. Optional. Default runs a single engine for each top-level fragment in the node type being deployed on the node.
communicationCommunication configuration object.Network communication configuration for the node. Optional. See the section called “Communication” for default values.
configurationString [ ]Array of configuration data that applies to this node. Optional. No default.
availabilityZoneMembershipsAssociative array of AvailabilityZoneMembership objects keyed by availability zone names.Availability zone membership for the node. The availability zone must be defined in NodeDeploy.availabilityZones. Optional. No default.
routerBindingsRouterBinding [ ]Router bindings for the node. Optional. No default.

Example 3.3. Node object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes =
        {
            "A.X" =
            {
                nodeType = "large-resources"
                description = "My application node"
                engines =
                {
                    "settlement-engine" = { ... }
                }
                communication = { ... }
                configuration = 
                [
                    """
                    name = "mysecurity"
                    type = "com.acme.security.keystore"
                    version = "1.0.0"              
                    configuration =                           
                    {   
                        CommunicationSecurity =                                            
                        {                                                                                  
                            keyStore = "myKeyStore.jks"                                                                        
                            keyStorePassword = "secret"                                                                                            
                        }   
                    }
                    """,
                    """
                    name = "myusers"
                    type = "com.acme.security.users"
                    version = "1.0.0"              
                    configuration =                            
                    {   
                        Principal =                                            
                        {                                                                                  
                            principal = "road-runner"                                                                                            
                        }   
                    }
                    """ 
                ]  
                availabilityZoneMemberships =
                {
                    "cross-data-center" = { ... }
                }
                routerBinding =
                [
                   { ... }
                ]
            }
        }   
    }       
}

EngineBinding

The EngineBinding object associates an engine name with it's fragment and optional engine specific configuration. Figure 3.4, “EngineBinding relationships” shows the relationships to other configuration objects.

EngineBinding relationships

Figure 3.4. EngineBinding relationships


A detailed description of the configuration object properties is in Table 3.3, “EngineBinding object properties” and a snippet for these properties is in Example 3.4, “EngineBinding object snippet”.

Table 3.3. EngineBinding object properties

NameTypeDescription
fragmentIdentifierStringFragment to run on this engine. A fragment with this identifier must exist in the application archive. Required.
configurationString [ ]Array of configuration data that applies to this engine. Optional. No default.

Example 3.4. EngineBinding object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
                engines =
                {
                    "settlement-engine" = 
                    {
                        fragmentIdentifier = "settlement-engine-fragment"
                        configuration =
                        [
                           """
                           name = "my-engine-stuff"
                           type = "com.acme.engine"
                           version = "1.0.0"              
                           configuration =                           
                           {   
                               AcmeEngine =                                            
                               {                                                                                  
                                  name = "value"
                               }
                           }
                           """
                        ]
                    }
                }
            }   
        }
    }
}

RouterBinding

The RouterBinding object associates a router with a node and optionally an availability zone. Figure 3.5, “RouterBinding relationships” shows the relationships to other configuration objects.

RouterBinding relationships

Figure 3.5. RouterBinding relationships


A detailed description of the configuration object properties is in Table 3.4, “RouterBinding object properties” and a snippet for these properties is in Example 3.5, “RouterBinding object snippet”.

Table 3.4. RouterBinding object properties

NameTypeDescription
routerNameStringRouter to associate with this node. A router with this name must exist in the application definition configuration. Required.
availabilityZoneReference to AvailabilityZone object.Associate a router with an availability zone. If specified, the availability zone must exist in the node deploy configuration file. Optional. Router is not associated with an availability zone by default.

Example 3.5. RouterBinding object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
                routerBindings =
                [
                    {
                        routerName = "my-partition-router"
                        availabilityZone = "active-active"
                    }
                    {
                        routerName = "my-round-robin-router"
                    }
                ]
            }   
        }
    }
}

Communication

The Communication object defines all connectivity options for a node. Figure 3.6, “Communication relationships” shows the relationships to other configuration objects.

Communication relationships

Figure 3.6. Communication relationships


A detailed description of the configuration object properties is in Table 3.5, “Communication object properties” and a snippet for these properties is in Example 3.6, “Communication object snippet”.

Table 3.5. Communication object properties

NameTypeDescription
discoveryPortlongBroadcast discovery port. Optional. Default value is 54321.
discoveryRequestAddressesString [ ]An array of broadcast discovery network request addresses. The addresses are specified as either IPV4 or DNS host names. Discovery requests are broadcast to the discoveryPort on the network interface associated with each network address. Optional. Default value is a single network address which is the system host name.
numberSearchPortslongThe number of ports to allocate to the node for distribution listeners. Ports are allocated from this range when migrating the distribution listener between engines or when a duplicate port error is detected starting a listener. Port allocation is started at the configured dataTransportPort for each distribution listener interface (see the section called “DistributionListenerInterface”). The minimum value that can be specified is the total number of engines plus one. If a port cannot be allocated from this range, the distribution listener will fail to start. Optional. Default value is 20.
administrationAdministration configuration object.Administration network communication configuration for the node. Optional. See the section called “Administration” for the default values.
distributionListenerInterfacesDistributionListenerInterface [ ] of configuration objects.Distribution network communication configuration for the node. Optional. See the section called “DistributionListenerInterface” for the default values.
proxyDiscoveryProxyDiscovery configuration object.Proxy discovery configuration for the node. Optional. No default.

Example 3.6. Communication object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
                communication =
                {
                    numberSearchPorts = 10
                    discoveryPort = 4321
                    discoveryRequestAddresses = ["myhost.com"]
                    distributionListenerInterfaces = [ ... ]
                    administration = { ... }
                    proxyDiscovery = { ... }
                }
            }   
        }
    }
}

DistributionListenerInterface

The DistributionListenerInterface object defines the network communication options for a node's distribution connectivity. Figure 3.7, “DistributionListenerInterface relationships” shows the relationships to other configuration objects.

DistributionListenerInterface relationships

Figure 3.7. DistributionListenerInterface relationships


A detailed description of the configuration object properties is in Table 3.6, “DistributionListenerInterface object properties” and a snippet for these properties is in Example 3.7, “DistributionListenerInterface object snippet”.

[Warning]

IP addresses specified in the address configuration property must be quoted. See Example 3.7, “DistributionListenerInterface object snippet”.

Table 3.6. DistributionListenerInterface object properties

NameTypeDescription
dataTransportPortlongDistribution listener port number. This field is required and cannot have a value of 0 if the Node configuration (see the section called “Node”) containing the DistributionListenerInterface object is referenced in ProxyDiscovery configuration (see the section called “ProxyDiscovery”), otherwise optional. Default value is 0, which causes the distribution port to be auto-assigned when the node is installed.
securebooleanSecure-transport indicator. If true, use TLS to secure communication to the host, if false do not. Optional. Default value is false.
addressStringDistribution listener interface address. This address can be specified as an IPv4 address, IPv6 address, or DNS name. DNS names can only be used to bind to an IPv4 address. A special prefix of IPoSDP: indicates that the address is an Infiniband sockets direct protocol interface (Linux only). This field is required and cannot have a value of 0.0.0.0 or an empty string ("") if the Node configuration (see the section called “Node”) containing the DistributionListenerInterface object is referenced in ProxyDiscovery configuration (see the section called “ProxyDiscovery”), otherwise optional. Default value is an empty string which will bind the listener to all interfaces.

Example 3.7. DistributionListenerInterface object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
                communication =
                {
                    distributionListenerInterfaces = 
                    [
                        {
                             dataTransportPort = 1234
                             secure = true
                             address = "myhost.com"
                        }
                        {
                             address = "127.0.0.1"
                        }
                        {
                             address = "IPoSDP:192.168.1.101"
                        }
                        {
                             secure = true
                             address = "fe80::8a63:dfff:fec3:7abd"
                        }
                    ]
                }
            }   
        }
    }
}

Administration

The Administration object defines the network communication options for a node's administration connectivity. Figure 3.8, “Administration relationships” shows the relationships to other configuration objects.

Administration relationships

Figure 3.8. Administration relationships


A detailed description of the configuration object properties is in Table 3.7, “Administration object properties” and a snippet for these properties is in Example 3.8, “Administration object snippet”.

[Warning]

IP addresses specified in the address configuration property must be quoted. See Example 3.8, “Administration object snippet”.

Table 3.7. Administration object properties

NameTypeDescription
transportPortlongAdministration transport port number. A value of 0 causes the node to auto-generate the port number. This field is required and cannot have a value of 0 if the Node configuration (see the section called “Node”) containing the Administration object is referenced in ProxyDiscovery configuration (see the section called “ProxyDiscovery”), otherwise optional. Default value is 0.
webPortlongAdministration web server port number. A value of 0 causes the node to auto-generate the port number. Optional. Default value is 0.
webEnablebooleanEnable administration web server if value if true. A value of false disables the administration web server. Optional. Default value is true.
webNodeFiltersString [ ]Node filters for the web administration. A list of node filters specifying the nodes that can be managed by this node's web-based administration GUI. Each filter is a fully or partially qualified scoped service name. Optional. Default value is all nodes in the cluster.
addressStringAdministration listener interface address. This address can be specified as an IPv4, IPv6, or DNS name. An empty string ("") will listen on all installed interfaces. If a DNS name is specified, the listener is bound to an IPv6 address if available, otherwise an IPv4 address is used. This field is required and cannot have a value of 0.0.0.0 or an empty string if the Node configuration (see the section called “Node”) containing the Administration object is referenced in ProxyDiscovery configuration (see the section called “ProxyDiscovery”), otherwise optional. Default value is all interfaces on the local machine.

Example 3.8. Administration object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {
                communication =
                {
                    administration =
                    {
                        transportPort = 1234
                        webPort = 9876
                        webEnable = true
                        webNodeFilters = ["A.X", "B.X"]
                        address = "myhost.com"
                    }
                }
            } 
        }
    }
}

ProxyDiscovery

The ProxyDiscovery object defines the nodes for which this node is providing proxy discovery services. Figure 3.9, “ProxyDiscovery relationships” shows the relationships to other configuration objects.

Additional audits are applied to the remote nodes specified in the remoteNodes property, specifically:

Any audit failures will cause the node deploy configuration to fail activation.

ProxyDiscovery relationships

Figure 3.9. ProxyDiscovery relationships


A detailed description of the configuration object properties is in Table 3.8, “ProxyDiscovery object properties” and a snippet for these properties is in Example 3.9, “ProxyDiscovery object snippet”.

Table 3.8. ProxyDiscovery object properties

NameTypeDescription
remoteNodesString [ ]List of remote nodes for which to provide proxy discovery services. All of the specified nodes in this property must be defined in the NodeDeploy.nodes property (see the section called “NodeDeploy”) and be in the same cluster as the node in which they are contained . See the Javadoc for java.util.regex.Pattern for the syntax of the regular expressions that can be used. Optional. No default.

Example 3.9. ProxyDiscovery object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {
                communication =
                {
                    proxyDiscovery = 
                    {
                        remoteNodes = ["B.X", "C.X"]
                    }
                }
            }   

            "B.X" =  { }

            "C.X" =  { }
        }
    }
}

AvailabilityZoneMembership

The AvailabilityZoneMembership object defines the availability zone membership for a node. Figure 3.10, “AvailabilityZoneMembership relationships” shows the relationships to other configuration objects.

AvailabilityZoneMembership relationships

Figure 3.10. AvailabilityZoneMembership relationships


A detailed description of the configuration object properties is in Table 3.9, “AvailabilityZoneMembership object properties” and a snippet for these properties is in Example 3.10, “AvailabilityZoneMembership object snippet”.

Table 3.9. AvailabilityZoneMembership object properties

NameTypeDescription
voteslongNumber of quorum votes for this node in the specified availability zone. Optional. Default value is 1.
dynamicPartitionBindingDynamicPartitionBinding configuration object.Dynamic partition binding. This property can only be specified if the associated availability zone is using a dynamic data distribution policy. Optional. No default value.
staticPartitionBindingsAssociative array of StaticPartitionBinding objects keyed by partition names.Static partition binding for the node. This property can only be specified if the associated availability zone is using a static data distribution policy. The availability zone must be defined in <availability-zone-name>.staticPartitionPolicy.staticPartitions. Optional. No default.

Example 3.10. AvailabilityZoneMembership object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
                availabilityZoneMemberships =
                {
                    "active-active" =
                    {
                        votes = 2
                        staticPartitionBindings = { ... }
                    }
                }
            }   
        }

        availabilityZones =
        {
            "active-active" = { ... }
        }
    }
}

StaticPartitionBinding

The StaticPartitionBinding object defines the static partition binding for a node. Figure 3.11, “StaticPartitionBinding relationships” shows the relationships to other configuration objects.

StaticPartitionBinding relationships

Figure 3.11. StaticPartitionBinding relationships


A detailed description of the configuration object properties is in Table 3.10, “StaticPartitionBinding object properties” and a snippet for these properties is in Example 3.11, “StaticPartitionBinding object snippet”.

Table 3.10. StaticPartitionBinding object properties

NameTypeDescription
typeEnumeration with valid values of ACTIVE and REPLICA.Active or replica partitions. Configuration activation will fail if an ACTIVE partition cannot be enabled. Configuration activation is allowed if a REPLICA partition cannot be enabled. Required.
replicationEnumeration with valid values of SYNCHRONOUS and ASYNCHRONOUS.Replication type. Optional. Default value is SYNCHRONOUS.

Example 3.11. StaticPartitionBinding object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
                 availabilityZoneMemberships =
                {
                    "active-active" =
                    {
                        staticPartitionBindings =
                        {
                            "P1" =
                            {
                                type = "ACTIVE"
                                replication = "SYNCHRONOUS"
                            },
                            "P2" =
                            {
                                type = "REPLICA"
                                replication = "ASYNCHRONOUS"
                            }
                        }
                    }
                }
            }  
        }

        availabilityZones =
        {
            "active-active" =
            {
                dataDistributionPolicy = "static-data-distribution-policy"
                staticPartitionPolicy =
                {
                    staticPartitions =
                    {
                        "P1" = { },
                        "P2" = { },
                    }
                }
            }
        }

    }
}

DynamicPartitionBinding

The DynamicPartitionBinding object defines a dynamic partition binding for a node. Dynamic partitions can also be bound to a node using the primaryMemberPattern and the backupMemberPattern properties in the DynamicPartitionPolicy configuration object (see the section called “DynamicPartitionPolicy”). Figure 3.12, “DynamicPartitionBinding relationships” shows the relationships to other configuration objects.

DynamicPartitionBinding relationships

Figure 3.12. DynamicPartitionBinding relationships


A detailed description of the configuration object properties is in Table 3.11, “DynamicPartitionBinding object properties” and a snippet for these properties is in Example 3.12, “DynamicPartitionBinding object snippet”.

Table 3.11. DynamicPartitionBinding object properties

NameTypeDescription
typeEnumeration with valid values of PRIMARY and BACKUP.Primary or backup node binding. Required.

Example 3.12. DynamicPartitionBinding object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        nodes = 
        {
            "A.X" =
            {   
               availabilityZoneMemberships =
               {
                    "elastic-credit" =
                    {
                        dynamicPartitionBinding =
                        {
                            type = "PRIMARY"
                        }
                    }
               }
            }
        }

        availabilityZones =
        {
            "elastic-credit" =
            {
                dataDistributionPolicy = "dynamic-credit-distribution-policy"
            }
        }
    }
}

AvailabilityZone

The AvailabilityZone object defines an availability zone. There is always a default availability zone defined even if this configuration object is not specified. See the section called “Default availability zone” for details. Figure 3.13, “AvailabilityZone relationships” shows the relationships to other configuration objects.

AvailabilityZone relationships

Figure 3.13. AvailabilityZone relationships


A detailed description of the configuration object properties is in Table 3.12, “AvailabilityZone object properties” and a snippet for these properties is in Example 3.13, “AvailabilityZone object snippet”.

Table 3.12. AvailabilityZone object properties

NameTypeDescription
percentageOfVotesLongMinimum percentage of node votes to maintain a quorum. This property is mutually exclusive of the minimumNumberOfVotes property. If neither this property or the minimumNumberOfVotes property is set, quorums are disabled. Optional. No default value.
minimumNumberOfVotesLongMinimum number nodes to maintain a quorum. This property is mutually exclusive of the percentageOfVotes property. If neither this property or the percentageOfVotes property is set, quorums are disabled. Optional. No default value.
dataDistributionPolicyStringThe data distribution policy for this availability zone, as defined in the application definition configuration. Optional. No default value.
dynamicPartitionPolicyDynamicPartitionPolicy configuration object.Dynamic partition policy configuration. A dynamic data distribution policy must be specified in the dataDistributionPolicy property if this property is set. Optional. No default value.
staticPartitionPolicyStaticPartitionPolicy configuration object.Static partition policy configuration. A static data distribution policy must be specified in the dataDistributionPolicy property if this property is set. Optional. No default value.
quorumMemberPatternStringA regular expression describing which nodes are part of a quorum. All nodes matching this regular expression are part of the quorum. Such members get a single quorum vote. Quorum membership can be expressed in one or both of two ways: via this regular expression or explicitly by each node. See the Javadoc for java.util.regex.Pattern for the syntax of the regular expressions that can be used. Optional. No default value.

Example 3.13. AvailabilityZone object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        availabilityZones =
        {
           "active-active" =
            {
                dataDistributionPolicy = "static-data-distribution-policy"
                staticPartitionPolicy = { ... }
            }
            "elastic-dr" =
            {
                dataDistributionPolicy = "dynamic-data-distribution-policy"
                dynamicPartitionPolicy = { ... }
            }
            "west-coast-quorum" =
            {
                minimiumNumberOfVotes = 2
                quorumMemberPattern = ".*\\.west\\.X"
            }
        }
    }
}

DynamicPartitionPolicy

The DynamicPartitionPolicy object defines a dynamic partition policy for an availability zone. Figure 3.14, “DynamicPartitionPolicy relationships” shows the relationships to other configuration objects.

DynamicPartitionPolicy relationships

Figure 3.14. DynamicPartitionPolicy relationships


A detailed description of the configuration object properties is in Table 3.13, “DynamicPartitionPolicy object properties” and a snippet for these properties is in Example 3.14, “DynamicPartitionPolicy object snippet”.

Table 3.13. DynamicPartitionPolicy object properties

NameTypeDescription
primaryMemberPatternStringA regular expression describing the primary node membership for this dynamic partition policy. Membership can be expressed in one, or both, of two ways: via this regular expression or explicitly for each node (see the section called “DynamicPartitionBinding”). The bindings are additive. See the Javadoc for java.util.regex.Pattern for the syntax of the regular expressions that can be used. Optional. Default value is all nodes in a cluster, unless backupMemberPattern is specified, in which case, there is no default value. A regular expression that does not match any nodes in the cluster must be specified to disable this binding if backupMemberPattern is not specified.
backupMemberPatternStringA regular expression describing the backup node membership for this dynamic partition policy. Membership can be expressed in one, or both, of two ways: via this regular expression or explicitly for each node (see the section called “DynamicPartitionBinding”). The bindings are additive. If backup nodes are defined all primary nodes must be explicitly defined, i.e. setting this property disables the primaryMemberPattern default value. See the Javadoc for java.util.regex.Pattern for the syntax of the regular expressions that can be used. Optional. No default.

Example 3.14. DynamicPartitionPolicy object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
         availabilityZones =
        {
            "elastic-dr" =
            {
                dataDistributionPolicy = "dynamic-data-distribution-policy"
                dynamicPartitionPolicy =
                {
                    primaryMemberPattern = ".*\\.west\\.X"
                    backupMemberPattern = ".*\\.east\\.X"
                }
            }
        }
    }
}

StaticPartitionPolicy

The StaticPartitionPolicy object defines a static partition policy for an availability zone. Figure 3.15, “StaticPartitionPolicy relationships” shows the relationships to other configuration objects.

StaticPartitionPolicy relationships

Figure 3.15. StaticPartitionPolicy relationships


A detailed description of the configuration object properties is in Table 3.14, “StaticPartitionPolicy object properties” and a snippet for these properties is in Example 3.15, “StaticPartitionPolicy object snippet”.

Table 3.14. StaticPartitionPolicy object properties

NameTypeDescription
disableOrderEnumeration. Valid values are REVERSE_CONFIGURATION and REVERSE_LOCAL_THEN_REMOTE.REVERSE_CONFIGURATION disables the partitions in reverse order based on the order they appear in the configuration file. REVERSE_LOCAL_THEN_REMOTE disables all partitions that have the local node as the active node, then disable all partitions where a remote node is the active node. Optional. Default value is REVERSE_CONFIGURATION.
enableOrderEnumeration. Valid values are CONFIGURATION and REMOTE_THEN_LOCAL.CONFIGURATION enables the partitions based on the order they appear in the configuration file. REMOTE_THEN_LOCAL enables all partitions that have a remote node as the active node, then enables the partitions where the active node is the local node. Optional. Default value is CONFIGURATION.
staticPartitionsAssociative array of StaticPartition objects keyed by partition name.StaticPartition configuration objects. Optional. No default.
loadOnNodesPatternStringA regular expression describing which nodes know about the partitions in this static partition policy. These nodes may or may not be hosting the partitions defined in the static partition policy. The complete set of nodes that know about these partitions is defined by this regular expression and explicit node binding (see the section called “StaticPartitionBinding”). See the Javadoc for java.util.regex.Pattern for the syntax of the regular expressions that can be used. Optional. Default value is the explicit partition binding in the containing availability zone.

Example 3.15. StaticPartitionPolicy object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        availabilityZones =
        {
            "active-active" =
            {
                dataDistributionPolicy = "static-data-distribution-policy"
                staticPartitionPolicy =
                {
                    enableOrder = "CONFIGURATION"
                    disableOrder = "REVERSE_CONFIGURATION"
                    loadOnNodesPattern = ".*\\.east\\.X"
                    staticPartitions =
                    {
                        "P1" = { },
                        "P2" = { },
                    }
                }
            }
        }
    }
}

StaticPartition

The StaticPartition object defines a static partition. Figure 3.16, “StaticPartition relationships” shows the relationships to other configuration objects.

StaticPartition relationships

Figure 3.16. StaticPartition relationships


A detailed description of the configuration object properties is in Table 3.15, “StaticPartition object properties” and a snippet for these properties is in Example 3.16, “StaticPartition object snippet”.

Table 3.15. StaticPartition object properties

NameTypeDescription
ranklongThe static partition's ranking number for enable and disable order. When the StaticPartitionPolicy.enableOrder or StaticPartitionPolicy.disableOrder is set to CONFIGURATION, this rank specifies the order. Static partitions with a lower ranking number are enabled before those with a higher ranking number. If multiple static partitions share the same ranking number, their enable order is indeterminate. Disable order always reverses the rankings, with higher numbers disabled ahead of lower numbers. Optional. Default value is 1.

Example 3.16. StaticPartition object snippet

name = "my.application"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.node"
configuration =
{
    NodeDeploy =
    {
        availabilityZones =
        {
            "active-active" =
            {
                dataDistributionPolicy = "static-data-distribution-policy"
                staticPartitionPolicy =
                {
                    staticPartitions =
                    {
                        "P1" = 
                        {
                            rank = 2
                        },
                        "P2" = 
                        {
                            rank = 1
                        }
                    }
                }
            }
        }
    }
}