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.
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