This discussion is archived
0 Replies Latest reply: Sep 18, 2013 7:31 AM by Pete Mahon RSS

APEX Listener on Glassfish 3.1.2 - Broken Pipe Errors

Pete Mahon Explorer
Currently Being Moderated

Hi,

 

We're running the following:

 

APEX 4.1.00.23

APEX Listener 2.0.3.221.10.13

Glassfish 3.1.2

 

connected to Oracle Enterprise Database 11.2.0.3.0, running in RAC.

 

We've only been on Glassfish for a while and were using modplsql previously with Oracle HTTP Server with no issues.

 

Some large datasets are no longer downloading to the client machines, but only when exceeding a specific byte-length (approx 61,500KB).

 

The server log is showing the following error:

 

[#|2013-09-16T12:59:36.408+0100|SEVERE|glassfish3.1.2|null|_ThreadID=37;_ThreadName=Thread-2;|java.io.IOException: Broken pipe
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
  at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:430)
  at com.sun.grizzly.util.buf.ByteChunk.append(ByteChunk.java:356)
  at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:455)
  at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:442)
  at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:160)
  at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:148)
  at oracle.dbtools.rt.web.WebErrorResponse$DeferErrorOuput.write(WebErrorResponse.java:247)
  at oracle.dbtools.apex.ModApexContext.write(ModApexContext.java:188)
  at oracle.dbtools.apex.ModApexContext.write(ModApexContext.java:146)
  at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:244)
  at oracle.dbtools.apex.ModApex.doPost(ModApex.java:154)
  at oracle.dbtools.apex.ModApex.service(ModApex.java:318)
  at oracle.dbtools.rt.web.HttpEndpointBase.modApex(HttpEndpointBase.java:260)
  at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:110)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
  at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
  at com.vm.apex.filters.UserAgentCompatibleFilter.doFilter(UserAgentCompatibleFilter.java:24)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
  at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
  at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
  at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
  at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
  at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
  at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
  at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
  at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
  at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
  at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
  at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
  at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
  at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
  at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
  at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: Broken pipe
  at sun.nio.ch.FileDispatcher.write0(Native Method)
  at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
  at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69)
  at sun.nio.ch.IOUtil.write(IOUtil.java:40)
  at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336)
  at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:108)
  at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:76)
  at com.sun.grizzly.util.SSLOutputWriter.flushChannel(SSLOutputWriter.java:102)
  at com.sun.grizzly.ssl.SSLOutputBuffer.flushChannel(SSLOutputBuffer.java:138)
  at com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:498)
  at com.sun.grizzly.http.SocketChannelOutputBuffer.realWriteBytes0(SocketChannelOutputBuffer.java:382)
  at com.sun.grizzly.http.SocketChannelOutputBuffer.realWriteBytes(SocketChannelOutputBuffer.java:364)
  at com.sun.grizzly.tcp.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:894)
  at com.sun.grizzly.tcp.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:167)
  at com.sun.grizzly.tcp.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:661)
  at com.sun.grizzly.tcp.Response.doWrite(Response.java:685)
  at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:425)
  ... 43 more

 

Has anyone experienced this? The HTTP headers from the requests which are not working are showing the correct (expected) byte-length but not delivering the full file. This is consistent across multiple browsers, sites, instances etc (where glassfish/listener settings are the same).

 

Any assistance or tips would be greatly appreciated.

 

Regards, Pete

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points