В the The Java EE 6 Tutorial, Chapter 17 A Message-Driven Bean Example, я наткнулся на это:Container Managed Операции и Session.AUTO_ACKNOWLEDGE
@MessageDriven(mappedName="jms/Queue", activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode",
propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Queue")
})
public class SimpleMessageBean implements MessageListener {
@Resource
private MessageDrivenContext mdc;
...
Поскольку MDB ведутся - (значение по умолчанию для атрибутов транзакций указывает на TransactionAttributeType.REQUIRED
и TransactionManagementType.CONTAINER)
)
как марки @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge")
любой смысл?
В Controlling Message Acknowledgment я прочитал
В транзакционных сессий (см Использование JMS API локальных транзакций), подтверждение происходит автоматически, когда сделка совершается. Если транзакция отменяется, все потребляемые сообщения повторно добавляются.
Это меня смутило; Я бы ожидал, что не объявит acceptMode здесь (поскольку мы находимся в транзакционной сессии)
спасибо! если вы согласны с тем, что мой вопрос полезен, вы можете вознаградить его, выставив его. – mambolis