Solution properties

You set solution properties to configure the behavior and characteristics of agents at solution level.

Solution properties are set in the solution_properties.xml file or by using the solutionManager setproperty command. You can also manage these properties by using the SolutionsMXBean .

A solution property can be applied to the entire solution, to a named agent, or a named aggregate. For example, the eventAggregateMaxHorizon property can be set for all solution aggregates or for a specific aggregate, and the maxHorizon property can be set for a solution or for a specific rule agent. When a property is set, it is fixed and maintained after a server restart.

To set a property for a specific global aggregate, use the form <property>_defvar<global_aggregate> for the property name. For example, to set the eventAggregateValueSaveInterval property for a global aggregate that is named TotalSessionRatings, you can use the following command:
solutionManager setproperty eventAggregateValueSaveInterval_defvarTotalSessionRatings=4000 --username=tester --password=tester

The following table lists solution settings that are determined by the value of the solution properties.

Table 1. Properties that can be set at the solution level. 
Property Description Default value

defaultJobTimeout

The elapsed time before a batch job stops running. You must specify a value of at least 0. You might set a value for this property if some batch jobs are taking too long to run and you want to restrict the time they take.

A low value causes a job to immediately time out instead of running. Therefore, a minimum practical value is probably about 2000 milliseconds, and might be higher.

0 milliseconds (no timeout)

eventAggregateAggregationEngineCheckpointFrequency

Specifies how many partial results are processed before the aggregate engine state of a global event aggregate is saved. The aggregate engine combines the partial results. Its state reflects the value of a global event aggregate.

A value of 1 means to save after every event, 2 means to save after every second event, and so on.

A low value can degrade performance but can improve the accuracy of the value more rapidly when a server restarts after an outage. A high value can be set if failover is not important.

If you do not want to save the engine state after partial results are processed, specify -1.

1000

eventAggregateMaxHorizon

Defines an ISO 8601 time duration that determines how long events are retained in memory for all aggregates or for a specific aggregate. The value of the property consists of a letter and number combination that designates a time unit as defined by the ISO 8601 specification.

P (period): The first letter in the time value, for example, P30D is 30 days.

Y (year): Time in years, for example, P1Y is 1 year.

M (month): Time in months, for example, P6M is 6 months.

D (day): Time in days, for example, P1D is 1 day.

T (time): This letter indicates that the time includes hours, minutes, or seconds, for example, P1DT12H is 1 day plus 12 hours.

H (hours): Time in hours, for example, PT36H is 36 hours.

M (minutes): Time in minutes, which must be preceded by the T designator, for example, PT6M is 6 minutes.

S (seconds): Time in seconds, for example, PT30S is 30 seconds.

P1D

eventAggregateValueSaveInterval

Specifies in milliseconds how often global event aggregation values are saved to the grid for disaster recovery. You must specify a value of at least 1.

A low value can degrade performance but can improve the accuracy of the value more rapidly when a server restarts after an outage. A high value can be set if failover is not important.

20000 milliseconds

eventCacheDuration

Defines an ISO 8601 time duration that defines the maximum amount of time that Decision Server Insights keeps an event in memory after the event is processed. To reduce the time that events are kept in memory, the eventCacheDuration value must be less than or equal to the maxHorizon value. To keep events resident in memory, set eventCacheDuration to be equal to maxHorizon.

P (period): The first letter in the time value, for example, P30D is 30 days.

Y (year): Time in years, for example, P1Y is 1 year.

M (month): Time in months, for example, P6M is 6 months.

D (day): Time in days, for example, P1D is 1 day.

T (time): This letter indicates that the time includes hours, minutes, or seconds, for example, P1DT12H is 1 day plus 12 hours.

H (hours): Time in hours, for example, PT36H is 36 hours.

M (minutes): Time in minutes, which must be preceded by the T designator, for example, PT6M is 6 minutes.

S (seconds): Time in seconds, for example, PT30S is 30 seconds.

P30D

maxHorizon

Defines an ISO 8601 time duration that determines how long events are retained in memory for a solution or for a specific rule agent. The value of the property consists of a letter and number combination that designates a time unit as defined by the ISO 8601 specification.

P (period): The first letter in the time value, for example, P30D is 30 days.

Y (year): Time in years, for example, P1Y is 1 year.

M (month): Time in months, for example, P6M is 6 months.

D (day): Time in days, for example, P1D is 1 day.

T (time): This letter indicates that the time includes hours, minutes, or seconds, for example, P1DT12H is 1 day plus 12 hours.

H (hours): Time in hours, for example, PT36H is 36 hours.

M (minutes): Time in minutes, which must be preceded by the T designator, for example, PT6M is 6 minutes.

S (seconds): Time in seconds, for example, PT30S is 30 seconds.

Note: Events are retained in memory for the shortest possible duration. The duration is set by the smallest value from the maxHorizon of the solution and the horizon that is configured in the rule agent descriptor (if any). If maxHorizon is not defined, then the default of 30 days is used as the horizon of the solution.

P30D

RuleAgentPrintLogLevel

You can control how the rule agent logs are output to print statements by adjusting the RuleAgentPrintLogLevel property.

The rule agent log output is written to the trace.log and messages.log files. You can set the logging level to one of the following values:
  • severe
  • warning
  • audit
  • info
  • fine
  • finer
  • finest

info

saveEventAggregateEngineStateByTimer

A boolean value that determines whether to save the event aggregate engine state at the rate that is specified by the eventAggregateValueSaveInterval property.

True

solutionTraceEnabled

Set it to true to enable the monitoring of events data. The property logs the events that are being processed and their result in a <solution>.log file.

false
solutionTraceSpecific

Keep the default value to false to log the solution trace messages into the messages.log file. If you set it to true, then the solution trace messages are written into a <solution>.log.

false

testEpoch

Specifies a value to set the start of the test to a point in the past. This point in time must be equal to, or before, the time stamp of the earliest event that you want to test. For example: testDriver.setTestEpoch("2015-01-05T14:30:00Z").

 

warningIncomingEventQueueThreshold

Indicates if the average event queue load per server is high. The threshold is lower than the value set on the queueMonitorHighWaterMark system properties, which default is 10000.

9000

warningProcessingTimeThreshold

Indicates if an agent is taking too long to process an event. The value is defined in millisecond.

60000

warningSolutionWarningEnabled

Set this property to true to enable the solution warnings.

false

warningSolutionWarningMaxSize

Indicates the maximum number to store solution warnings. The value is defined as an integer.

1000