Transaction name is always null when debug logging @Transactional`` @JmsListener methods.
This chunk of code in AbstractPollingMessageListenerContainerreturns null forgetBeanName():
// Use bean name as default transaction name.
if (this.transactionDefinition.getName() == null) {
String beanName = getBeanName();
if (beanName != null) {
this.transactionDefinition.setName(beanName);
}
}
It should be easy to support by setting the beanName from the endpoint passed into createListenerContainer(JmsListenerEndpoint endpoint) { ... } in AbstractJmsListenerContainerFactory.
Comment From: jhoeller
As a side note, exposing the endpoint id also enables the listener container to use specific thread names based on that id, just like the bean name for a manually defined listener container is also showing up in the thread names (with the default task executor).