Example 7.2, “Application definition configuration” shows the application definition that is used by all of the topology examples. This configuration defines:
a fragment named
com.tibco.ep.dtmexamples.javafragment.helloworld.
dynamic data distribution policies named
dynamic-data-distribution-policy,
dynamic-credit-distribution-policy, and
dynamic-debit-distribution-policy.
a static data distribution policy named
static-data-distribution-policy.
Both data distribution policies use a distributed hash data mapper to distribute the application data.
There is also a custom quorum notifier defined in the fragment. The behavior of this notifier is application specific and is not exposed in the configurable quorum policies.
Example 7.1. Fragment definition configuration
name = "com.tibco.ep.dtmexamples.javafragment.helloworld"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.application"
configuration =
{
FragmentDefinition =
{
description = "hello world fragment"
customQuorumNotifiers =
{
"my-quorum-notifier" =
{
notifierClassName = "com.tibco.ep.dtmexamples.javafragment.helloworld.QuorumNotifier"
}
}
dataMappers =
{
"dynamic-data-mapper" =
{
distributedHashDataMappers =
[
{
className = "com.tibco.ep.dtm.HelloWorld"
key = "ByName"
}
]
},
"dynamic-credit-data-mapper" =
{
roundRobinDataMappers =
[
{
className = "com.tibco.ep.dtm.payments.Credit"
}
]
},
"dynamic-debit-data-mapper" =
{
roundRobinDataMappers =
[
{
className = "com.tibco.ep.dtm.payments.Debit"
}
]
},
"static-data-mapper" =
{
distributedHashDataMappers =
[
{
className = "com.tibco.ep.dtm.WorldHello"
field = "name"
}
]
}
}
}
}
Example 7.2. Application definition configuration
name = "MyApplication"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.application"
configuration =
{
ApplicationDefinition =
{
dataDistributionPolicies =
{
"dynamic-data-distribution-policy" =
{
type = "DYNAMIC"
dataMappers =
[
"dynamic-data-mapper"
]
customQuorumNotifiers =
[
"my-quorum-notifier"
]
dynamicDataDistributionPolicy =
{
numberOfPartitions = 3
primaryDataRedundancy =
{
numberOfReplicas = 6
replicationType = SYNCHRONOUS
}
backupDataRedundancy =
{
numberOfReplicas = 4
replicationType = ASYNCHRONOUS
}
}
},
"dynamic-credit-distribution-policy" =
{
type = "DYNAMIC"
dataMappers =
[
"dynamic-credit-data-mapper"
]
},
"dynamic-debit-distribution-policy" =
{
type = "DYNAMIC"
dataMappers =
[
"dynamic-debit-data-mapper"
]
},
"static-data-distribution-policy" =
{
type = "STATIC"
dataMappers =
[
"static-data-mapper"
]
disableAction = "LEAVE_CLUSTER_FORCE"
enableAction = "JOIN_CLUSTER"
forceReplication = false
numberOfThreads = 1
objectsLockedPerTransaction = 1001
remoteEnableAction = "ENABLE_PARTITION"
staticDataDistributionPolicy =
{
replicaAudit = "WAIT_ACTIVE"
sparseAudit = "VERIFY_NODE_LIST"
}
}
}
}
}