Trong API doc JMS, nó nói:Hàng đợi JMS nhận được tin nhắn?
public Message receive() throws JMSException
Nhận được thông báo tiếp theo sản xuất cho người tiêu dùng thông báo này. Cuộc gọi này chặn vô thời hạn cho đến khi một tin nhắn được tạo ra hoặc cho đến khi người tiêu dùng tin nhắn này bị đóng.
Nếu việc nhận này được thực hiện trong một giao dịch, người tiêu dùng sẽ giữ lại tin nhắn cho đến khi giao dịch được thực hiện.
Ở đây tôi có ba câu hỏi: 1. trong mã, chúng tôi có cần vòng lặp while để nhận tin nhắn không? như:
while(true){
Message msg = queue.receive();
....
}
các thiết lập giao dịch là gì? làm thế nào để thực hiện một giao dịch? như thế này:
boolean transacted = false; session = connection.createQueueSession(transacted, Session.AUTO_ACKNOWLEDGE);
receiveNoWait() có hỗ trợ giao dịch? Làm thế nào để sử dụng nó ?
Cảm ơn
nếu sử dụng giao dịch, nó sẽ làm giảm hiệu suất? – user595234
Giao dịch áp đặt phí trên máy chủ JMS vì nó không thể phát hành tin nhắn cho đến khi bạn cam kết. – gregwhitaker
Bạn cũng có thể xem xét một số gợi ý về hiệu suất trên JMS với Java: http://www.precisejava.com/javaperf/j2ee/JMS.htm – gregwhitaker