Monitoramento dos impasses A propriedade derby.stream.error.logSeverityLevel determina o nível de erro informado. derby.locks.deadlockTrace derby.locks.monitor derby.stream.error.logSeverityLevel

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.

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 .

Abaixo está um exemplo de uma mensagem de erro quando o 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 Podem ser utilizadas as propriedades derby.locks.waitTimeout e derby.locks.deadlockTimeout para configurar quanto tempo o 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 no .