prim83637:Performance degrades after deploying Contract Management to a clustered environment
| Solution ID: prim83637 |
| Performance degrades after deploying Contract Management to a clustered environment |
| Status: Reviewed |
| Version(s): 13.0 |
| Fact: | Contract Management 13, Clustering using WebLogic |
| Problem: | Contract Management performance when deployed in a cluster is noticeably affected. |
| Cause: | CAUSE 1: Exceeding the recommended maximum number of server per machine |
| Cause: | CAUSE 2: JDBC data sources; ensure connection pools are shared across the nodes |
| Cause: | CAUSE 3: Update the Windows hidden heap setting for printing |
| Fix: | Fix 1: Recommended maximum number of servers per machine Large multi-processor servers can host large clusters but the typical recommendation is to have a server instance for every two CPUs. (i.e. no more than one server on a dual-CPU system, no more than two on a quad-CPU, and so forth) This recommendation can be stretched based on the actual resource usage measured in a production environment, but the usage should be monitored over time to ensure that it’s growth does not overload system resources. |
| Fix: | Fix 2: JDBC data sources; ensure connection pools are shared across the nodes When creating the data source the connection pools should be shared across all nodes. i.e. A 25 connection pool will not provide much scalability to a 5 server cluster, as the clusters will bottleneck on the database side. The best way to scale the data source connection pool is through monitoring over time, but an initial estimate of 25-50 connections per database per managed server is a recommended starting point for most implementations. For further information on configuring the data sources for Weblogic, please see the following documents located in the Contract Management 13 installation media : Documentation\Install-MSSQL.pdf – page 31 (Configure the Data Source for Microsoft SQL Server Databases) Documentation\Install-Oracle.pdf – page 31 (Configure the Data Source for Oracle Databases) |
| Fix: | FIX 3: Update the Windows hidden heap setting for printing Although Contract Management is almost a Java application, upon installation, one Windows setting should be changed. The registry key HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SessionManager \ SubSystems key should be updated to ensure that GeneratePDF has enough memory in the hidden desktop heap to handle multiple embedded reports. This is done by updating the Windows string SharedSection value. While the Windows key as a whole will vary based on the host operating system, the SharedSection value will look something like this: SharedSection=1024,3072,512 Contract Management updates the third value (the hidden heap) to 2048: SharedSection=1024,3072,2048 Since the Contract Management installation is only run on one machine in the cluster, this registry key is only updated on that machine. Other machines will need to be updated manually. As it is a general best practice to ensure identical machines when operating a cluster (certainly as far as Operating Systems are concerned), a low-risk way of handling this is by distributing and importing an export of the SubSystems key. |