ActiveMQデッドメッセージキューの管理


DLQ-Dead LetterQueueは、処理に失敗したまたは期限切れのメッセージを保存するために使用されます.
次の場合、メッセージはredeliveredされます.
  • A transacted session is used and rollback() is called.
  • A transacted session is closed before commit is called.
  • A session is using CLIENT_ACKNOWLEDGE and Session.recover() iscalled.

  • メッセージがredeliveredによってmaximumRedeliveries(デフォルトは6回、詳細は後述のリンクを参照)を超えると、brokerに「Poisonack」が送信され、このメッセージはa poison pillとみなされ、brokerはこのメッセージをDLQに送信し、その後の処理を行う.
     
    デフォルトのデッドラインキューはActiveMQ.DLQであり、特に指定されていない場合、デッドラインはこのキューに送信されます.
     
    デフォルトの永続メッセージは期限切れでDLQに送信され、非永続メッセージはDLQに送信されません.
     
    プロファイル(activemq.xml)を使用して、デッドライン送信ポリシーを調整できます.
     
    1.  デフォルトのデッドラインキューを使用しない
                                     ,     。    individualDeadLetterStrategy sharedDeadLetterStrategy       。  :
    
    
    
      
    
        
    
          
    
            ' ,        -->
    
            
    
              
    
                
    
                
    
              
    
            
    
          
    
        
    
      
    
      ...
    
    
    
     

     
    2.  非永続メッセージをデッドメッセージキューに保存
           
    
             
    
               
    
             
    
           
    

     
    3.  期限切れメッセージはデッドメッセージキューに保存されません
           
    
             
    
               
    
             
    
           
    

     
    4.  永続メッセージはデッドメッセージキューに保存されません
                ,    processExpired     ,  redelivered      ,           :
    
          
    
     
    
      
    
        
    
          
    
        
    
      
    
    
    
             
    
     
    
      
    
        
    
          
    
        
    
      
    
    
    
    The reportInterval property is used to denote how frequently do we output how many messages we have dropped - use 0 to disable.
    
                : 
    
     
    
      
    
        
    
          
    
        
    
      
    
    
    
    Notice that the destination names use regular expressions. These match the number 000..999 at the end of each destination name.
    

     
    5.  デッド・メッセージ・キュー・メッセージのプロパティ
    デッド・メッセージ・キューのメッセージには、元の有効期限(originalExpiration)、元のoriginalDeliveryModeなど、いくつかのプロパティが追加されます.
     
     
    参照先:
    DLQ処理の説明:
    http://activemq.apache.org/message-redelivery-and-dlq-handling.html
    individualDeadLetterStrategyプロパティの説明:
    http://fusesource.com/docs/broker/5.3/configref/http.activemq.apache.or/element/individualdeadletterstr.html
    sharedDeadLetterStrategyプロパティの説明:
    http://fusesource.com/docs/broker/5.3/configref/http.activemq.apache.or/element/shareddeadletterstrateg.html
    redeliveryプロパティの説明:
    http://activemq.apache.org/redelivery-policy.html