[java] JMS 메시지의 지속성 설정 방법
Java Message Service (JMS)는 메시지 지속성을 제공하여 메시지가 시스템 장애 또는 네트워크 문제로 인해 손실되지 않도록 보장합니다. JMS 메시징 시스템에서 지속성을 설정하는 방법에 대해 알아보겠습니다.
지속성 개요
JMS 메시지에는 DeliveryMode.PERSISTENT
또는 DeliveryMode.NON_PERSISTENT
로 설정할 수 있는 지속성 속성이 있습니다.
DeliveryMode.PERSISTENT
는 메시지가 손실되지 않도록 보장합니다. 메시지는 브로커에 저장되고 디스크에 기록되며, 장애 발생 시에도 유지됩니다.DeliveryMode.NON_PERSISTENT
는 메시지가 장애 발생 시 손실될 수 있는 것을 허용합니다. 메시지는 메모리에만 저장되고 디스크에는 기록되지 않습니다.
지속성 설정
JMS 프로듀서는 메시지를 생성할 때 javax.jms.MessageProducer
의 setDeliveryMode()
메서드를 사용하여 지속성을 설정할 수 있습니다. 다음은 DeliveryMode.PERSISTENT
로 지속성을 설정하는 예제 코드입니다.
import javax.jms.*;
public class JMSProducer {
public static void main(String[] args) {
// JMS 연결 및 세션 등의 설정
// 메시지 생성
TextMessage message = session.createTextMessage("Hello, JMS!");
// 지속성 설정
message.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
// 메시지 전송
producer.send(message);
// JMS 연결 종료
}
}
JMS 컨슈머는 메시지를 받을 때 자동으로 지속성을 처리하므로 별도의 설정이 필요하지 않습니다.