Revista 100% Verde

Error ORA-03114

Por Soloelectronicos @soloelectronico

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.
    Error ORA-03114
  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.


Volver a la Portada de Logo Paperblog