Tuning Recommendations for SAS Web Application Server

You can specify application server options to improve the performance of SAS web applications. This chapter provides a set of application server options that are relevant to the SAS 9.4 middle tier. A description is provided for each option to help you decide whether modifying a value is appropriate for your deployment.
The following options can be modified in the SAS-configuration-directory\Levn\Web\WebAppServer\SASServer1_n\conf\server.xml file:
maxThreads Option
Component: tomcatThreadPool Executor
Default Value: 300
Recommended Value: 300–1024
Description: Specifies the number of threads in the executor thread pool that is used to process incoming requests. If you have multiple instances of SAS Web Application Server, make the same changes in each of the files for all the servers that you want to tune.
Additional Information: The thread pool utilization can be monitored using SAS Environment Manager. For more information, see Using SAS Environment Manager to Monitor and Troubleshoot Data. If the number of active threads approaches the maximum value (within 5–10 percent), the value should be increased.
maxPoolSize Option
Component: Various JDBC Resources, such as sas/jdbc/SharedServices
Default Value: 100
Recommended Value: 50–512
Description: Specifies the maximum number of pooled connections to the database that is associated with a given data source reference.
Additional Information: When the pool becomes exhausted, the SAS web applications log files (for example, SASWIPServices9.4.log and SASPrincipalServices9.4.log) might contain messages like the following example:
Could not get JDBC Connection; 
nested exception is com.atomikos.jdbc.AtomikosSQLException: 
Connection pool exhausted - try increasing 'maxPoolSize' 
and/or 'borrowConnectionTimeout' on the DataSourceBean.  
Also, the configuration of the database server might need to be modified, along with this setting. For example, the default configuration of the SAS Web Infrastructure Platform Data Server allows a maximum of 256 connections. You can change the max_connections setting to be the same value as the sum of the maxPoolSize option value across all data sources on all server instances. If you change the value, a system restart is required. For more information about the max_connections setting, see Initial Configuration Recommendations.
The following option can be added to the SAS-configuration-directory\Levn\Web\WebAppServer\SASServer1_n\lib\jta.properties file:
com.atomikos.icatch.checkpoint_interval Option
Component: Atomikos transaction manager
Default Value: 500
Recommended Value: 50
Description: Specifies the interval between transaction manager checkpoints. During checkpoints, completed transactions are removed from the recovery log. More frequent checkpoints can reduce the contention on the log file across threads in high volume usage scenarios.