2017-08-10 4 views
0

Ich stehe vor einem sehr ungewöhnlichen Problem in ActiveMQ und Stomp-Verbindung. Ich habe es in meine Website integriert, und es funktioniert sehr gut, wenn es Aktivitäten auf der Website oder sogar auf dem Computer gibt (auch wenn der Browser, in dem die Website geöffnet ist, minimiert ist). Immer wenn der Computer für mehr als 10 Minuten in den Leerlaufmodus wechselt, wird die Verbindung zwischen ActiveMQ und STOMP geschlossen und danach, selbst wenn der Benutzer den Browser erneut maximiert, gibt es keine Kommunikation und keine Aktualisierungen.STOMP stoppt den Empfang von Nachrichten nach einigen Minuten Inaktivität

Versionen I activemq bin mit: 5.9.0 STOM: 1.0.9

ich verwende folgenden Konfigurationseinstellungen transportConnector name = "WSS" uri = "WSS: //0.0.0.0: 61614? Maximum = 1000 & wireFormat.maxFrameSize = 104857600 & wireFormat.maxInactivityDuration = 500000000 & wireFormat.maxInactivityDurationInitalDelay = 36000000 & websocket.maxIdleTime = 0 & transport.useInactivityMonitor = false“

Was WRO ng ich mache? Ich habe jede mögliche Kombination der obigen Parameter ausprobiert, aber das Ergebnis ist dasselbe mit einer geringen Änderung des Dauerinkrements in der Leerlaufzeit, nach der die Verbindung verloren gehen würde.

Alles, was ich will ist, ob Benutzer den Browser/Computer verwendet oder nicht, sollte die Verbindung aktiv bleiben.

Vielen Dank im Voraus für die Hilfe zur Verfügung gestellt.

Update 1: Hier ist der Fehler, den ich in der Log-Datei erhalten fehlgeschlagen: org.apache.activemq.transport.InactivityIOException: Channel zu inaktiv war für lange

+0

5.9.0 eine alte Version ist ein Upgrade auf 5.15.0 und dass alle Probleme lösen könnten Sie –

+0

sehen @TimBish Vielen Dank für die Antwort, ich habe es auf die neueste Version von activemq auf 5.15 und STOMP auf 1.2 aktualisiert, aber immer noch das gleiche Ergebnis – Aditya

Antwort

0

ActiveMQConnectionFactory hat Eigenschaft namens

IdleTimeout

, die einen Standardwert von 30 sec aufweisen. Wenn die Verbindung 30 Sek. Lang keine Aktivität aufweist, wird sie durch den Inaktivitätsmonitor geschlossen. Wenn Sie diese Grenze jedoch erhöhen möchten, sollten Sie das IdleTimeout auf 15 Min. Einstellen. in Ihrem Jms ConnectionFactory- mit der Methode

factory.setIdleTimeout (15 * 60 * 1000)

+0

Vielen Dank @nir Ich überprüfe dies. – Aditya

+0

Dies funktioniert nicht – Aditya

Verwandte Themen