0 Replies Latest reply on Oct 19, 2012 4:56 AM by chrkoelle

    EOFExceptions and IOExceptions in EJB calls under load

    chrkoelle

      Hi

       

      We have a web application that ist split up in a frontend and a backend application. The frontend calls EJBs in the backend. This works pretty well but in production we occasionaly we get exceptions at times that we know as high load periods.

       

      Both applications run on JBoss 7.1.2 application servers.

       

      In the frontend we see something like this:

       

      00:59:10,337 ERROR [org.jboss.remoting.remote.connection] (Remoting "jboss-web-extern" read-1) JBREM000200: Remote connection failed: java.io.IOException: Input overrun

      00:59:10,393 ERROR [****] (ajp-/0.0.0.0:8009-130) Cannot perform usecase ***

      java.lang.reflect.UndeclaredThrowableException

              $Proxy75.performUseCase(Unknown Source)

               ......

      Cause: java.io.EOFException: Writes have been shut down

              org.xnio.channels.FramedMessageChannel.send(FramedMessageChannel.java:220)

              org.xnio.channels.Channels.sendBlocking(Channels.java:200)

              org.jboss.remoting3.remote.OutboundMessage$1.accept(OutboundMessage.java:109)

              org.xnio.streams.BufferPipeOutputStream.send(BufferPipeOutputStream.java:125)

              org.xnio.streams.BufferPipeOutputStream.send(BufferPipeOutputStream.java:113)

       

      In the backend something like this:

       

      00:59:10,348 ERROR [org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler] (EJB default - 13) Could not write method invocation result for method public *** on bean named *** for appname *** modulename common-ejb distinctname due to : java.io.IOException: Broken pipe

              at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_06]

              at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1.7.0_06]

              at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89) [rt.jar:1.7.0_06]

              at sun.nio.ch.IOUtil.write(IOUtil.java:60) [rt.jar:1.7.0_06]

              at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:450) [rt.jar:1.7.0_06]

              at org.xnio.nio.AbstractNioStreamChannel.write(AbstractNioStreamChannel.java:303)

              at org.xnio.channels.FramedMessageChannel.doFlushBuffer(FramedMessageChannel.java:297) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.xnio.channels.FramedMessageChannel.doFlush(FramedMessageChannel.java:311) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.xnio.channels.FramedMessageChannel.send(FramedMessageChannel.java:238) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.xnio.channels.Channels.sendBlocking(Channels.java:200) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.jboss.remoting3.remote.OutboundMessage$1.accept(OutboundMessage.java:109) [jboss-remoting-3.2.7.GA.jar:3.2.7.GA]

              at org.xnio.streams.BufferPipeOutputStream.send(BufferPipeOutputStream.java:125) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.xnio.streams.BufferPipeOutputStream.send(BufferPipeOutputStream.java:113) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.xnio.streams.BufferPipeOutputStream.flush(BufferPipeOutputStream.java:142) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.xnio.streams.BufferPipeOutputStream.close(BufferPipeOutputStream.java:160) [xnio-api-3.0.3.GA.jar:3.0.3.GA]

              at org.jboss.remoting3.remote.OutboundMessage.close(OutboundMessage.java:193) [jboss-remoting-3.2.7.GA.jar:3.2.7.GA]

              at org.jboss.as.ejb3.remote.protocol.versionone.ChannelAssociation.releaseChannelMessageOutputStream(ChannelAssociation.java:85)

              at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.writeMethodInvocationResponse(MethodInvocationMessageHandler.java:348)

              at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$500(MethodInvocationMessageHandler.java:67)

              at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:237)

              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_06]

              at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_06]

              at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_06]

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_06]

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_06]

              at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_06]

              at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]

       

      I haven't found more information on this exceptions on the net.

       

      For me it is not clear what this means. Does this have an effect on the users? Is there a problem with our implementation or perhaps the configuration?

       

      Christian