Configuracion timeout con BD Oracle.

Estoy programando una aplicación en C++, y en una librería dinámica realizo operaciones sobre una BD con Oracle Pro*C 9.2.0.
En repetidas ocasiones recibo el error de conexión "ORA-03114", pero en un tiempo superior al razonable.
He visto en la red alguna configuración de timeouts a nivel de administración, pero no tengo permisos de administración sobre la BD.
¿Sabéis si existe algún mecanismo proporcionado por Oracle para controlar un timeout de operación sobre la BD?
¿Necesariamente debo implementar este timeout en mi aplicación?.

1 Respuesta

Respuesta
1
Básicamente el problema se debe a la asignación de recursos para el perfil al cual pertenece el usuario.
Para verificar estos recursos puede ejecutar la sentencia:
select * from USER_RESOURCE_LIMITS;
Hay cuatro que pueden ser su problema:
LOGICAL_READS_PER_SESSION: Bloques totales de lectura en una sesión
LOGICAL_READS_PER_CALL: Bloques totales de lectura en una llamada.
COMPOSITE_LIMIT: Costo de recursos total para una sesión.
CONNECT_TIME: Tiempo total de conexión para un usuario.
Si se sobre pasa alguno de estos limites la sesión se suspende arrojando el error.
Tiene que tener en cuenta que el problema no es de su aplicación sino de los límites impuestos para su usuario.
Se pueden cambiar estos límites sin ser administrador pero teniendo el privilegio ALTER PROFILE, para verificar si el usuario lo tiene asignado ejecutamos la sentencia:
select * from USER_SYS_PRIVS;
Debe aparecer en el resultado de esta consulta.
Y finalmente para alterar el perfile ejecutamos:
alter profile "[nombre perfil]" limit " [nombre_parametro]" [valor].
Si no puede modificar el perfil debe pedir al administrador del sistema que haga estos cambios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas