Thank you for the suggestion, I will check it again. However since I managed to recreate the problem by issuing the requests serially, waiting for the previous request to finish before issuing the next, I thought I had eliminated any potential threading issues. Is my assumption correct? If so, the problem is somewhere else.
Thanks Gerallt -----Original Message----- From: David Delbecq [mailto:[EMAIL PROTECTED] Sent: 10 March 2007 13:45 To: Tomcat Users List Subject: Re: Occasional XML parsing error when Tomcat is busy looks like a synchronization issue. check your code is threadsafe where things are shared between threads. On request is propably overriding datas while another is reading them. Roberts, Gerallt a écrit : > Hello, > > > > I have a web application that processes files, which has been working > fine, however when it is put under a heavy load there is an occasional > failure. I have managed to recreate the error by sending 128 documents > at it in a serial fission, and I usually get 1 failure. Unfortunately > there is no log of the actual error, but I do get > "org.xml.sax.SAXParseException: XML document structures must start and > end within the same entity" on the client. > > > > Can anyone suggest what the cause might be? > > The environment is: > > Tomcat 5.0.25 > > axis 1.1 > > xerces 1.4.4 > > > > The, access log has the following entry, the third line is the failure, > I think the first "500" is the internal server error, the second number > is always "500" which suggest the cause is the same despite it's > intermittent nature. > > > > 199.196.51.54 - - [07/Mar/2007:15:54:13 +0000] "POST > /fdkservices/services/FdkWatermark HTTP/1.0" 200 18244 > > 199.196.51.54 - - [07/Mar/2007:15:54:20 +0000] "POST > /fdkservices/services/FdkWatermark HTTP/1.0" 200 18247 > > 199.196.51.54 - - [07/Mar/2007:15:54:25 +0000] "POST > /fdkservices/services/FdkWatermark HTTP/1.0" 500 500 > > 199.196.51.54 - - [07/Mar/2007:15:54:37 +0000] "POST > /fdkservices/services/FdkWatermark HTTP/1.0" 200 18249 > > 199.196.51.54 - - [07/Mar/2007:15:54:43 +0000] "POST > /fdkservices/services/FdkWatermark HTTP/1.0" 200 18244 > > > > With logging set to debug mode I get the following error, I am hoping > this is familiar to someone. > > > > AxisFault > > faultCode: > {http://schemas.xmlsoap.org/soap/envelope/}Server.userException > <http://schemas.xmlsoap.org/soap/envelope/%7dServer.userException> > > faultSubcode: > > faultString: org.xml.sax.SAXParseException: XML document structures > must start and end within the same entity. > > faultActor: > > faultNode: > > faultDetail: > > {http://xml.apache.org/axis/}stackTrace > <http://xml.apache.org/axis/%7dstackTrace> : > org.xml.sax.SAXParseException: XML document structures must start and > end within the same entity. > > at > org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unkno > wn Source) > > at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown > Source) > > at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown > Source) > > at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown > Source) > > at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown > Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown > Source) > > at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown > Source) > > at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown > Source) > > at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) > > at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown > Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknow > n Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis > patcher.dispatch(Unknown Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno > wn Source) > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown > Source) > > at javax.xml.parsers.SAXParser.parse(Unknown Source) > > at > org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializatio > nContextImpl.java:242) > > at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) > > at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) > > at org.apache.axis.server.AxisServer.invoke(AxisServer.java:318) > > at > org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > at > org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j > ava:339) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > tionFilterChain.java:237) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > erChain.java:157) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > e.java:214) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > at > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon > textValve.java:198) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > e.java:152) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :137) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :117) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:102) > > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535 > ) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:102) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > java:109) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > 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:79 > 3) > > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > onnection(Http11Protocol.java:702) > > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57 > 1) > > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > .java:644) > > at java.lang.Thread.run(Unknown Source) > > > > > > org.xml.sax.SAXParseException: XML document structures must start and > end within the same entity. > > at org.apache.axis.AxisFault.makeFault(AxisFault.java:129) > > at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:543) > > at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) > > at org.apache.axis.server.AxisServer.invoke(AxisServer.java:318) > > at > org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > at > org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j > ava:339) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > tionFilterChain.java:237) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > erChain.java:157) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > e.java:214) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > at > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon > textValve.java:198) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > e.java:152) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :137) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :117) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:102) > > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535 > ) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:102) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > java:109) > > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > ntext.java:104) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > 20) > > 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:79 > 3) > > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > onnection(Http11Protocol.java:702) > > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57 > 1) > > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > .java:644) > > at java.lang.Thread.run(Unknown Source) > > Caused by: org.xml.sax.SAXParseException: XML document structures must > start and end within the same entity. > > at > org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unkno > wn Source) > > at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown > Source) > > at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown > Source) > > at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown > Source) > > at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown > Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown > Source) > > at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown > Source) > > at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown > Source) > > at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) > > at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown > Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknow > n Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis > patcher.dispatch(Unknown Source) > > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno > wn Source) > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown > Source) > > at javax.xml.parsers.SAXParser.parse(Unknown Source) > > at > org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializatio > nContextImpl.java:242) > > at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) > > ... 32 more > > > > > > Thank you for any help > > Gerallt > > > > > > > > > > This email may contain material that is confidential, privileged and/or > attorney work product for the sole use of the intended recipient. Any review, > reliance or distribution by others or forwarding without express permission > is strictly prohibited. If you are not the intended recipient, please contact > the sender and delete all copies. > > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This email may contain material that is confidential, privileged and/or attorney work product for the sole use of the intended recipient. Any review, reliance or distribution by others or forwarding without express permission is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]