Configuration properties that affect IBM® Campaign performance
You can improve IBM® Campaign performance by adjusting configuration properties.
DB2NotLoggedInitially
Configuration category
Campaign|partitions|partition[n]|dataSources|dataSourcename
Description
This property determines whether IBM® Campaign uses the not logged initially SQL syntax when populating temporary tables in DB2®.
When set to TRUE, this property disables logging for inserts in to 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.
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 of the following conditions are met:
*
*
*
In this case, IBM® Campaign generates a single SQL CASE statement to perform segmentation, followed by segment-by-field processing on the 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 IBM® 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.
*
Tokens available to TempTablePostExecutionSQL are described below.
This token is replaced with the IBM® EMM user name associated with the flowchart for which temp tables were created.
This token is replaced with the 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 IBM® 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, IBM® Campaign can use that temporary table to retrieve rows from the database.
A number of IBM® Campaign operations, such as useInDbOptimization, rely on the ability to create temp tables. If temporary tables are not enabled, IBM Campaign retains the selected IDs in the IBM® 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
*
Typically, you set AllowTempTables to TRUE. To override the value for a specific flowchart, open the flowchart in Edit mode, select Advanced Settings from the Admin menu Tiny person, pencil, and circle, with menu arrow icon, then select Disallow Use of Temp Tables for This Flowchart on the Server Optimization tab.
Screen capture of Server Optimization tab
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, IBM® 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, IBM® 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 IBM® Campaign flowchart. Higher values generally improve performance.
IBM® Campaign runs database queries using independent threads. Because IBM® 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 IBM® Campaign server limits the number of simultaneous queries to the specified value.
The maximum value is unlimited.
*
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
This property specifies a default value for the maximum amount of system virtual memory to use when running a flowchart. You can increase the value to improve performance or decrease the value to limit the resources used by a single flowchart. The maximum value is 4095 MB. If you enter a larger value, Campaign automatically limits it to 4095 MB.
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 Tiny person, pencil, and circle, with menu arrow icon, and change the IBM Campaign Virtual Memory Usage value on the Server Optimization tab.
Screen capture of Server Optimization tab
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 IBM® 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
keepFlowchartLogOpen
Configuration category
Campaign|partitions|partition[n]|server|logging
Description
This property specifies whether IBM® 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, IBM® 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 IBM® 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, IBM® Campaign opens and closes the flowchart log file.
Default value
FALSE
Valid Values
TRUE | FALSE
logFileBufferSize
Configuration category
Campaign|partitions|partition[n]|server|logging
Description
This property is used when the value of 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
Client polling interval
Configuration category
Platform|Scheduler
Description
IBM® Campaign polls the IBM® EMM 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 IBM® Campaign flowcharts, the path for this property is Platform|Scheduler|Schedule registrations|Campaign|Flowchart
Description
The IBM® EMM 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 IBM® Campaign, set a less frequent polling interval when you have a large number of Campaign flowcharts that take more than 10 minutes to complete.
Default value
600000