2009-08-24 32 views
7

Tôi hy vọng ai đó có thể giúp tôi - Tôi đang sử dụng JBoss 5.1 và MQ Series 7 trong ứng dụng dựa trên EJB/JMS. Tôi có một số bean điều khiển thông điệp trong ứng dụng của tôi, mỗi lần nghe trên hàng đợi tin nhắn MQ Series. Khi gặp phải lỗi trong quá trình xử lý thư, tôi cần có thể định cấu hình 'độ trễ thử lại', do đó chuỗi mq chờ một khoảng thời gian trước khi cố gửi lại tin nhắn. Tôi đã chải kỹ tài liệu MQ Series một cách rộng rãi và chưa tìm được cách để thực hiện điều này trong MQ Series. Tôi biết rằng nhà cung cấp JMS mặc định của JBoss có một cách để thực hiện điều này, nhưng hiện tại tôi bị giới hạn sử dụng MQ Series. Vì tôi không thể đặt độ trễ thử lại - khi tôi có thông báo không thành công, ứng dụng của tôi bị kẹt trong vòng lặp cung cấp tin nhắn và quay lại liên tục. Bất cứ ai có thể giúp tôi hiểu nếu có một số tùy chọn cấu hình trong MQ Series mà sẽ cho phép tôi chờ đợi X mili giây trước khi gửi lại một tin nhắn không thành công?Định cấu hình 'độ trễ thử lại' trong MQ Series

Trả lời

3

Tôi nghĩ bạn đã hết may mắn. Theo như tôi biết các thông số duy nhất bạn có thể tinh chỉnh trong trường hợp này là số lần tối đa tin nhắn sẽ được thử lại (BOTHRESH) và tên của hàng đợi/ngoại lệ (BOQUEUE), nơi thông báo sẽ được gửi nếu số lượng cố gắng thử lại vượt quá số lần tối đa.

Paal

6

Đây có thể là cơ hội để tạo cơ sở hạ tầng nhỏ cho một vấn đề như vậy.

Vì bạn có thể nhìn vào JMSDeliveryCount khi thông báo đã nhập bean (trước khi bạn xử lý nó - xem xét phạm vi cam kết) và bạn có thể thấy rằng nó đã có một số lùi, gửi thông điệp xung quanh để dàn dựng xếp hàng nhưng đính kèm tên hàng đợi đích trong thuộc tính jms để bạn có thể sử dụng nó sau này.

Một quy trình đơn giản có thể chạy trên một số khoảng thời gian để xóa các hàng đợi dàn (mỗi 5 phút chẳng hạn) và gửi tin nhắn vào một hàng đợi định tuyến.

Quy trình khác có thể nằm trên hàng đợi định tuyến và xem thuộc tính jms (đã thêm tên hàng đợi đích) và gửi thư đến đích ban đầu.

Đó là nhà môi giới của một người nghèo nhưng sẽ đạt được mục tiêu. Đúng là không có nhiều xây dựng để thực sự làm những gì bạn muốn.

0

Bạn có thể chỉ định giới hạn thử lại để cuộn lùi liên tục sẽ dừng sau một lần thử được chỉ định.

Các vấn đề liên quan