2016-05-04 9 views
1

Ich kann Nachrichten von der Azure-Service-Bus-Warteschlange verbinden und konsumieren. Der folgende Fehler tritt jedoch zufällig während der Verarbeitung der Nachricht auf. Nach dem Auftreten des Fehlers sieht es so aus, als würden die Nachrichten entweder nicht mehr konsumiert oder an DLQ übergeben. Beim Neustart der Listener-Anwendung wird dieselbe Ausnahme angezeigt.Azure-Service-Bus-Warteschlange - Setup des JMS-Listener-Aufrufers für Zielausnahme fehlgeschlagen

ich mit Spring DefaultMessageListenerContainer mit Apache Qpid

2016-05-05 01: 49: 36,303 14716 WARN - [nerContainer-61] osjlDefaultMessageListenerContainer: Setup von JMS-Nachricht Zuhörer Aufrufer fehlgeschlagen für Ziel '[email protected]' - versuchen, wiederherzustellen. Ursache: Timeout wartet

befestigen

Unknown Endpunkt Übertragung {handle = 0, deliveryId = 36, deliveryTag = P \ XB8) T \ XD9 \ xea% A \ x95 \ xe5Fj] \ x91 \ x00 \ x15, Message = 0, more = false, batable = true} Unbekannter Endpunkt Übertragung {handle = 0, deliveryId = 36, deliveryTag = \ xdc \ x9b \ x9d \ xf5 \ x817 \ x9bO \ x97. \ X19 \ xeam < \ x00 \ x81 , Message = 0, mehr = false, batchfähig = true}

javax.jms.IllegalStateException: Geschlossen bei org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.checkClosed (SessionImpl.java:326) bei org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.getTransacted (SessionImpl.java:22 2) bei org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary (AbstractMessageListenerContainer.java:757) bei org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener (AbstractMessageListenerContainer.java:665) bei org.springframework .jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute (AbstractPollingMessageListenerContainer.java:315) bei org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute (AbstractPollingMessageListenerContainer.java:253) bei org.springframework.jms.listener.DefaultMessageListenerContainer $ AsyncMessageListenerInvoker .invokeListener (DefaultMessageLi stenerContainer.java:1158) bei org.springframework.jms.listener.DefaultMessageListenerContainer $ AsyncMessageListenerInvoker.run (DefaultMessageListenerContainer.java:1052) bei java.lang.Thread.run (Unknown Source)

AKTUALISIERT:

`public DefaultMessageListenerContainer messageListenerContainer() throws NamingException { 
    DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer(); 
    messageListenerContainer.setConnectionFactory(connectionFactory()); 
    Destination queue = (Destination) context.lookup("STORAGE_NEW_QUEUE"); 
    messageListenerContainer.setDestination(queue); 
    messageListenerContainer.setConcurrency(concurrency); 
    messageListenerContainer.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE); 
    messageListenerContainer.setCacheLevel(DefaultMessageListenerContainer.CACHE_SESSION); 
     messageListenerContainer.setErrorHandler(new EDIMessageErrorHandler()); 
    MessageListenerAdapter adapter = new MessageListenerAdapter(); 
    adapter.setDelegate(new EDIMessageListener()); 
    adapter.setDefaultListenerMethod("onMessage"); 
    messageListenerContainer.setMessageListener(adapter); 
    return messageListenerContainer; 
}` 

Bitte beraten Sie, was das Problem sein könnte.

Danke

+1

F: Was sagen die Protokolle auf der Azure-Seite? Ihre Spring/QPid-Logs sagen lediglich "Ich habe versucht, die Kommunikation zu unterbrechen". Dies ist das "Ergebnis" des Problems. Sie müssen die * URSACHE * finden. Es sieht so aus, als müssten Sie sich 1) Ihren Azure-Dienst und 2) Ihre Netzwerkkommunikation zwischen AZure und QPid ansehen ... Abgesehen von den Logs und/oder dem Instrumentieren Ihres Azure-Dienstes möchten Sie vielleicht auch einen [Wireshark] (https://www.wireshark.org/download.html) verfolgen. – paulsm4

+0

Entschuldigung für späte Antwort. Können Sie bitte beraten, wie ich Protokolle der Service Bus-Warteschlange auf Azure abrufen kann. Ich kann nur einen Link für Operationsprotokolle im Namespace sehen, die nicht verfügbar sind.Bitte beachten Sie, dass Message Listener auf Azure VM ausgeführt wird. Ich habe meine DMLC-Konfiguration aktualisiert. – pkumar

+0

@pkumar Wo können Sie dieses Problem lösen? – anonymous

Antwort

0

Ich bin nicht sicher, welcher Grund das Problem ohne irgendwelche Codes verursachte.

Es gibt jedoch ein offizielles Dokument Service Bus messaging exceptions, das einige von den Messaging-APIs von Microsoft Azure Service Bus generierte Ausnahmen auflistet. Im Abschnitt Exception types werden Nachrichtenausnahmetypen sowie deren Ursachen und Hinweise zur vorgeschlagenen Aktion aufgelistet. Ich denke, Sie können sich darauf beziehen, um Ihr Problem zu untersuchen.

Nach der Ausnahmeinformation Unknown endpoint, meiner Meinung nach, der Grund könnte in der Konfiguration für die AMQP-Verbindung mit QPID sein. Ich suchte nach dem möglichen Grund und erhielt den hilfreichen Link https://mail-archives.apache.org/mod_mbox/qpid-users/201009.mbox/%[email protected]%3E. Hoffe es hilft.

Können Sie die Schlüsselcodes für die Untersuchung des Problems teilen?

Jede Sorge, bitte zögern Sie nicht, lassen Sie es mich wissen.

Verwandte Themen