Enterprise Security Manager dbconvert utility having out of memory errors


Article ID: 157437


Updated On:


Control Compliance Suite Windows


When running the dbconvert Enterprise Security Manager (ESM) utility an error is received indicating an out of memory condition.



Two reasons:

     1.) Not enough memory assigned to JAVA

     2.) Very large job run, or high number of checks in policy, or you have removed message count limitation on agents giving many thousands of messages.



Message Based Data Collection using ESM dbconvert to push data to external database.



Sometimes if a policy run result is to big, DBconvert (java) runs out of memory. When this situation happens, the job run fails to properly complete. This problem has two solutions. The first is to increase the memory available to the JVM. The second is to use the "slow" method and limit the number of threads that DBconvert can use. Choose the method that best applies to your situation.

1.) To increase the amount of memory available for DBconvert, you must use a custom java command instead of using dbconvert.exe. At a command prompt type:

java -cp jcif.jar;dbconvert.jar -Xmx1024M com.symantec.esm.dbconvert.DBConvert

In this example the number 1024 is the amount of java in megabytes.  Since dbconvert uses 32 bit version of JAVA you will only be able to increase the amount of memory to 1536 (1.5 GB).  Ensure that your system has at least the amount of available free RAM that you are specifying.  If it does not, this might be your issue and increasing the onboard RAM on the machine may eliminate the issue.

2.) To use the slow method, specify the -Ddbconvert.maxjobrunagents=1 argument on the command line or add dbconvert.maxjobrunagents=1 to the properties file. Setting this value to 1 guarantees that only one thread is created. In either case, make sure to use the parameter to limit the job to a particular policy run number with the dbconvert.jobnumber parameter.  Ex.  dbconvert.jobnumber=1908  (where the job number is 1908).