Tôi đang gặp sự cố với thiết lập sau:Cách giới hạn số lượng các cá thể MDB đang nghe một hàng Jboss JMS
Ứng dụng Java gửi email đến hàng đợi JMS, sau đó một MDB lắng nghe hàng đợi nhận được thông báo bằng email với phương thức onMessage, nó mở một kết nối trên Gmail SMTP, gửi email đến SMTP và đóng kết nối. Làm điều này trên tất cả các tin nhắn trong hàng đợi JMS.
Nó hoạt động tốt khi tôi có tối đa 5 thư trong hàng đợi cùng một lúc. Tất cả các tin nhắn được chọn trong cùng một thời điểm bởi 5 trường hợp khác nhau của MDB, vì vậy tôi có 5 kết nối đồng thời với máy chủ SMTP của Gmail. Nhưng khi có nhiều thông báo hơn trong hàng đợi JMS, tôi gặp lỗi kết nối từ máy chủ SMTP của Gmail. 5 thư đầu tiên được gửi chính xác, nhưng không phải là phần còn lại của nhóm, vì vậy các thư khác bị mất vì chúng không còn trong hàng đợi nữa.
Vì vậy, câu hỏi của tôi là, có thể giới hạn số lượng cá thể MDB sẽ lắng nghe hàng đợi JMS không? Nếu tôi có tối đa 5 MDB, thì ngay cả khi tôi có 1000 thư trong hàng đợi, nó sẽ mất nhiều thời gian hơn để trống hàng đợi, nhưng ít nhất tôi sẽ không mất bất kỳ thư nào.
Bất kỳ đề xuất nào khác để giải quyết vấn đề này sẽ được đánh giá rất nhiều.
Dưới đây là phiên bản Jboss:
[Server] Phát hành ID: JBoss [Trinity] 4.2.3.GA (xây dựng: SVNTag = JBoss_4_2_3_GA date = 200807181417)
và cấu hình của MDB như sau:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/emailQueue")
})
Bạn có cần thêm không?
Cảm ơn
EDIT 2011/02/14
Có lẽ tôi là tất cả các sai muốn hạn chế số lượng MDB dụ. Tôi đã thấy một cấu hình về số lượng các chủ đề JMS. Nếu tôi giới hạn số lượng chuỗi sẽ đăng lên MDB, có thể nó sẽ giải quyết vấn đề của tôi? JMS sẽ đợi cho đến khi MDB có sẵn trước khi gửi lại tin nhắn? Có tác dụng phụ nào không? Mặc dù của bạn xin vui lòng. Cảm ơn
END EDIT
Phiên bản JBoss nào? Cấu hình MDB của bạn trông như thế nào? – skaffman
@skaffman: Phiên bản Jboss là: [Server] ID phát hành: JBoss [Trinity] 4.2.3.GA (phiên bản: SVNTag = JBoss_4_2_3_GA date = 200807181417) và cấu hình của MDB như sau: @MessageDriven ( activationConfig = { @ActivationConfigProperty ( propertyName = "destinationType", propertyValue = "javax.jms.Queue" ), @ActivationConfigProperty ( propertyName = "điểm đến", propertyValue = "hàng đợi/emailQueue") } ) Bạn có cần nhiều hơn? Cảm ơn – Alain
Thêm thông tin cho câu hỏi, đó là không thể đọc được khi đăng tải như – skaffman