Configuration properties that affect Unica Campaign performance

You can improve Unica Campaign performance by adjusting configuration properties.

DB2NotLoggedInitially

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

This property determines whether Unica Campaign uses the not logged initially SQL syntax when populating temporary tables in DB2®.

A value of TRUE disables logging for inserts into temp tables, which improves performance and decreases database resource consumption. When set to TRUE, if a temp table transaction fails for any reason, the table will become corrupted and must be dropped. All data previously contained in the table will be lost.

If your version of DB2® does not support the not logged initially syntax, set this property to FALSE.

If you are using a DB2® 11 user database on z/OS®, set this property to FALSE. If you are using DB2® 10.5 with the BLU feature ON for a user database, set both DB2NotLoggedInitially and DB2NotLoggedInitiallyUserTables to FALSE.

Default value

TRUE

Valid Values

TRUE | FALSE

AllowSegmentUsingSQLCase

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

This property specifies whether the Segment process consolidates multiple SQL statements into a single SQL statement, when specific configuration conditions are met.

Setting this property to TRUE results in significant performance improvements when all following conditions are met:

  • Segments are mutually exclusive.
  • All segments come from a single table.
  • Criteria for each segment are based on the macro language.

In this case, Unica Campaign generates a single SQL CASE statement to perform segmentation, followed by segment-by-field processing on the Unica Campaign application server.

Default value

TRUE

Valid Values

TRUE | FALSE

TempTablePostExecutionSQL

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

Use this property to specify a complete SQL statement that Unica Campaign runs immediately after the creation of a temporary table in a user data source or in the system tables database. For example, to improve performance, you can create an index on a temporary table immediately after its creation (see examples below). To enable the creation of temporary tables in a data source, the AllowTempTables property must be set to TRUE.

You can use tokens to substitute the table name (<TABLENAME>) and column names (<KEYCOLUMNS>) in the SQL statement, because the values are generated dynamically when the campaign runs.

This property is automatically added to the SQL expression without checking its syntax. If you use this property, make sure that it is a legal expression. You can enclose the string in quotation marks, but this is not required.

This property treats semicolons as delimiters to run multiple SQL statements. If your SQL statement contains semicolons and you want it to run as one statement, use a backslash as an escape character before the semicolons.

Note: If you are using stored procedures with this property, be sure that you use the correct syntax for your database.

Tokens available to TempTablePostExecutionSQL are described below.

Token Description
<AMUSER> This token is replaced with the Unica user name associated with the flowchart for which temp tables were created.
<CAMPAIGNCODE> This token is replaced with the code for the campaign associated with the flowchart for which temp tables were created.
<CAMPAIGNNAME> This token is replaced with the name of the campaign associated with the flowchart for which temp tables were created.
<DBUSER> This token is replaced with the database user name for the database where the temp tables were created.
<FLOWCHARTNAME> This token is replaced with the name of the flowchart associated with the temp table creation.
<KEYCOLUMNS> This token is replaced with the temp table column name(s).
<TABLENAME> This token is replaced with the temp table name.
<USER> This token is replaced with the Unica Campaign user name of the user running the flowchart.
Default value

No default value defined.

Examples

The following value creates an index on the temp table just after its creation, to improve the data retrieval process: CREATE INDEX IND_<TABLENAME> ON <TABLENAME> (<KEYCOLUMNS>)

The following example for Oracle calls a stored procedure and uses backslashes to escape the semicolon: begin dbms_stats.collect_table_stats()\; end\;

AllowTempTables

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

This property specifies whether Unica Campaign creates temporary tables in the database. Creating temporary tables can significantly improve the performance of campaigns.

When the value is TRUE, temporary tables are enabled. Each time a query is issued against the database (for example, by the Segment process), the resulting IDs are written to a temporary table in the database. When an additional query is issued, Unica Campaign can use that temporary table to retrieve rows from the database.

A number of Unica Campaign operations, such as useInDbOptimization, rely on the ability to create temp tables. If temporary tables are not enabled, Unica Campaign retains the selected IDs in the Unica Campaign server memory. The additional query retrieves IDs from the database and matches them to the IDs in server memory. This can negatively impact performance.

You must have appropriate privileges to write in the database to use temporary tables. Privileges are determined by the database login that you provide when you connect to the database.

Default value

TRUE

Note: Typically, you set AllowTempTables to TRUE. To override the value for a specific flowchart, open the flowchart in Edit mode, select Admin > Advanced settings, click the Server optimization tab, and select Disallow use of temp tables for this flowchart.

MaxRowFetchRecords

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

For performance reasons, it is best to keep this number low.

When the selected number of IDs is less than the value specified by the MaxRowFetchRecords property, Unica Campaign passes the IDs to the database one at a time, in separate SQL queries. This process can be very time-consuming. If the number of selected IDs is greater than the value specified by this property, Unica Campaign uses temporary tables (if allowed on the database source), or it pulls down all the values from the table, not including any unnecessary values.

Default value

100

UseMergeForTrack

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

This property implements SQL MERGE syntax to improve the performance of the Track process in flowcharts. This property can be set to TRUE for DB2®, Oracle, SQL Server 2008, and Teradata 12. It can also be used with other databases that support the SQL MERGE statement.

Default value

TRUE (DB2 and Oracle) | FALSE (all others)

Valid Values

TRUE | FALSE

MaxQueryThreads

Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description

This property specifies the upper limit on the number of simultaneous queries allowed to run against each database source from a single Unica Campaign flowchart. Higher values generally improve performance.

Unica Campaign runs database queries using independent threads. Because Unica Campaign processes run in parallel, it is common to have multiple queries running simultaneously against a single data source. If the number of queries to be run in parallel exceeds the MaxQueryThreads, the Unica Campaign server limits the number of simultaneous queries to the specified value.

The maximum value is unlimited.

Note: If maxReuseThreads is set to a non-zero value, it should be greater than or equal to the value of MaxQueryThreads.
Default value

Varies depending on the database

maxVirtualMemory

Configuration category
Campaign|partitions|partition[n]|server|optimization
Description

It is used for internal locking of memory which prevents it from being swapped as temporary files.

Set a value equal to (80% x available memory) / (number of expected concurrent flowcharts). For example:

  • If available virtual memory on server = 32 GB
  • Number of concurrent flowcharts = 10
  • Set virtual Memory = ( 80 % x 32 ) / 10 = approximately 2.5 GB / flowchart
Default value

128 (MB)

maxVirtualMemory is a global configuration setting. To override the value for a specific flowchart, open the flowchart in Edit mode, select Advanced settings from the Admin menu , select the Server optimization tab, and change the Campaign virtual memory usage value.

doNotCreateServerBinFile

Configuration category
Campaign|partitions|partition[n]|server|optimization
Description

To improve performance, set this property to TRUE. When this property is TRUE, strategic segments create Segment temp tables in the data source rather than creating binary files on the Unica Campaign server. You must specify at least one data source in the Create Segment (CreateSeg) process configuration dialog to hold the temp tables. Also, you must set the AllowTempTables property to TRUE to enable the creation of temporary tables in a data source.

Default value

FALSE

Valid Values

TRUE | FALSE

httpCompressionForResponseLength

Configuration category
Campaign|partitions|partition[n]|server|optimization
Description

This property enables and configures compression for HTTP responses from the Unica Campaign web application to the client browser for flowchart-specific messages. The Unica Campaign web application reads this property only once for each partition. If you modify this property, you must restart the web application for the change to take effect.

Compression can improve page load and interaction times by reducing the amount of data that is sent over HTTP.

All responses that have a data length greater than or equal to the httpCompressionForResponseLength value (in KB) are candidates for compression. Any other responses are not compressed.

Compression reduces network transfer, but it requires resources on the server side. Therefore, compression makes sense only for large amounts of data, when sufficient server-side resources are available. If you typically have network delays that can slow large data transfers, you can analyze how much time it takes to load a given amount of data. For example, suppose that some of your HTTP requests are <100 KB in size, but most are 300 to 500 KB. In this case, you would increase the value of this property to 500 KB so that only responses >= 500 KB in size are compressed.

To disable compression, set the value to 0.

Default value

100 (KB)

Valid Values

0 (disables compression) or higher

cacheSystemDSQueries

Configuration category
Campaign|partitions|partition[n]|server|optimization
Description

To improve performance, set this value to TRUE. When set to TRUE, this property reduces multiple execution of queries on the Unica Campaign system tables by caching the query results. When set to FALSE, query results are not cached.

Default value

TRUE

Valid Values

TRUE | FALSE

keepFlowchartLogOpen

Configuration category
Campaign|partitions|partition[n]|server|logging
Description

This property specifies whether Unica Campaign opens and closes the flowchart log file each time a line is written to the log file.

A value of TRUE can improve performance of real-time interactive flowcharts. When the value is TRUE, Unica Campaign opens the flowchart log file only once, and closes it when the flowchart's server process exits. A side effect of using the TRUE value is that recently-logged messages may not be immediately visible in the log file, as Unica Campaign flushes the log messages to file only when its internal buffer becomes full or when the number of logged messages equals the value of the logFileBufferSize property.

If the value is FALSE, Unica Campaign opens and closes the flowchart log file.

Default value

FALSE

Valid Values

TRUE | FALSE

loggingLevels

Configuration category
Campaign|partitions|partition[n]|server|logging
Description

The loggingLevels property controls the amount of detail written to the Unica Campaign server log file, based on severity.

Default value

MEDIUM

Valid Values
  • LOW: represents the least detail (the most severe errors only)
  • MEDIUM
  • HIGH
  • ALL: includes trace messages and is intended primarily for diagnostic purposes
Note: You may want to set loggingLevels to ALL during configuration and testing. This value generates a large amount of data and therefore may not be advisable for production operation. Setting any logging level higher than its default can adversely affect performance.

You can adjust these settings from within a flowchart by using Tools > Logging options.

logFileBufferSize

Configuration category
Campaign|partitions|partition[n]|server|logging
Description

This property is used when keepFlowchartLogOpen is TRUE. Specify a value to indicate the number of messages to buffer before writing to the log. If the value is 1, every log message is written immediately to file, effectively disabling buffering but having a negative impact on performance.

This property is ignored if keepFlowchartLogOpen is FALSE.

Default value

5

cellCodeBulkCreation

Configuration category
Campaign|partitions|partition[n]|server|systemCodes
Description

A value of TRUE improves performance of the cell code generation utility during bulk creation of cell codes, because multiple cell codes are generated with a single invocation of the cell code generator. This is more efficient and is the recommended setting. A value of TRUE also improves performance when copying flowcharts, templates, and process boxes.

When the value is FALSE, the cell code generator is invoked once for each cell code generation. If cell code generation seems to take a long time for Segment, Sample, and Decision process boxes, or for the target cell spreadsheet, set this value to TRUE.

The default setting is FALSE to support existing customized implementations. If you are using a legacy custom-made cell code generation utility, leave this setting at its default value of FALSE until you implement a new custom utility. Then you can change its value to TRUE.

If you are not using a custom cell code generation utility, change the value to TRUE to take advantage of the efficiency improvements.

Default value

FALSE

Valid Values

TRUE | FALSE

Campaign | caching

Certain objects, such as offers, are cached in the web application server to improve response times in the Unica Campaign user interface. The Campaign|caching configuration properties specify the length of time that cached data is retained. Smaller values result in more frequent cache updates, which can adversely affect performance by consuming processing resources on both the web server and the database.

Client polling interval (ms)

Configuration category
Platform|Scheduler
Description

Unica Campaign polls the Unica Scheduler for jobs at regular intervals, specified in milliseconds by this value. The default value is 60 seconds. Avoid setting this property to any value less than 10000 (10 seconds), because doing so can decrease campaign performance.

Default value

60000

Status polling interval

Configuration category
Platform|Scheduler|Schedule registrations|[Product]|[Object type]

For Unica Campaign flowcharts, the path for this property is Platform|Scheduler|Schedule registrations|Campaign|Flowchart

Description

The Unica Scheduler polls the product at regular intervals to obtain the run status of scheduled objects (for example, flowcharts or mailings) that have not reported a status. The interval is specified in milliseconds. The default value is 10 minutes. A more frequent polling interval (a smaller value) can negatively affect system performance. A less frequent polling interval (a larger value) reduces the load on the system. For Unica Campaign, set a less frequent polling interval when you have a large number of Unica Campaign flowcharts that take more than 10 minutes to complete.

Default value

600000