Varrendo para Localizar Registros Bloqueados
É prática recomendada
varrer o banco de dados regularmente em busca de registros bloqueados. Para
localizar registros bloqueados, crie e execute uma consulta que identifique os registros
e os usuários que mantêm cada bloqueio. Ao localizar os registros bloqueados, execute a ação
apropriada para remover os bloqueios, se necessário.
Desbloqueando Registros com um Recurso de Tempo Limite
Você
pode criar um script que permita identificar registros bloqueados e desbloqueá-los
automaticamente. Um script de tempo limite deve desempenhar estas tarefas:
- Colete o conjunto de tipos de registro definidos pelo esquema.
- Construir uma estrutura de dados que identifique todos os registros bloqueados para cada
tipo de registro. A estrutura deve incluir informações tais como o usuário que
suspende o bloqueio, a versão que está bloqueada e o tempo em que o bloqueio foi
observado. Essa
estrutura inicialmente permanece vazia.
- Construir uma consulta para localizar os registros que estão bloqueados atualmente, selecionando o
ID do registro e as colunas locked_by e lock_version.
- Compare o conjunto atual de registros bloqueados com aqueles já conhecidos e
registrados na estrutura de dados. Essa verificação deve incluir uma correspondência
quanto ao usuário do bloqueio e à versão do registro que foi bloqueado, a fim de
distinguir bloqueios pelo mesmo usuário, mas em uma nova versão do registro, ou por um
usuário diferente.
- Remover bloqueios que foram suspensos por mais tempo que um intervalo escolhido, carregando
a entidade e chamando o método Unlock API.
- Atualize a estrutura de dados para incluir referências nos registros que são
constatados como recém-bloqueados e remova as referências aos registros que não estão mais
bloqueados.
O script deverá também registrar sua atividade ou notificar
os usuários ao remover um bloqueio que eles estão mantendo.
O script deverá
ser configurado para ser executado a intervalos regulares. O intervalo de tempo limite
escolhido e a freqüência com que o script executa uma varredura determinará o tempo
mínimo e máximo esperado para um bloqueio atingir o tempo limite. Os usuários deverão
conhecer esses valores, já que eles afetam:
- por quanto tempo um usuário pode trabalhar na edição de um registro antes de perder seu bloqueio.
- quanto tempo um usuário deve aguardar a liberação automática de um bloqueio abandonado.
Utilizando findrecordlocks_pl para Manutenção de Bloqueio
O Rational
ClearQuest inclui um script findrecordlocks_pl que você pode utilizar para localizar bloqueios de
registro e configurar os bloqueios de tempo limite. Para obter informações adicionais e instruções para utilizar
o script, consulte a página de referência do findrecordlocks.pl.