This content describes optional settings that you can configure to improve the performance of your AEM forms application server.
AEM forms uses the AEM forms repository as its data source. The AEM forms repository stores application assets and, at run time, services can retrieve assets from the repository as part of completing an automated business process.
Access to the data source can be significant, depending on the number of AEM forms modules you are running and the number of concurrent users accessing the application. Data source access can be optimized using connection pooling. Connection pooling is a technique used to avoid the overhead of making new database connections each time an application or server object requires access to the database. Connection pooling is usually used in web-based and enterprise applications and is usually handled by, but not limited to, an application server.
It is important to properly configure your connection pool parameters so that you never run out of connections, which can cause application performance to deteriorate.
To properly configure connection pool settings, it is important for the application server administrator to monitor the connection pool during peak hours of the day. Monitoring ensures that sufficient connections are available for applications and users at all times. Most application servers include monitoring tools.
You can monitor various statistics for each JDBC data source instance in your domain by using the WebLogic Server Administration Console. See your WebLogic documentation for details.
When the application server administrator determines the correct connection pool settings, that person must communicate this information to the database administrator. The database administrator needs this information because the number of database connections equals the number of connections in the connection pool for the data source. Then, complete the steps to configure the connection pool settings for your application server and data source type as described below.
If you are typically processing documents of a relatively small size, you can improve the performance that is associated with the document transfer speed and storage space. To do so, implement the following AEM forms product configurations:
Increase the default document maximum inline size for AEM forms so that it is larger than the size of most documents.
For processing larger files, specify storage directories that are on a high-speed disk system or a RAM disk.
The maximum inline size and the storage directories (the AEM forms temporary file directory and the GDS directory) are configured in the administration console.
When a document that is sent for processing by AEM forms is less than or equal to the default document maximum inline size, the document is stored on the server inline and the document is serialized as an Adobe Document object. Storing documents inline can have significant performance benefits. However, if you are using forms workflow, the content may also be stored in the database for tracking purposes. Therefore, increasing the maximum inline size may affect the database size.
A document that is larger than the maximum inline size is stored on the local file system. The Adobe Document object that is transferred to and from the server is only a pointer to that file.
When document content is inlined (that is, less than the maximum inline size) the content is stored in the database as part of the document's serialization payload. Therefore, increasing the maximum inline size can affect the database size.
The value of Document Max Inline Size property must be identical for AEM Forms on JEE environment and AEM Forms on OSGi bundle included AEM Forms on JEE environment. This steps updated value only for AEM Forms on JEE environment and not for AEM Forms on OSGi bundle included AEM Forms on JEE environment.
Restart the application server with the following system property:
com.adobe.idp.defaultDocumentMaxInlineSize=[value specified in Step 2]
The above-mentioned system property overrides value of Document Max Inline Size property set for AEM Forms on JEE environment and AEM Forms on OSGi bundle included AEM Forms on JEE environment.
The default maximum inline size is 65536 bytes.
An increase in the maximum inline size requires more memory for storing the serialized documents. Therefore, it generally also requires an increase in the JVM maximum heap size.
A heavily loaded system that is processing many documents can rapidly saturate the JVM heap memory. To avoid an OutOfMemoryError, increase the JVM maximum heap size by an amount corresponding to the size of the inline documents multiplied by the number of documents that are typically executed at any given time.
JVM maximum heap size increase = (inline documents size) x (average number of documents processed).
In this example, the current JVM maximum heap is set to 512 MB and the maximum inline size is 64 KB. The server must be configured for the scenario where 10 jobs are run simultaneously, and each job has 9 input files and 1 result file (a total of 10 files per job and 100 files processed simultaneously). All the files are under 512 KB in size.
To store all the files inline, set the maximum inline size o at least 512 KB.
The required increase in the JVM maximum heap size is calculated using the following equation:
(512 KB) x (100) = 51200 KB, or 50 MB
The JVM maximum heap size must be increased by 50 MB for a total of 562 MB.
Setting the size of inline documents to large values raises the risk of an OutOfMemoryError on systems that are prone to heap fragmentation. To store a document inline, the JVM heap memory must have sufficient contiguous space. Some operating systems, JVMs, and garbage collection algorithms are prone to heap fragmentation. Fragmentation decreases the amount of contiguous heap space and can lead to an OutOfMemoryError even when sufficient total free space exists.
For example, previous operations on the application server left the JVM heap in a fragmented state, and the garbage collector cannot compact the heap sufficiently to regain large blocks of free space. An OutOfMemoryError can occur even though the JVM maximum heap size was adjusted for an increase in maximum inline size.
To account for heap fragmentation, the inline document size must not be set higher than 0.1% of the total heap size. For example, a JVM maximum heap size of 512 MB can support a maximum inline size of 512 MB x 0.001 = 0.512 MB, or 512 KB.
If you are running Configuration Manager or trying to generate Enterprise JavaBeans (EJB) deploy code by using the command line utility ejbdeploy and an OutOfMemory error occurs, increase the amount of memory allocated to the JVM.
This content describes settings specific to a Microsoft Windows Server 2003 operating system environment.
Using connection pooling on the search connection can decrease the number of ports needed by as much as 50%. This is because that connection always uses the same credentials for a given domain, and the context and related objects are closed explicitly.
Serious problems can occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems may require that you reinstall your operating system. Modify the registry at your own risk.