Có cách nào để chặn các thư trùng lặp trên hàng đợi được xác định trên máy chủ ActiveMQ?Tránh các thư trùng lặp trên JMS/ActiveMQ
Tôi đã cố định nghĩa JMSMessageID theo cách thủ công, (message.setJMSMessageID ("uniqueid")), nhưng máy chủ bỏ qua sửa đổi này và gửi thông báo với JMSMessageID được tạo sẵn.
Theo đặc điểm kỹ thuật, tôi không tìm thấy tham chiếu về cách loại bỏ các thư trùng lặp.
Trong HornetQ, để giải quyết vấn đề này, chúng ta cần khai báo đặc tính HQ cụ thể org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID trên định nghĩa thư.
tức là .:
Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id"; // Could use a UUID for this
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
Ai biết nếu có một giải pháp tương tự cho ActiveMQ?
Tôi nghi ngờ nếu phương pháp này sẽ giải quyết được vấn đề của tôi. Tôi cần phải giữ chỉ là một ví dụ của tin nhắn với cùng một JMSMessageID chỉ trong trường hợp này là trong hàng đợi. Tôi cần nó làm việc như một Set. Tôi muốn có thể đặt tin nhắn khác với cùng một JMSMessageID sau khi các yếu tố idem mới nhất đã được gỡ bỏ từ hàng đợi. Tôi cần phải thực hiện nó và kiểm tra. Nhưng, dựa trên Idempotent được mô tả trên cuốn sách EAI, tôi nghĩ rằng khái niệm này không phù hợp với sự cần thiết của tôi. BUT, giải pháp được đề xuất là tốt. Tôi sẽ nghiên cứu thêm về nó và bình luận ở đây kết quả của tôi. Cảm ơn – apast