2

Jboss AS 7.1.1 を使用していますが、DLQ (Dead Letter Queue) にあるメッセージを確認する必要があります。

そのための単純な MDB を作成してみました。

@MessageDriven(messageListenerInterface = MessageListener.class, activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
        @ActivationConfigProperty(propertyName = "destination", propertyValue = "java:/queue/DLQ"),
        @ActivationConfigProperty(propertyName = "maxSession", propertyValue = "1") })
public class DLQMDB implements MessageListener{
public void onMessage(Message message) {
    try {
        process(message);
    } ...
}
}

エラーをスローする別の MDB を作成したので、メッセージは DLQ に送信されますが、DLQ MDB はトリガーされません。

DLQ にメッセージがないためか、MDB が正しく定義されていないためかはわかりません。

私は何を間違っていますか?DLQ でメッセージを表示する別の方法 (ロギング、管理インターフェースなど) はありますか?

4

1 に答える 1

1

最終的に動作するようになりましたが、構成に問題がありました:

<address-setting match="jms.queue.MetricEvents">
      <dead-letter-address>jms.queue.MyQueue</dead-letter-address>
      <expiry-address>jms.queue.ExpiryQueue</expiry-address>
      <redelivery-delay>0</redelivery-delay>
      <max-delivery-attempts>0</max-delivery-attempts>
      <max-size-bytes>10485760</max-size-bytes>
      <address-full-policy>BLOCK</address-full-policy>
      <message-counter-history-day-limit>10</message-counter-history-day-limit>
 </address-setting>

私が削除したら:

<max-delivery-attempts>0</max-delivery-attempts>

すべてが機能しています。

于 2012-07-26T11:05:18.667 に答える