Reference for Live Datamart Engine Configuration

Overview

This article provides a reference for writing a Live Datamart Engine HOCON configuration file.

Required Header Lines

Each configuration file must contain the following header lines, typically found at the beginning of each file:

name

Specifies an arbitrary, case-sensitive string to name this configuration, which must be unique among other files with the same type, if any. Configuration files can refer to each other by this name. Select a name that reminds you of this configuration's type and purpose. For example:

name = "myldmengine"
version

Specifies an arbitrary version number that you can use to keep track of file versions for this configuration type in your development project. The maintenance of version numbers is under user control; StreamBase does not compare versions when loading configuration files during the fragment launch process. The version number is a string value, and can contain any combination of characters and numbers. For example:

version = "1.0.0"
type

This essential setting specifies the unique HOCON configuration type described on this page.

type = "com.tibco.ep.ldm.configuration.ldmengine"

The header lines taken together constitute a unique signature for each HOCON file in a project's configurations folder. Each project's configurations folder can contain only one file with the same signature.

In addition, the configuration top-level element is the same for all HOCON file types.

configuration

On a line below the header element lines, enter the word configuration followed by an open brace. The configuration element is a sibling of the name, version, and type elements, and serves as a wrapper around this type's elements described below. The file must end with the matching close brace.

configuration = {
...
...
}

HOCON Elements Explained

Below shows the configuration's HOCON elements, its name-values, usage, and syntax example, where applicable.

LDMEngine

The Live Datamart engine configuration inherits from the EventFlow engine configuration, which in turn inherits from the base Java engine. See Reference for DTM JavaEngine Configuration for a list of available Java engine options.

streamBase

The streamBase element controls the behavior of the EventFlow engine that is running this LiveView fragment. Some sample EventFlow engine settings are below, to demonstrate inheritance. See Reference for StreamBase Engine Configuration for more information about the streamBase element.

operatorStateChangeTimeoutMilliseconds

Int. Each Java Operator changes state along with the engine process as a whole. The engine waits for each Operator to change state before it completes its state change. The value of this name-value pair is the amount of time the engine will wait before timing out the Operator. If an Operator is timed out on a state change, the engine shuts the Operator down and proceeds with the state change. This name-value pair is optional and its default value is 10000.

For example:

operatorStateChangeTimeoutMilliseconds = 10002
engineMonitor

Configures the engine's monitoring subsystem. This name-value pair is optional.

For example:

enabled = false
statsFrequencyMilliseconds

Int. Configures how frequently monitoring stats are produced This name-value pair is optional and its default value is 1000.

For example:

statsFrequencyMilliseconds = 2000
ldm

Live Datamart-specific part of the configuration.

authenticateUsers

Bool. If true, user authentication is use enabled, otherwise it is disabled. Enabling user authentication requires that the engine have an authentication realm configuration, or this indicator value is ignored. This name-value pair is optional and its default value is false.

For example:

authenticateUsers = true
alert

Alert service configuration. This section is optional and has default values as specified below.

enabled

Bool. If false, prevent the alert service from starting. If true, the alert service starts. This name-value pair is optional and its default value is true.

For example:

enabled = false
disableChanges

Bool. If true, prevent non-local LiveView clients from changing alert rules. If false, any client can change alert rules. This name-value pair is optional and its default value is false.

For example:

disableChanges = true
registerStartup

Bool. If false, prevents configured alerts from being registered at startup. If true, alerts are registered. This name-value pair is optional and its default value is true.

For example:

registerStartup = false

HOCON Configuration File Sample

The following shows an example of the com.tibco.ep.ldm.configuration.ldmengine type, to illustrate how you can configure the Java and EventFlow parts of the LiveView engine.

name = "myldmengine"
version = "1.0.0"
type = "com.tibco.ep.ldm.configuration.ldmengine"
configuration = {
  LDMEngine = {

    associatedWithEngines = [ "javaengine", "otherengine[0-9]" ]
 
    externalClassPath = [
      "/absolute/path/d.jar"
      "/absolute/path/g.jar"
      "/absolute/path/root" 
    ]

    jvm = {
      minimumDispatchThreads = 10
    }

    systemProperties = {
      prop1 = "val1"           
      prop2 = "val2"
      "prop.3" = "val3" 
    }

    jvmArgs = [
      "-Xmx1024m"
      "-Xms512m"
      "-XX:MaxPermSize=768m"
      "-Xdebug"
      "-Xnoagent"
      "-Djava.compiler=NONE"
      "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
    ]

    streamBase = {
      operatorStateChangeTimeoutMilliseconds = 10002
      engineMonitor = {
        enabled = false
        statsFrequencyMilliseconds = 2000
      }
    }

    ldm = {
      authenticateUsers = true
      alert = {
        enabled = false
        disableChanges = true
        registerStartup = false
      }
    }
  }
}