Используя JMS API, вы можете создать «транзакционный» сеанс, отправить пакет сообщений и затем вызвать commit()
в сеансе. С точки зрения приложения кажется, что сообщения отправляются один за другим, так как send()
вызывается для каждого сообщения. Однако наиболее трудоемкая работа происходит только тогда, когда вызывается commit()
, что происходит только один раз для каждой партии. Это часто делается как оптимизация производительности, особенно для постоянных сообщений, чтобы избежать повторной блокировки, которая происходит на отдельных нетранзакционных отправках. Использование транзакций для пакетной обработки описано в разделе «Настройка JMS» документации по настройке производительности ActiveMQ Artemis .