Pushmode i UI - ciekawy przypadek

Witam, ostatnio trafiłem na ciekawą akcję z pushmodem i różnymi serwerami, chciałbym się tym podzielić i może ustalić o co tak dokładnie chodzi.

Na wstępie - mam servlet vaadina, który musi mieć włączony pushmode, bo w kilku miejscach wysyłam userowi update labelek jako status pracy, która się kotłuje w tle na serwerze. Zgodnie z bookiem dodałem do web.xml następującą sekcję:

<init-param>
    <param-name>pushmode</param-name>
   <param-value>automatic</param-value>
</init-param>
<async-supported>true</async-supported>

Na moim prywatnym serwerze deweloperskim (Tomcat 7.0.34 na Windowsie 7) aplikacja działała prawidłowo. Po wrzuceniu jej na serwer testowy (również Tomcat 7.0.34 na Linuksie) aplikacja nie działała prawidłowo. Serwery mają niemal bliźniaczą konfigurację (w każdym razie nie różnią się w obrębie ustawień). Żeby aplikacja zadziałała na linuksie, należało w konfiguracji dodać linię:

org.atmosphere.useWebSocketAndServlet3=true

Wtedy zadziałało też na linuksie.(Na windowsie działa bez ustawiania tego property).

Dwie kwestie z tego chciałbym wyprowadzić:

  1. wie ktoś czemu tak się dzieje i od czego zależy? (chociaż może to bardziej pytanie na jakimśformu tomcata)

  2. Dzielę się z wami tym casem, ponieważ uważem że Vaadin zareagował na tę sytuację niewłaściwie. Z włączonym w aplikacji pushem na linuksie, gdzie to nie chciało do końca działać, Vaadin zareagował następująco:

  • przestawały działać handlery przycisków (bardzo możliwe że wszystkich innych komponentów też)
  • interfejs wyglądał jakby vaadin czekał na serwer (ikonka “ładowania”) i czekał tak, aż serwer zamknął sesję po pół godziny.
  • w logach nie było śladu błędu ani nawet warna - dopiero musiałem zdebugować aplikację, żeby stwierdzić, że handlery nie działają.

Do Panów z Vaadina - jeśli udało by się Wam powtórzyć takie zachowanie, to jakiś exception w logach byłby miłym zjawiskiem. Co o tym myślicie?

Na forum jest juz mnostwo postow dotyczacych (nie) dzialania Push.
Tutaj
mozna znalezc dyskusje ustawien tego wlasnie property.

Ogólnie implementacja pusha działa niestabilnie na vaadinie 7.1.x. Czekamy na 7.2 który ma przynieść znaczny postęp. Co do towjego przypadku, to wersja tomcata jest zbyt niska. Ostatnie wersje (w okolicy 7.50) wniosły sensowne poprawki do obsługi websockets.