Limitación de recursos para sentencias SQL reactivamente
Puede utilizar el recurso de límite de recursos para establecer límites para el control reactivo, lo que significa que Db2 detiene las sentencias de SQL de contextos especificados que sobreutilizan los recursos del sistema.

Antes de empezar

Acerca de esta tarea
Cuando se especifica control reactivo, el recurso de límite de recursos detiene una sentencia SQL actualmente en ejecución que cumpla las condiciones de una fila de la tabla de límite de recursos si la sentencia SQL utiliza más recursos que la cantidad máxima de recursos especificada por el valor de la columna ASUTIME en esa fila. Si un sentencia supera un límite de control reactivo, el programa de aplicación recibe un SQLCODE -905. La aplicación debe incluir el código que lleva a cabo la acción apropiada basándose en esta situación.
Los límites de recursos se aplican únicamente a los siguientes tipos de sentencias SQL:
- SELECT
- INSERT
- UPDATE
- MERGE
- TRUNCATE
- DELETE
Para las sentencias que contienen funciones definidas por el usuario externo, el tiempo de recurso utilizado por las funciones definidas por el usuario no se cuenta como parte del tiempo de recurso de la sentencia. No se aplican límites a los ID de autorización primarios ni secundarios que tengan autoridad SYSADM de instalación o SYSOPR de instalación.
Procedimiento
Para especificar límites de recursos reactivos:
- «2»
- Limite las sentencias de SQL dinámico por nombre de paquete, ID de autorización, ID de recopilación, el nombre de la ubicación del solicitante o una combinación de los anteriores. (RLST)
- «8»
- Limite las sentencias de SQL dinámico por información de cliente (RLMT).
«A»
Limite las sentencias de SQL estático por nombre de paquete (RLST).
«B»
Limite las sentencias de SQL estático por información de cliente (RLMT).
Resultados
Db2 restablece el ASUTIME acumulado en los siguientes eventos:
- Tras completarse la ejecución de una sentencia que no utiliza ningún cursor.
- Tras el cierre del cursor correspondiente a una sentencia.
- Durante la ejecución de PREPARE para sentencias dinámicas.
Cualquier sentencia que alcance o supere un límite que se haya definido en una tabla de límite de recursos termina con el SQLCODE -905 y el correspondiente SQLSTATE '57014'. Puede establecer un límite único para todos los usuarios, límites diferentes para usuarios individuales o ambas cosas. No se aplican límites a los ID de autorización primarios ni secundarios que tengan autorización SYSADM o SYSOPR para la instalación. Para las consultas que se introducen en Db2 desde un sitio remoto, se utilizan los límites del sitio local.
Si la sentencia fallida implica un cursor SQL, la posición del cursor no cambia. Luego la aplicación puede cerrar dicho cursor. Todas las demás operaciones con el cursor no se ejecutan y se genera el mismo código de error de SQL.
Si la sentencia SQL fallida no implica ningún cursor, todos los cambios que la sentencia realice se deshacen antes de que el código de error se devuelva a la aplicación. La aplicación puede emitir otra sentencia SQL o confirmar todo el trabajo realizado hasta el momento.