Issue
Out Of Memory (OOM) errors may occur on an AdobeLiveCycle ES Update 1 (Service Pack 2) JBoss turnkey installation or JBoss manual with MySQL installation. This issue is related to the MySQL JDBC driver version and the data source connection settings.
Caution: This update strongly recommends that you shut down the JBoss and MySQL services prior to running the Service Pack 2 installer (as indicated in the install instructions).
Reason
Solution
You must install version 5.1.6 of the JDBC driver to reduce the number of open result sets and resolve the out of memory issues. You must also change the data source and JVM settings.
Obtaining and installing the JDBC driver
This section describes the tasks required to obtain and install the appropriate MySQL JDBC driver.
To obtain and install the driver for non-turnkey JBoss:
Note: On JBoss turnkey, this task is performed by the LiveCycle ES installer and is not required.
-
Locate and delete the mysql-connector-java-3.1.12-bin.jar file in the [JBoss_root]\server\all\lib directory. The default location is C:\Adobe\LiveCycle8.2\jboss\server\all\lib.
-
Locate and copy the [LiveCycleES_root]\patch\SP2\mysql-connsctor-java-5.1.6-bin.jar file to the [JBoss_root]\server\all\lib directory.
Changing data source settings
The data source settings as defined in the adobe-ds.xml file are intended for a heavy load with many concurrent connections and a long idle connection timeout (10 minutes). This results in a large number of prepared statements being cached on the heap. Reducing the idle connection timeout, the number of maximum open connections, and the size of the prepared statement cache for IDP_DS and EDC_DS will result in a reduction of heap memory allocated to the JDBC connections.
To modify the data source settings:
-
Locate and open the adobe-ds.xml file in an editor. By default it is located in C:\Adobe\LiveCycle8.2\jboss\server\all\deploy.
-
Locate the line <idle-timeout-minutes>10</idle-timeout-minutes> and change the value from 10 to 1.
Note:Modify this value for both the IDP_DS and the EDC_DS definitions.
-
In the IDP_DS definition, locate <max-pool-size> and change the value to 20.
-
In the EDC_DS definition, locate <max-pool-size> and change the value to 10.
Note: If the number of Rights Management requests is high, you may keep the default value for EDC_DS as 20.
-
For both IDP_DS and EDC_DS definitions, locate <prepared-statement-cache-size> and change both values to 20.
Note: Setting this value reduces the memory used by the cache and may need to be fine-tuned based on the transaction load on your system.
Changing JVM settings
The JBoss turnkey install sets a number of JVM arguments in the run.bat file and in the JBoss for Adobe LiveCycle ES service definition. After you have updated the JDBC driver, you can modify the run.bat file.
To modify the run.bat file:
-
In a text editor, open the run.bat file located in C:\Adobe\LiveCycle8.2\jboss\bin.
-
Delete the following arguments:
-XX:NewSize=500 -XX:MaxNewSize=500 -XX:SurvivorRatio=6If Content Services is not installed, the PermSize value can be reduced to 128 MB.
-
Locate the XX:PermSize setting and modify the value to 128M.
-
Save and close the file.
To modify the JBoss for Adobe LiveCycle ES service definition you must uninstall and reinstall the service with new JVM arguments specified.
Changing the JBossService settings
The JBoss server is configured using a batch file, InstallJBossService.bat that is created during system installation. During the turn-key setup of LiveCycle, LiveCycle PDF Generator ES support for native document conversion is an optional feature. The batch file will vary slightly, depending on whether you have enabled this feature.
If during the installation you chose to include this feature, then you will have entered a username and password into the LiveCycle setup. You will need to use this username and password to complete the reinstallation of the JBoss service.
To uninstall and reinstall the JBoss for Adobe LiveCycle ES service:
-
In a text editor, open the InstallJBossService.bat file located in C:\Adobe\LiveCycle8.2\jboss.
-
Delete the following arguments (Note: on JBoss Turnkey, this task is performed by the LiveCycle ES install program and this step is not required.):
-XX:NewSize=500 -XX:MaxNewSize=500 -XX:SurvivorRatio=6If Content Services is not installed, the PermSize value can be reduced to 128 MB.
-
(Optional) Locate the XX:PermSize setting and modify the value to 128M.
-
Check if the last part of the .bat file contains -user %1 -password %2. If so, native document conversion has been configured and you will need to enter the username and password when you reinstall the service.
Note: This is not the JBoss service user but the user credentials for the account used to install the native application software (such as Microsoft Office).
-
Save and close the file.
Note: You will need the username and password that the service is using. To find the username, open the Services control panel, right-click JBoss for Adobe LiveCycle ES, select Properties from the menu and select the Log On tab. The same username and password combination should be used as during the original install.
-
From the Services control panel, stop the JBoss for Adobe LiveCycle ES service.
-
Verify that the service is not running in the Service control panel or by entering the following command:
JBossService -status "Jboss for Adobe LiveCycle ES"
The resulting message will indicate that the service has been stopped.
-
From a command prompt, change to the C:\Adobe\LiveCycle8.2\jboss directory and enter the following command to uninstall the service:
JBossService -uninstall "Jboss for Adobe LiveCycle ES" -
Once the service has been uninstalled, reinstall it by running the modified InstallJbossService.bat file.
-
If native document conversion is enabled you will specify the username and password by entering the following command:
InstallJBossService [domain\username][password]
Where [domain\username] and [password] are the credentials used during the original installation. If the ID is a local user, then it will be specified using the syntax MACHINENAME\USERNAME. A domain login ID must be specified as DOMAIN\USERNAME.
-
Verify that the service is running in the Service control panel or by entering the following command:
JBossService -status "Jboss for Adobe LiveCycle ES"