1 Reply Latest reply on Oct 24, 2016 6:36 PM by jflack

    No more data to read from socket (500 error)

    jflack

      I'm using ORDS 3.0.6 standalone to front Apex 5.0 running on my local Personal Oracle 11gR2.  I'm writing my very first Apex application and trying to create my first page - a master/detail form.  So it shows the form for me to specify the Master table and I select one and press Next.  Then I get a 500 error page.  On the ORDS console, I see:

       

      Oct 20, 2016 4:54:09 PM oracle.dbtools.http.errors.ErrorPageFilter log

      SEVERE: java.sql.SQLRecoverableException: No more data to read from socket InternalServerException [statusCode=500, reasons=[]]

              at oracle.dbtools.apex.ModApexContext.handleError(ModApexContext.java:273)

              at oracle.dbtools.apex.OWA.execute(OWA.java:206)

              at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:267)

              at oracle.dbtools.apex.ModApex.doPost(ModApex.java:174)

              at oracle.dbtools.apex.ModApex.service(ModApex.java:102)

              at oracle.dbtools.http.entrypoint.Dispatcher.dispatch(Dispatcher.java:124)

              at oracle.dbtools.http.entrypoint.EntryPoint$FilteredServlet.service(EntryPoint.java:236)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:73)

              at oracle.dbtools.http.forwarding.QueryFilteringRewrite.doFilter(QueryFilteringRewrite.java:89)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.forwarding.ForwardingFilter.doFilter(ForwardingFilter.java:68)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.cors.CORSPreflightFilter.doFilter(CORSPreflightFilter.java:67)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.cookies.auth.CookieSessionCSRFFilter.doFilter(CookieSessionCSRFFilter.java:77)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.auth.AuthenticationFilter.authenticate(AuthenticationFilter.java:89)

              at oracle.dbtools.http.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:62)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.url.mapping.RequestMapperBase.doFilter(RequestMapperBase.java:55)

              at oracle.dbtools.url.mapping.CompositeMapper$RequestMapperFilterChain.doFilter(CompositeMapper.java:144)

              at oracle.dbtools.url.mapping.RequestMapperBase.doFilter(RequestMapperBase.java:55)

              at oracle.dbtools.url.mapping.CompositeMapper.doFilter(CompositeMapper.java:37)

              at oracle.dbtools.url.mapping.URLMappingBase.doFilter(URLMappingBase.java:89)

              at oracle.dbtools.url.mapping.filter.URLMappingFilter.doFilter(URLMappingFilter.java:88)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.locale.LocaleFilter.doFilter(LocaleFilter.java:59)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.cors.CORSResponseFilter.doFilter(CORSResponseFilter.java:83)

              at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.errors.ErrorPageFilter.doFilter(ErrorPageFilter.java:81)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.auth.ForceAuthFilter.doFilter(ForceAuthFilter.java:44)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:46)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.filters.Filters.filter(Filters.java:47)

              at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:83)

              at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:47)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

              at oracle.dbtools.rt.web.HttpEndpointBase.dispatchableServices(HttpEndpointBase.java:123)

              at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:85)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:751)

              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:566)

              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:219)

              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)

              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:498)

              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)

              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)

              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

              at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199)

              at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)

              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:98)

              at org.eclipse.jetty.server.Server.handle(Server.java:461)

              at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:284)

              at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)

              at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)

              at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)

              at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)

              at java.lang.Thread.run(Unknown Source)

      Caused by: java.sql.SQLRecoverableException: No more data to read from socket

              at oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:456)

              at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:397)

              at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)

              at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)

              at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:220)

              at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:48)

              at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:938)

              at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)

              at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4802)

              at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:4905)

              at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:5631)

              at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1385)

              at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)

              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

              at java.lang.reflect.Method.invoke(Unknown Source)

              at oracle.ucp.jdbc.proxy.StatementProxyFactory.invoke(StatementProxyFactory.java:353)

              at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:178)

              at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:136)

              at com.sun.proxy.$Proxy38.execute(Unknown Source)

              at oracle.dbtools.apex.OWA.execute(OWA.java:169)

              ... 67 more

      Any ideas?  I've seen some information suggesting that this is a problem with the jdbc driver, but I'm using the one (ojdbc7) supplied with ORDS which is the latest, I think.  I'm running ORDS standalone with Java 8 - latest available.

        • 1. Re: No more data to read from socket (500 error)
          jflack

          Solved it myself.  The problem was that I had Personal Oracle 11.2.0.1.  ORDS 3 comes with ojdbc7.jar.  This JDBC driver doesn't work with 11.2.0.1.  The solution was to either use an earlier version of ORDS that comes with ojdbc6.jar or upgrade the database to the latest patch release of 11gR2 - 11.2.0.4.  I upgraded my database to 11.2.0.4 and everything is now working.

           

          Interesting addendum:  I've also been experimenting with Oracle ADF running on Glassfish 4, and didn't have exactly the same error, but a similar one.  Betcha this is the problem there too.