Configurei a mola com suporte transacional. Existe alguma maneira de registrar transações apenas para garantir que configurei tudo corretamente? Mostrar no log é uma boa maneira de ver o que está acontecendo.
java
spring
transactional
cometta
fonte
fonte
INFO
nível não mostrará nenhuma atividade tx, seria muito prolixo.DEBUG
será necessário lá.Para mim, uma boa configuração de registro para adicionar foi:
Ele vai me mostrar o log assim:
fonte
Para aplicação Spring Boot com
application.properties
ou se você preferir Yaml (
application.yaml
)fonte
Informações de registro mais interessantes de
JtaTransactionManager.java
(se esta questão ainda for sobreJtaTransactionManager
) são registradas emDEBUG
prioridade. Supondo que você tenha umlog4j.properties
lugar no caminho de classe, sugiro usar:fonte
Como você pode acessar classes Spring em tempo de execução, pode determinar o status da transação. Este artigo pode ajudá-lo:
https://dzone.com/articles/monitoring-declarative-transac
fonte
isActualTransactionActive()
vez de recuperá-la em cada chamada de registro.Você também pode habilitar o registro JDBC:
fonte
Aqui está algum código que eu uso na minha implementação de Layout de Logback, derivado de ch.qos.logback.core.LayoutBase .
Eu crio uma variável thread-local para armazenar a referência ao método
org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive()
. Sempre que uma nova linha de log é impressa,getSpringTransactionInfo()
é chamada e retorna uma string de um caractere que irá para o log.Referências:
Código:
fonte