Bloqueos y tipos de proceso de aplicaciones

Para determinar los atributos de bloqueo, el proceso de aplicaciones se puede clasificar como uno de los tipos siguientes: sólo lectura, intención de cambiar, cambio y control de cursor.

  • Sólo lectura

    Este tipo de proceso incluye todas las sentencias SELECT que son intrínsecamente de sólo lectura, tienen una cláusula FOR READ ONLY explícita o son ambiguas, pero el compilador de consultas presupone que son de sólo lectura debido al valor de la opción BLOCANDO que especifica el mandato PREP o BIND . Este tipo sólo requiere bloqueos de compartición (IS, NS o S).

  • Intención de cambiar

    Este tipo de proceso incluye todas las sentencias SELECT que tienen una cláusula FOR UPDATE, una cláusula USE AND KEEP UPDATE LOCKS, una cláusula USE AND KEEP EXCLUSIVE LOCKS o que son ambiguas, pero el compilador de consultas presupone que el cambio está previsto. Este tipo utiliza bloqueos de compartición y actualización (S, U o X para filas; IX, S, U o X para bloques; y IX, U o X para tablas).

  • Cambio

    Este tipo de proceso incluye sentencias UPDATE, INSERT y DELETE, pero no UPDATE WHERE CURRENT OF o DELETE WHERE CURRENT OF. Este tipo requiere bloqueos exclusivos (IX o X).

  • Cursor controlado

    Este tipo de proceso incluye UPDATE WHERE CURRENT OF y DELETE WHERE CURRENT OF. Este tipo requiere bloqueos exclusivos (IX o X).

Una sentencia que inserta, actualiza o suprime datos en una tabla de destino, basándose en el resultado de una sentencia de subselección, realiza dos tipos de proceso. Las reglas para el proceso de sólo lectura determinan los bloqueos para las tablas que devuelven datos en la sentencia de subselección. Las reglas para el proceso de cambios determinan los bloqueos para la tabla de destino.