Solucionando errores de memoria en Oracle Enterprise Manager 13c (OMS_HEAP_MAX y BEA-310003)

En uno de nuestros entornos de Oracle Enterprise Manager (OEM) 13c (Release 5), detectamos que el OMS (Oracle Management Service) se reiniciaba automáticamente sin intervención.

Tras revisar los logs, nos encontramos con el siguiente aviso preocupante:

<Free memory in the server is 52,928 bytes. There is danger of receiving an OutOfMemoryError.>

Aunque la máquina tenía memoria física suficiente, el proceso OMS estaba alcanzando su límite de heap Java, configurado con un valor bajo.

Diagnóstico

El proceso de OMS se ejecuta como una JVM (Java Virtual Machine), por lo tanto, su uso de memoria está limitado por los parámetros de arranque, típicamente:

-Xms: heap mínimo

-Xmx: heap máximo

Al revisar los procesos activos:

ps -ef | grep oms | grep Xmx

Detectamos que estaba usando un heap máximo de apenas 1740M, lo cual es insuficiente para un entorno de producción con cierta carga.

Solución

Aumentamos el parámetro OMS_HEAP_MAX a 4096M (4 GB), ejecutando lo siguiente:

$OMS_HOME/bin/emctl set property -name OMS_HEAP_MAX -value 4096M

Y aplicamos reinicio.

$OMS_HOME/bin/emctl stop oms -all -force 
$OMS_HOME/bin/emctl start oms

Después del reinicio, confirmamos que el nuevo valor se aplicó correctamente:

ps -ef | grep oms | grep Xmx

Debería mostrar algo como: -Xmx4096M

Recursos del sistema

También confirmamos que la máquina tenía recursos suficientes:

free -m

Resultado:

Mem: 23744 total

Suficiente RAM para aumentar la memoria heap del OMS sin riesgos.

Conclusión

Este caso nos recuerda que:

OEM 13c puede consumir bastante heap según la carga.

Un valor bajo de OMS_HEAP_MAX puede causar errores BEA-310003 y reinicios del OMS.

Es importante revisar regularmente los logs de WebLogic (server.log, EMGC_OMS1.out) y ajustar parámetros JVM según el crecimiento del entorno.

¿Dónde buscar estos logs?

Los logs relevantes del OMS están aquí:

$OMS_HOME/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/logs/

EMGC_OMS1.out

server.log

Y los específicos de OEM:

$OMS_HOME/gc_inst/em/EMGC_OMS1/sysman/log/emoms.log

¿Has tenido problemas similares con OEM? ¿Cuánto heap tenéis configurado en producción?

Referencias y Notas de Soporte

  • [MOS 2674369.1] How to Increase the Java Heap Size for the Oracle Management Service (OMS) in OEM 13c

  • [MOS 1955854.1] OMS Fails with BEA-310003: Free memory in the server is ... There is danger of receiving an OutOfMemoryError

  • Documentación oficial OEM 13c – sección Tuning the OMS Heap Size

  • [MOS 1589136.1] How to Modify the OMS Java Heap Size Parameters in Enterprise Manager

  • BEA-310003 Error Codes Reference

0
Subscribe to my newsletter

Read articles from Carla Muñoz López directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Carla Muñoz López
Carla Muñoz López

Mi nombre es Carla y me defino como una apasionada de conocer, compartir ideas, divertirme y aprender todo lo relacionado con Oracle. Alegre y creativa, con un alto grado de autoexigencia, que busca, incluso sin querer, una forma diferente de ver un mismo problema o solución. Defensora del trabajo en equipo en todas las facetas de la vida y de disfrutar todo lo que haces, siempre con humildad. Actualmente cuento con más de 15 años de experiencia como administradora de Oracle, habiendo ocupado previamente posiciones como desarrolladora en la rama de Inteligencia de Negocios. Fue en ese momento que me di cuenta de que no quería centrarme en el desarrollo, sino participar en todas las capas que involucraban los datos, desde el despliegue de la base de datos hasta su explotación final. Siempre estoy dispuesta a ayudar y compartir conocimientos. Creo firmemente que con la tecnología hay que divertirse y no verla como una competencia. La persona con la que tienes que ser el mejor es contigo mismo.