2009-03-11 7 views
2

Wir haben Verbindungsunterbrechungen auf unserem Tomcat/BlazeDS/ActiveMQ-Stack. Obwohl unser BlazeDS StreamingAMFChannel mit dem Standardwert idle-timeout-minutes von 0 konfiguriert ist, scheint es nach etwa 30 Minuten Leerlaufzeit (siehe Protokoll) ein Timeout zu sein. Der Client führt während dieser Zeit keine Anfragen aus und wir leiten auch keine Nachrichten vom ActiveMQ-Thema weiter.Tomcat/BlazeDS/ActiveMQ Problem beim Trennen der Verbindung

Wir haben Debug-Logging auf activeMQ und BlazeDS aktiviert und sehen, dass BlazeDS den Consumer entfernt. Leider gibt es keine Protokollnachricht vor der Trennungsnachricht, so dass wir nicht wirklich verfolgen können, wann dies in BlazeDS aufgerufen wird.

Hat jemand anderes dies erfahren oder kann jemand eine Lösung anbieten?

* ActiveMQ log *

11 Mar 2009 16:25:47,405 [ActiveMQ Transport: tcp:///127.0.0.1:49971] DEBUG activemq.broker.region.AbstractRegion - Removing consumer: ID:TMSNEC02.traficon.int-52586-1236783284912-2:3:1:1 
11 Mar 2009 16:25:47,406 [ActiveMQ Transport: tcp:///127.0.0.1:49971] DEBUG activemq.broker.region.AbstractRegion - Removing consumer: ID:TMSNEC02.traficon.int-52586-1236783284912-2:3:-1:1 
11 Mar 2009 16:25:47,407 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] DEBUG activemq.transport.tcp.TcpTransport - Stopping transport tcp://localhost/127.0.0.1:61616 
11 Mar 2009 16:25:47,408 [ActiveMQ Transport Stopper: /127.0.0.1:49971] DEBUG apache.activemq.broker.TransportConnection - Stopping connection: /127.0.0.1:49971 
11 Mar 2009 16:25:47,409 [ActiveMQ Transport Stopper: /127.0.0.1:49971] DEBUG activemq.transport.tcp.TcpTransport - Stopping transport tcp:///127.0.0.1:49971 
11 Mar 2009 16:25:47,413 [ActiveMQ Transport Stopper: /127.0.0.1:49971] DEBUG apache.activemq.broker.TransportConnection - Stopped connection: /127.0.0.1:49971 
11 Mar 2009 16:25:47,417 [ActiveMQ Transport Stopper: /127.0.0.1:49971] DEBUG apache.activemq.broker.TransportConnection - Connection Stopped: /127.0.0.1:49971 
11 Mar 2009 16:25:47,427 [ActiveMQ Transport: tcp:///127.0.0.1:50680] DEBUG activemq.broker.region.AbstractRegion - Removing consumer: ID:TMSNEC02.traficon.int-52586-1236783284912-2:4:1:1 
11 Mar 2009 16:25:47,430 [ActiveMQ Transport: tcp:///127.0.0.1:50680] DEBUG activemq.broker.region.AbstractRegion - Removing consumer: ID:TMSNEC02.traficon.int-52586-1236783284912-2:4:-1:1 
11 Mar 2009 16:25:47,431 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] DEBUG activemq.transport.tcp.TcpTransport - Stopping transport tcp://localhost/127.0.0.1:61616 
11 Mar 2009 16:25:47,431 [ActiveMQ Transport Stopper: /127.0.0.1:50680] DEBUG apache.activemq.broker.TransportConnection - Stopping connection: /127.0.0.1:50680 
11 Mar 2009 16:25:47,431 [ActiveMQ Transport Stopper: /127.0.0.1:50680] DEBUG activemq.transport.tcp.TcpTransport - Stopping transport tcp:///127.0.0.1:50680 
11 Mar 2009 16:25:47,435 [ActiveMQ Transport Stopper: /127.0.0.1:50680] DEBUG apache.activemq.broker.TransportConnection - Stopped connection: /127.0.0.1:50680 
11 Mar 2009 16:25:47,438 [ActiveMQ Transport Stopper: /127.0.0.1:50680] DEBUG apache.activemq.broker.TransportConnection - Connection Stopped: /127.0.0.1:50680 
11 Mar 2009 16:25:47,439 [ActiveMQ Transport: tcp:///127.0.0.1:50681] DEBUG activemq.broker.region.AbstractRegion - Removing consumer: ID:TMSNEC02.traficon.int-52586-1236783284912-2:5:1:1 
11 Mar 2009 16:25:47,439 [ActiveMQ Transport: tcp:///127.0.0.1:50681] DEBUG activemq.broker.region.AbstractRegion - Removing consumer: ID:TMSNEC02.traficon.int-52586-1236783284912-2:5:-1:1 
11 Mar 2009 16:25:47,440 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] DEBUG activemq.transport.tcp.TcpTransport - Stopping transport tcp://localhost/127.0.0.1:61616 
11 Mar 2009 16:25:47,440 [ActiveMQ Transport Stopper: /127.0.0.1:50681] DEBUG apache.activemq.broker.TransportConnection - Stopping connection: /127.0.0.1:50681 
11 Mar 2009 16:25:47,441 [ActiveMQ Transport Stopper: /127.0.0.1:50681] DEBUG activemq.transport.tcp.TcpTransport - Stopping transport tcp:///127.0.0.1:50681 
11 Mar 2009 16:25:47,441 [ActiveMQ Transport Stopper: /127.0.0.1:50681] DEBUG apache.activemq.broker.TransportConnection - Stopped connection: /127.0.0.1:50681 
11 Mar 2009 16:25:47,441 [ActiveMQ Transport Stopper: /127.0.0.1:50681] DEBUG apache.activemq.broker.TransportConnection - Connection Stopped: /127.0.0.1:50681 

* BlazeDS log *

[BlazeDS]03/11/2009 15:55:39.776 [DEBUG] [Endpoint.AMF] Serializing AMF/HTTP response 
Version: 3 
    (Message #0 targetURI=/4/onResult, responseURI=) 
    (Externalizable Object #0 'DSK') 
     (Externalizable Object #1 'flex.messaging.io.ArrayCollection') 
     (Array #2) 
1.236783339776E12 
(Byte Array #3, Length 16) 
(Byte Array #4, Length 16) 
(Byte Array #5, Length 16) 

[BlazeDS]03/11/2009 16:25:47.391 [INFO] [Service.Message.JMS] JMS consumer for JMS destination 'java:comp/env/eventMessagesFlexTopic' is being removed from the JMS adapter 
[BlazeDS]03/11/2009 16:25:47.392 [INFO] [Service.Message.JMS] JMS consumer for JMS destination 'java:comp/env/eventMessagesFlexTopic' is stopping. 
[BlazeDS]03/11/2009 16:25:47.417 [DEBUG] [Client.MessageClient] MessageClient with clientId '7A98D7BC-F0B3-922C-A968-BE0BFB7D9080' for destination 'eventMessageFeed' has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.419 [INFO] [Service.Message.JMS] JMS consumer for JMS destination 'java:comp/env/detectorsFlexTopic' is being removed from the JMS adapter 
[BlazeDS]03/11/2009 16:25:47.423 [INFO] [Service.Message.JMS] JMS consumer for JMS destination 'java:comp/env/detectorsFlexTopic' is stopping. 
[BlazeDS]03/11/2009 16:25:47.435 [DEBUG] [Client.MessageClient] MessageClient with clientId '7A9BC826-2199-C772-0A1B-FE6FAE9F7402' for destination 'detectorsFeed' has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.438 [INFO] [Service.Message.JMS] JMS consumer for JMS destination 'java:comp/env/scenariosFlexTopic' is being removed from the JMS adapter 
[BlazeDS]03/11/2009 16:25:47.438 [INFO] [Service.Message.JMS] JMS consumer for JMS destination 'java:comp/env/scenariosFlexTopic' is stopping. 
[BlazeDS]03/11/2009 16:25:47.440 [DEBUG] [Client.MessageClient] MessageClient with clientId '7A9BCE40-A0DA-18D6-9FA1-6D6AA2088256' for destination 'scenarioMessageFeed' has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.441 [DEBUG] [Client.FlexClient] FlexClient with id '7A95FDE9-0091-B1CD-3660-D8E9CD6CD3E6' has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.441 [DEBUG] [Endpoint.StreamingAMF] Endpoint with id 'my-streaming-amf' is streaming message: Flex Message (flex.messaging.messages.CommandMessage) 
operation = disconnect 
clientId = null 
correlationId = null 
destination = null 
messageId = 7ED1C45A-10A7-BFBB-E24E-94B9C03047EE 
timestamp = 1236785147441 
timeToLive = 0 
body = null 
[BlazeDS]03/11/2009 16:25:47.441 [DEBUG] [Endpoint.FlexSession] FlexSession with id '71A76CA22AC435285736F6DB0E38AC11' for an Http-based client connection has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.444 [DEBUG] [Client.FlexClient] FlexClient with id '7A941468-80E5-8343-A2AE-A3AFFA135734' has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.444 [DEBUG] [Endpoint.FlexSession] FlexSession with id '1238AA40EF8B016F3942C6D6BDBA29B9' for an Http-based client connection has been invalidated. 
[BlazeDS]03/11/2009 16:25:47.444 [DEBUG] [Endpoint.StreamingAMF] Streaming thread 'http-8080-1' for endpoint with id 'my-streaming-amf' is releasing connection and returning to the request handler pool. 
[BlazeDS]03/11/2009 16:25:47.444 [INFO] [Endpoint.FlexSession] Number of streaming clients for FlexSession with id '71A76CA22AC435285736F6DB0E38AC11' is 0. 
[BlazeDS]03/11/2009 16:25:47.444 [DEBUG] [Endpoint.StreamingAMF] Number of streaming clients for endpoint with id 'my-streaming-amf' is 0. 
[BlazeDS]03/11/2009 16:25:47.489 [DEBUG] [Endpoint.FlexSession] FlexSession created with id 'E5BCC7617F3937139CCAD377EEB85D45' for an Http-based client connection. 
[BlazeDS]03/11/2009 16:25:47.489 [INFO] [Endpoint.General] Channel endpoint my-streaming-amf received request. 

Antwort

3

Wir haben dies gelöst, indem wir alle 30 Sekunden eine Keep-Alive-Nachricht vom Client an den Server gesendet haben. Anscheinend war es die FlexSession, die abgelaufen war, da dies auf Tomcat's Standard-Session-Timeout folgte. Da die Keep-Alive-Nachricht in einem niedrigen Intervall gesendet wird, setzen wir auch das Sitzungszeitlimit auf einen niedrigen Wert auf dem Server, was zu einem verbesserten Speicherverbrauch auf dem Server führt.

+0

Danke dafür ... Es hat mir gerade geholfen, mein eigenes FlexSession Ablaufproblem zu lösen! –

0

Sie auf ein Trennungsereignis reagieren können und schließen, wenn Sie benötigen.

Verwandte Themen