Sql 2005 Bogus Chunk Size
From OpenI Wiki
We are getting some buggy, inconsistent results when integrating with AS2005. On some xmla requests tosql2005, we get an exception (see below "Typical Exception Stack"). "Inconsistent" - sometimes the same request (same mdx/analysis) gives us a successful response (we get proper SOAP message with data), sometimes exact same request gives us the bogus chunk size exception. Because the response is inconsistent and the client does not change, I'm starting to believe the problem is on the xmla provider (sql2005). Much investigation required.
| Table of contents |
msft server
- upgrade/change msxml
** AS2005 installation uses latest MSXML6.0. So no new update available yet
- iis response sent in chunks
** true. IIS sends the response in chunk based on http 1.1
- sp for sql2005?
** not yet
- .NET xmla sample?
** it works nicely. You need to change the 'DataSourceInfo' to 'DataSourceName' to make it wokring agains AS2005. Please correct line #346 of connect.vb comes with XMLA 'sample' under 'sample .net'
- msft forum research
** no luck, since this is only java specific issue
- cache in iis?
** I think there is no problem with iis, since xmla sample works nicely
- restart iis?
** sometime works. I found one strange result: any time when I get bogus chunk, running .net xmla sample makes it(openi) working too.
- get a bogus chunk in openi, restart iis, problem resolved
** not always. But running .net xmla sample solves openi's bogus chunk automatically
java/openi
- jwsdp-2.0
** no luck
- tomcat 5.5 (requires openi recompile)
** no luck
Root of the exception
- This bogus chunk exception is thrown by java class 'sun.net.www.http.ChunkedInputStream'. see source here:http://www.jsourcery.com/output/sun/j2se/j2sdk/1.4.2_04/sun/net/www/http/ChunkedInputStream.source.html
- see line # 262 of above link file(method processRaw() )
- seems like there is a bug in java library which can not handle chunk http response properly
Typical Exception Stack
Error Message:
com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to read response: Bogus chunk size
Stack Trace:
com.tonbeller.jpivot.olap.model.OlapException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to read response: Bogus chunk size at com.tonbeller.jpivot.xmla.XMLA_SOAP.discover(XMLA_SOAP.java:1415) at com.tonbeller.jpivot.xmla.XMLA_SOAP.discoverLev(XMLA_SOAP.java:455) at com.tonbeller.jpivot.xmla.XMLA_Model.initCubeMetaData(XMLA_Model.java:752) at com.tonbeller.jpivot.xmla.XMLA_Model.initialize(XMLA_Model.java:173) at com.tonbeller.jpivot.olap.model.OlapModelDecorator.initialize(OlapModelDecorator.java:129) at com.tonbeller.jpivot.tags.OlapModelProxy$MyState.initialize(OlapModelProxy.java:76) at com.tonbeller.jpivot.tags.PageStateManager.initializeAndShow(PageStateManager.java:37) at com.tonbeller.jpivot.tags.OlapModelProxy.initializeAndShow(OlapModelProxy.java:161) at org.openi.xmla.XMLAQueryTag.init(XMLAQueryTag.java:116) at org.openi.web.controller.analysis.AnalysisController.handleRequestInternal(AnalysisController.java:133) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625) at org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:346) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.openi.web.RequestFilter$MyHandler.normalRequest(RequestFilter.java:240) at com.tonbeller.wcf.controller.RequestSynchronizer.handleRequest(RequestSynchronizer.java:127) at org.openi.web.RequestFilter.doFilter(RequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.openi.security.AuthorizationFilter.doFilter(AuthorizationFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:169) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to read response: Bogus chunk size at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:127) at com.tonbeller.jpivot.xmla.XMLA_SOAP.discover(XMLA_SOAP.java:1391) ... 53 more Caused by: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to read response: Bogus chunk size at java.security.AccessController.doPrivileged(Native Method) at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:121) ... 54 more Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to read response: Bogus chunk size at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:364) at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:150) ... 56 more
Sourceforge Discussion
https://sourceforge.net/forum/forum.php?thread_id=1457611&forum_id=478298
