2017-01-17 8 views
1

私はSpringブート(JMS)を使用してWebsphere MQリスナーを作成しました。キューレベルでバックアウトキューをしきい値として設定しました。Websphere MQ 7with Spring JMS - 無限配送

プログラムの一部として、すぐにJMSExceptionがスローされました。メッセージがキューに戻ってきます。私が直面しています

問題は、そのメッセージが継続的に取得している1以上である必要があります

JMSMessage class: jms_text 
JMSType:   null 
JMSDeliveryMode: 2 
JMSExpiration: 0 
JMSPriority:  0 
JMSMessageID:  ID:414d51204d5148554244313020202020583e8e2b26af9905 
JMSTimestamp:  1484639118180 
JMSCorrelationID: null 
JMSDestination: null 
JMSReplyTo:  null 
JMSRedelivered: true 
JMSXAppID: WebSphere MQ Client for Java 
JMSXDeliveryCount: 98 
JMSXUserID: a450922  
JMS_IBM_Character_Set: UTF-8 
JMS_IBM_Encoding: 546 
JMS_IBM_Format: MQSTR 
JMS_IBM_MsgType: 8 
JMS_IBM_PutApplType: 28 
JMS_IBM_PutDate: 20170117 
JMS_IBM_PutTime: 07451818 



    @JmsListener(destination = "${ibm.mq.incomingqueue}", containerFactory = "defaultJmsListenerContainerFactory") 
public void onMessage(TextMessage message) throws JMSException { 

    System.out.println("Here" + message.toString()); 

    throw new JMSException("reason"); 

} 
+0

今まで私はqueuemanagerログではないアプリケーションログのみを調査しました...はい、同じユーザーがバックアウトキューにメッセージを入れるアクセスを持っています –

+0

私は金曜日に試してみて、私の所見を共有します...ありがとうlot –

+0

BOTHRESHを1以上に設定してこの問題を解決しましたか?これで問題が解決した場合は、私の回答を受け入れてください。 – JoshMc

答えて

2

BOTHRESHをリスナーに配信さ再です。 BOTHRESHを0に設定すると、無効になります。

How WebSphere Application Server handles poison messagesをIBM Paul Titheridgeで参照してください。

は、WebSphere MQは、デフォルトではJMSプロバイダ あるときは、WebSphere MQによって0に設定(BOTHRESHとしてWebSphere MQの用語で知られている)バックアウトしきい値プロパティーを持って作成されたキューは、WebSphere MQのデフォルトの動作は決してありません

毒のメッセージを取り消す

関連する問題