SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 46051: SAS® Digital Marketing might perform slowly when rendering e-mail as a web page

DetailsHotfixAboutRate It

SAS Digital Marketing enables recipients of its e-mails to view their e-mails as a web page. This functionality is provided for customers whose firewall blocks the picture content in the e-mails from rendering. However, viewing e-mail content as a web page can result in performance problems that manifest as "hung threads" in the tracking servlet's web application server log. The threads eventually clear and the content is rendered, but the wait time might be unacceptably long. If many requests are received concurrently, the web application server might seem to fail to complete execution.

For SAS Digital Marketing 5.4_M1 and SAS Digital Marketing 5.41 click the Hot Fix tab in this note to access the hot fix for this issue.

After the hot fix is applied, the following options need to be added to the Java arguments. The arguments are included in the script that is used to start the web application server on which the sdm.war and bess.war files are deployed:

-Dcom.sas.iom.orb.SelectionHub.clientThreadCount=x

This property defines the number of threads that are waiting for packets from the IOM servers. It should be set equal to the number of processors that are available to the web application server on which the bess.war file is deployed (for example, 8 for an 8-processor machine). The minimum value is 4.

In order to tune the JDBC driver, the bess.war uses a third-party JAR that needs to be downloaded and deployed. The May 2007 major release, C3p0-0.9.1.2 version c3po JAR file from SourceForge is one such JAR, and can be downloaded from here. The JAR should then be included in the list of third-party JAR files with the JDBC drivers when configuring the bess.war file for deployment.

The behavior of this JAR file can then be tuned using the following properties, which should also be added to the start-up parameters for the bess.war application server:

-Dc3p0.acquireIncrement=1 -Dc3p0.maxPoolSize=25 -Dc3p0.numHelperThreads=4

The recommended settings above can be further tuned to match the specific requirements of the installation.

In addition to the JVM arguments discussed above, there are two server properties that can be tuned in order to improve performance. AllVariablesInWhereClause influences the behavior of the AllowURLCustomizations server property.

A separate query is issued to the recipient table for each tracked variable in the e-mail when AllowURLCustomizations=false is specified. This query might be slow. Specifying AllowURLCustomizations=true eliminates the query, as the variable values are included the e-mail URL. However, this setting might be considered a security risk.

For SAS Marketing Automation broadcasts, when SAS Digital Marketing executes the broadcast an index on key fields such as SUBJECT_ID1, SUBJECT_ID2, ... and RESPTRACKING_CD is created. To optimize the query performance SAS Digital Marketing, by default, uses only those variables in the WHERE clause. Ideally using these variables should result in a unique record. In case unique records cannot be determined based on these variables and all tracked variables are required in the WHERE clause, the customer should set the AllVariablesInWhereClause server property to true. This setting causes only one query to be issued for all tracked variables.

MaxPublicationConnections should also be reviewed and set to at least double the number of maximum threads allowed in the web application server where the bess.war file is deployed. A good starting value is 1000, although the value might need to be tuned according to the workload.

Restarting the SAS Digital Marketing server and the bess.war are required after you apply the hot fix and change these properties.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Digital MarketingSolaris for x645.46.19.2 TS2M39.2 TS2M3
Linux for x645.46.19.2 TS2M39.2 TS2M3
HP-UX IPF5.46.19.2 TS2M39.2 TS2M3
64-bit Enabled Solaris5.46.19.2 TS2M39.2 TS2M3
64-bit Enabled HP-UX5.46.19.2 TS2M39.2 TS2M3
64-bit Enabled AIX5.46.19.2 TS2M39.2 TS2M3
Microsoft® Windows® for x645.46.19.2 TS2M39.2 TS2M3
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.