3 Replies Latest reply: Feb 28, 2013 12:19 PM by 994040 RSS

    BI Publisher Webservice calls throws XDOIOException followed by an Error

    Manish Sachdev
      Hi,

      We have developed a custom Java Web Service which acts as an layer between a .Net application and BI Publisher Web services.

      The .Net application submits an XML to custom Java Web Service. The custom Java Web Service then passes the xml to BI Publisher web service (runReport web method) along with the authentication details.

      The BI Publisher runReport method processes the record and returns a byte stream which is passed back to .Net application.

      1 record = produces 8 pages of PDF
      1 Batch = 100 records (processed at a given time) returns 1 pdf containing 100 records

      After processing about 25000 records, we are getting the following exceptions:

      2010-10-11 00:38:59 BIWebServiceProxy [ERROR] runReport Exception while scheduling report :
      javax.xml.ws.soap.SOAPFaultException: oracle.xdo.webservice.exception.OperationFailedException: PublicReportService::generateReport failed: due to oracle.xdo.XDOIOException: java.io.IOException: java.lang.reflect.InvocationTargetException
           at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)
           at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
           at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)
           at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
           at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
           at $Proxy465.runReport(Unknown Source)
           at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
           at $Proxy183.runReport(Unknown Source)
           at biwebserviceproxy.BIWebServiceProxy.runReport(BIWebServiceProxy.java:198)
           at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
           at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
           at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
           at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
           at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
           at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
           at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
           at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
           at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
           at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
           at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
           at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
           at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
           at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
           at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
           at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
           at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
           at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
           at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
           at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
           at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
           at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
           at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
           at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
      2010-10-11 00:38:59 BIWebServiceProxy [ERROR] runReport Exception while scheduling report :
      javax.xml.ws.soap.SOAPFaultException: oracle.xdo.webservice.exception.OperationFailedException: PublicReportService::generateReport failed: due to oracle.xdo.XDOIOException: java.io.IOException: java.lang.reflect.InvocationTargetException
           at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)
           at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
           at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)
           at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
           at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
           at $Proxy466.runReport(Unknown Source)
           at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
           at $Proxy183.runReport(Unknown Source)
           at biwebserviceproxy.BIWebServiceProxy.runReport(BIWebServiceProxy.java:198)
           at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
           at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
           at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
           at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
           at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
           at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
           at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
           at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
           at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
           at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
           at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
           at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
           at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
           at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
           at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
           at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
           at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
           at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
           at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
           at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
           at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
           at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
           at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
           at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
      2010-10-11 02:07:09 BIWebServiceProxy [ERROR] runReport Exception while scheduling report :
      *javax.xml.ws.soap.SOAPFaultException: oracle.xdo.webservice.exception.OperationFailedException: PublicReportService::generateReport failed: due to oracle.xdo.XDOException: java.lang.OutOfMemoryError: allocLargeObjectOrArray: [B, size 2097680*
           at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)
           at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
           at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)
           at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
           at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
           at $Proxy573.runReport(Unknown Source)
           at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
           at $Proxy183.runReport(Unknown Source)
           at biwebserviceproxy.BIWebServiceProxy.runReport(BIWebServiceProxy.java:198)
           at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
           at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
           at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
           at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
           at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
           at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
           at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
           at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
           at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
           at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
           at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
           at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
           at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
           at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
           at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
           at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
           at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
           at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
           at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
           at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
           at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
           at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
           at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
           at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)


      It is noticed that after logging XDOIOException two times, it throws OutOfMemory error.  Currently after every 25000 records, we are restarting the Oracle Weblogic / BI Publisher 11g just to meet our SLAs of PDF generation.

      Has anyone of you guys have faced similar errors / have any kind of clues on XDOIOException ?



      Thanks and Regards,
      Manish Sachdev

      Edited by: user9286015 on Oct 12, 2010 4:01 AM