DB2 - Passo a passo - Níveis de isolamento CS, RR, UR e RS em um programa


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES, Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 - Passo a passo - Níveis de isolamento CS, RR, UR e RS em um programa

How to implement isolation levels CS, RR, UR and RS in a DB2 program?
Como implementar os níveis de isolamento CS, RR, UR e RS em um programa DB2?

The isolation level defines the degree to which the DB2 data which is being accessed in the COBOL-DB2 program is isolated with another parallelly executing COBOL-DB2 program.
There are 4 main types of Isolation levels in DB2.

O nível de isolamento define o grau em que os dados do DB2 que estão sendo acessados no programa COBOL-DB2 são isolados com outro programa COBOL-DB2 em execução paralela.
Existem 4 tipos principais de níveis de isolamento no DB2.

Cursor stability (CS) - Estabilidade do cursor (CS)

The cursor stability isolation level locks only the current row which the program is accessing.
As soon as the program shifts to the next row, the lock in the previous row gets released.
The cursor stability fetches only committed rows for the program to access.
This is a default isolation level.

O nível de isolamento de estabilidade do cursor bloqueia apenas a linha atual que o programa está acessando.
Assim que o programa muda para a próxima linha, o bloqueio na linha anterior é liberado.
A estabilidade do cursor busca apenas linhas confirmadas para o programa acessar.
Este é um nível de isolamento padrão.

Read stability (RS) - Estabilidade de leitura (RS)

This isolation level places a lock on all the rows which qualifies the SQL statement’s predicate (eg: WHERE clause).
The lock is retained until the entire processing is completed.

Este nível de isolamento bloqueia todas as linhas que qualificam o predicado da instrução SQL (por exemplo: cláusula WHERE).
O bloqueio é retido até que todo o processamento seja concluído.

Uncommitted read (UR) - não confirmada (UR)

The uncommitted read isolation level is used in the SQL statements meant for read-only purpose.
There is no lock placed on a row/record and it fetches the committed as well as uncommitted rows (from the other programs/transactions).

O nível de isolamento de leitura não confirmada é usado nas instruções SQL destinadas a fins somente leitura.
Não há bloqueio colocado em uma linha / registro e ele busca as linhas confirmadas e não confirmadas (de outros programas / transações).

Repeatable read (RR) - Leitura repetida (RR)

This isolation level is used when we need to retain the locks until a commit.
Este nível de isolamento é usado quando precisamos reter os bloqueios até um commit.

To define an isolation level for a COBOL-DB2 program, we need to use the corresponding parameter in the ISOLATION option of the BIND step.
Below is the JCL step using which isolation level can be defined.

Para definir um nível de isolamento para um programa COBOL-DB2, precisamos usar o parâmetro correspondente na opção ISOLATION da etapa BIND.
Abaixo está a etapa JCL usando qual nível de isolamento pode ser definido.

    //BIND EXEC PGM=IKJEFT01
    //STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR
    //SYSOUT DD SYSOUT=*
    //SYSTSIN DD *
    DSN SYSTEM(TB3)
    BIND PLAN(PLANA) -
    PKLIST(PACKA) -
    ACQUIRE(ALLOCATE) -
    ISOLATION (RS)
    /*

In the above step, we have used the ISOLATION option with RS parameter, which corresponds to read stability.
Similarly, we have parameter CS for cursor stability, RR for repeatable read and UR for uncommitted read.

Na etapa acima, usamos a opção ISOLATION com o parâmetro RS, que corresponde à estabilidade de leitura.
Da mesma forma, temos o parâmetro CS para estabilidade do cursor, RR para leitura repetível e UR para leitura não confirmada.