Monitoramento dos impasses

A propriedade derby.stream.error.logSeverityLevel determina o n??vel de erro informado.

Por padr??o, a propriedade derby.stream.error.logSeverityLevel ?? definida com o valor 40000. Se a propriedade derby.stream.error.logSeverityLevel for definida para mostrar os erros no n??vel de transa????o (ou seja, se for definida com um valor inferior a 40000), os erros de impasse ser??o registrados no arquivo derby.log. Se for definida com um valor igual a 40000, ou maior, os erros de impasse n??o ser??o registrados no arquivo derby.log.

A propriedade derby.locks.monitor garante que os erros de impasse ser??o registrados, independentemente do valor de derby.stream.error.logSeverityLevel. Quando derby.locks.monitor est?? definida como verdade, todos os bloqueios envolvidos nos impasses s??o escritos no arquivo derby.log, junto com um n??mero ??nico que identifica o bloqueio.

Para ver o acompanhamento da pilha de thread quando o bloqueio ?? requisitado, a propriedade derby.locks.deadlockTrace dever?? ser definida como verdade. Esta propriedade ?? ignorada quando derby.locks.monitor est?? definida como falso.

Nota: A propriedade derby.locks.deadlockTrace deve ser utilizada com cuidado. Definir esta propriedade pode alterar o tempo do aplicativo, afetar severamente o desempenho, e produzir um arquivo derby.log muito grande.

Para obter informa????es sobre como definir estas propriedades, e informa????es sobre as propriedades espec??ficas mencionadas neste t??pico, deve ser consultado Ajuste do Derby.

Abaixo est?? um exemplo de uma mensagem de erro quando o Derby interrompe uma transa????o por causa de um impasse:

--SQLException Caught--

SQLState: 40001 =
Error Code: 30000
Message: A lock could not be obtained due to a deadlock,
cycle of locks and waiters is: Lock : ROW, DEPARTMENT, (1,14)
Waiting XID : {752, X} , APP, update department set location='Boise'
        where deptno='E21'
Granted XID : {758, X} Lock : ROW, EMPLOYEE, (2,8)
Waiting XID : {758, U} , APP, update employee set bonus=150 where salary=23840
Granted XID : {752, X} The selected victim is XID : 752
Nota: Podem ser utilizadas as propriedades derby.locks.waitTimeout e derby.locks.deadlockTimeout para configurar quanto tempo o Derby vai aguardar o bloqueio ser liberado, ou quando iniciar a verifica????o do impasse. Para obter mais informa????es sobre estas propriedades, deve ser consultada a se????o que discute o controle do comportamento de aplicativos do Derby no Guia do Desenvolvedor do Derby.