"java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space" errors occur frequently in versions 6.x of RSA Identity Governance & Lifecycle
2 years ago
Originally Published: 2020-04-18
Article Number
000044968
Applies To
RSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: 6.x
Platform/Application Server: JBoss
 
Issue
With RSA Identity Governance & Lifecycle v6.0.x through and including v6.9.x running with a JBoss Application server, user logins may fail with:
 
java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space

 
Cause
This issue is due to an incorrectly defined JBoss configuration.

This is a known issue reported in engineering ticket ACM-53163.
 
Resolution
This issue is resolved in RSA Identity Governance & Lifecycle 6.9.1 P04.
 
Workaround
The JBoss configuration can be modified manually to workaround this issue by updating a file called ejb3-interceptors-aop.xml.
  1. Login to the server as the oracle user
  2. Backup and edit the ejb3-interceptors-aop.xml file:
cd home/oracle/jboss-4.2.2.GA/server/default/deploy/ejb3-interceptors-aop.xml 
cp ejb3-interceptors-aop.xml ejb3-interceptors-aop.xml.backup_<date>
vi ejb3-interceptors-aop.xml
  1. Modify this section:
FROM:
<domain name="Stateless Bean">
...
  <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
     @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
  </annotation>
</domain>
TO: (Note the change is highlighted in bold)
<domain name="Stateless Bean">
...
  <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
     @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
  </annotation>
</domain>
Note there are several references to org.jboss.ejb3.ThreadlocalPool.class in the file. The change is only required to the Stateless Bean section. 
  1. Restart RSA Identity Governance & Lifecycle:
acm restart