Error ORA-03114

Hay aplicaciones que usan un cliente Oracle para gran parte de la funcionalidad ofrecidas ,  de modo que es vital en estos casos asegurar que el servicio de  acceso a la  BBDD este funcionando adecuadamente

Puede  que su aplicación  encuentre el siguiente error al ejecutar flujos de trabajo u otros procedimientos que requieran procesamiento dentro de la base de datos de Oracle:

25/01/2019 10:21:48: Sentencia sql: SELECT *  FROM  …………. 
25/01/2019 10:21:48: Error en el proceso de conversión. Error 5: ORA-03114: no conectado a ORACLE

Cuando esto ocurre, la conexión a la base de datos se perderá   lo cual  normalmente se traduce  que la  aplicación encuentra un error grave y probablemente se cerrara.

Este error puede  producirse  si su sesión de Oracle se ha quedado sin memoria.

Para reiniciar el valor de asignación de  memoria a una sesión de Oracle, lo mas fácil es seguir estos pasos:

  1. Cierre cualquier aplicación o servicio adicional  que pueda esta usando el cliente Oracle
  2. Reinicie  el cliente de Oracle  (en versiones antiguas puede llamarse oracleHome8ClientCache  )
  3. Para ello, en el menú Inicio de Windows, abra el panel de Control y vaya a Herramientas administrativas > Servicios. 
  4. Seleccione el cliente Oracle en la listen versiones antiguas puede llamarse oracleHome8ClientCache  ) y  pulse  en Detener el servicio.
  5. Vuelva al menú Inicio de Windows, abra el panel de Control y vaya a Herramientas administrativas > Servicios. 
  6. Seleccione el cliente  Oracle (en versiones antiguas puede llamarse oracleHome8ClientCache  ) en la lista y pulse en Iniciar  el servicio.

 

Para asignar más memoria a una sesión de Oracle se requiere conexión en el propio  servidor de BBDD  así como tambien a los clientes que estén usando esos servicios.Si es su caso puede seguir estos pasos:

  1. Cierre cualquier aplicación o servicio que pueda estar usando el cliente Oracle
  2. Detenga los servicios de Oracle en  Servicios de Windows. Para ello, en el menú Inicio de Windows, abra el panel de  Control y vaya a Herramientas administrativas > Servicios. Seleccione Oracle en la lista y detener el servicio.
  3. Asegúrese de que el servicio «OracleService» se ha detenido. De lo contrario, aparecerá un mensaje de error.
  4. Asegúrese de que los clientes no están conectadon al servidor.
  5. Cada sesión de Oracle tiene una cantidad limitada de memoria disponible. Para ver la memoria actual, escriba el  siguiente comando en la máquina en la que reside el servidor de Oracle :  orastack oracle.exe
  6. El resultado será como se indica a continuación, que muestra la asignación de memoria en el equipo:   Corriente de reserva memoria; PerThread = 1048576  y  Corriente de memoria asignada  = 4096 
  7. Nos situamos desde  [ORACLE_HOME] en la  subcarpeta bin. El siguiente comando aumentará la memoria para cada sesión (hasta 5 MB):           orastack oracle.exe 5000000 
  8. Reiniciar la los servicios de Oracle.
  9. Inicie la aplicación que usa  el cliente Oracle

 

 

Para asignar más memoria a una sesión de Oracle también se puede hacer desde los  clientes  que están usando  esos servicios.Si es su caso puede seguir estos pasos:

  1. Cierre cualquier aplicación o servicio que pueda estar usando el cliente Oracle
  2. Detenga los servicios de Oracle en  Servicios de Windows. Para ello, en el menú Inicio de Windows, abra el panel de  Control y vaya a Herramientas administrativas > Servicios. Seleccione Oracle en la lista y detener el servicio.
  3. Asegúrese de que el servicio «OracleService» se ha detenido. De lo contrario, aparecerá un mensaje de error.
  4. Asegúrese de que los clientes no están conectadon al servidor.
  5. Como el   servidor no es el mismo que  la máquina , este  se denomina con un nombre de servicio (p. ej. GISTEST) y, a continuación, el comando siguiente desde  [ORACLE_HOME] en subcarpeta bin  : orastack tnslsnr.exe 5000000
  6. Cuando el  servidor se reinicie o se reinicie la instancia  los  parámetros se pierden y se tienen que volver a aplicar.

 

 

Resultado:

Con esta opció, cada sesión de Oracle reserva 5 MB de memoria lo cual debería bastar para no dar problemas.

 Windows (32 bits) sólo puede direccionar 2 GB de memoria para cada proceso, lo que  significa que Oracle tiene un máximo de 2 GB de memoria, independientemente de la cantidad de memoria del servidor.Como el valor por defecto del parámetro de Oracle asigna 892 MB de área SGA (sistema global) más 297 MB de programa global PGA (área) por ejemplar.,por tanto, aproximadamente se  tiene 1,2 GB de memoria asignada para el proceso de Oracle, sin ninguna sesión de usuario. lo cual significa  que hay  aproximadamente 800 MB disponibles para sesiones de usuario

Con 5 MB por usuario  se pueden permitir un número máximo de 160 usuarios o 150 usuarios .Para estar seguros si se ejecuta con más de 150 usuarios simultáneos, puede considerar la posibilidad de reducir la memoria total por sesión de usuario.

Deja una respuesta