#1 2019-06-17 12:08:31

palacio
Member
Registered: 2018-06-27

Problem with jasper report after integration on RS 3.0.7

Hi,
I have problem when I preview report.

NB: The same report work fine with RS 3.0.1
Where is the problem please?.

RS version: 3.0.7
Openjdk8
tomcat7

See the log below.

[Mo Jun 17 11:04:03 MESZ 2019] WARNUNG: net.datenwerke.rs.core.server.reportexport.ReportExportServlet doGet - java.net.SocketException: Broken pipe (Write failed) 
org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Broken pipe (Write failed)
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:407)
	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:371)
	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:432)
	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:420)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:84)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.doExportReport(ReportExportServlet.java:455)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReport(ReportExportServlet.java:368)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReportViaSession(ReportExportServlet.java:361)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.doGet(ReportExportServlet.java:171)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$32cf950b.CGLIB$doGet$0(<generated>)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$32cf950b$$FastClassByGuice$$315e64f1.invoke(<generated>)
	at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
	at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
	at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
	at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$32cf950b.doGet(<generated>)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$32cf950b.CGLIB$service$16(<generated>)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$32cf950b$$FastClassByGuice$$315e64f1.invoke(<generated>)
	at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
	at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
	at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
	at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$32cf950b.service(<generated>)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
	at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
	at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Broken pipe (Write failed)
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
	at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
	at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240)
	at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)
	at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
	at org.apache.coyote.Response.doWrite(Response.java:499)
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:402)
	... 59 more

Regard,
El Palacio

Offline

#2 2019-06-20 16:32:04

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Problem with jasper report after integration on RS 3.0.7

Hi El Palacio,

this is not a jasper problem. In your error message I see:
Caused by: java.net.SocketException: Broken pipe (Write failed)

That usually means that something along the line (and not the client) decided the TCP/IP connection should be terminated. Are there any firewalls/routers, etc. in between your application and the MySQL server?

If you are using mysql: https://forums.mysql.com/read.php?39,19 … msg-196347

Do you have "wait_timeout" on the MySQL server set to something other than the default of 8 hours?

How long do any of these connections sit idle? If it's more than a few minutes, I'd consider configuring your connection pool to not let connections sit idle for more than a minute or so, leaving connections idle exposes them to more risk of being disconnected outside of the control of the client. It doesn't take long to create a new JDBC connection with MySQL, a fraction of a second in nearly all cases, and a few 10's of milliseconds in the best cases.

You can make sure that TCP keep-alive is enabled on the JDBC connection, by adding "tcpKeepAlive=true" as a JDBC URL parameter, if you're using Connector/J 5.0.7 or newer.

Please also check your pool.cf configuration file. Here you can configure connections idle time, etc.

Does this always happen or sometimes? Try to create the jasper report in reportserver again.

Regards,
Eduardo

Offline

Board footer

Powered by FluxBB