Unable to have Server Sent Events (SSE) working properly in Apache + Tomcat

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm using Apache 2.4.10 on Debian tied with Tomcat 8.0.28.
Tomcat hosts several Web Apps, all routed through a ProxyPass directive (such as ProxyPass /webapp1 ajp://10.10.12.2:8015/webapp1, ProxyPass /webapp2 ajp://10.10.12.2:8015/webapp2, and so on).

My Web Apps works fine, excepted when it comes to broadcast notifications through SSE.
After a few minutes, Tomcat goes crazy, stops serving pages (HTTP 500) and sometimes mixes SSE contents with regular HTML flow.

Important notice : in development environment, all the SSE stuff works perfectly, that is when we run Tomcat without Apache, under Windows 7 / 10.
This detail and what I read in the logs convince me that the problem lies in Apache.

If I'm not wrong, has someone got some hints about the config I should set in Apache ?
Or is Apache definitevely unable to process SSE requests and I should consider moving to NginX ?

Thanks a lot for you help,
Raoul

Additional infos :

        About the Apache's config :
        - Apache 2.4.10 (Debian 64 bits) OpenSSL/1.0.1k
        - mpm-event, with mod_headers, mod_ssl, mod_rewrite, mod_proxy, mod_proxy_http
        - The Tomcat's integration is operated with the mod_proxy_ajp

        About the Web apps config :
        - Tomcat 8.0.28, with java version "1.7.0_79" (OpenJDK 64 bits)
        - The connector is set to use the AJP/1.3 protocol
        - SSE server based upon Jersey 2.5.1

        About the Tomcat logs :
        07-Apr-2019 19:55:19.580 INFO [pool-13-thread-1] org.apache.coyote.AbstractProcessor.setErrorState An error occurred in processing while on a non-container thread. The connection will be closed immediately
        java.io.IOException: Relais brisé (pipe)
        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
        [...]
        at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101)
        [...]
        at org.apache.coyote.ajp.AbstractAjpProcessor.action(AbstractAjpProcessor.java:410)
        [...]
        at org.glassfish.jersey.server.Broadcaster.broadcast(Broadcaster.java:150)
        [...]
        at SAR.DTS.Base.b.o.run(ThreadMajRappels.java:58)
        [...]
        at java.lang.Thread.run(Thread.java:745)

        07-Apr-2019 20:10:05.344 INFO [ajp-nio-8015-exec-10] org.apache.catalina.connector.CoyoteAdapter.checkRecycled Encountered a non-recycled response and recycled it forcedly.
        org.apache.catalina.connector.CoyoteAdapter$RecycleRequiredException
        at org.apache.catalina.connector.CoyoteAdapter.checkRecycled(CoyoteAdapter.java:710)
        at org.apache.coyote.ajp.AbstractAjpProcessor.recycle(AbstractAjpProcessor.java:943)
        at org.apache.coyote.ajp.AjpNioProtocol$AjpConnectionHandler.release(AjpNioProtocol.java:163)

        About the Apache logs :
        [Sun Apr 07 20:05:22.338619 2019] [proxy_ajp:error] [pid 6573] [client xx.xx.x.xxx:61445] AH00893: dialog to 10.10.12.2:8015 (10.10.12.2) failed, referer: http://yy.yy.yy.yyy/webapp1
        [Sun Apr 07 20:10:05.344774 2019] [proxy_ajp:error] [pid 6573] [client xx.xx.x.xxx:62693] AH00992: ajp_read_header: ajp_ilink_receive failed, referer: http://yy.yy.yy.yyy/webapp1
        [Sun Apr 07 20:10:05.344783 2019] [proxy_ajp:error] [pid 6573] (120006)APR does not understand this error code: [client xx.xx.x.xxx:62693] AH00878: read response failed from 10.10.12.2:8015 (10.10.12.2), referer: http://yy.yy.yy.yyy/webapp1
        [Sun Apr 07 20:10:05.344745 2019] [proxy_ajp:error] [pid 6573] (104)Connection reset by peer: AH01030: ajp_ilink_receive() can't receive header

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx





[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux