Hi
I'm trying to test my application using JMeter, but
I have a problem with POST requests.
Initially, I thought that is because my app
(although it works using browser) and I tried Orbeon demo, "Government
Forms".
Attached you can find JMeter test plan
(OPS.jmx) for creation of a new form.
I used JMeter (2.3 RC4) recording facility i.e.
HTTP Proxy Server and IE 6.0 in order to create a test plan.
After running this test, no form is
created.
Regarding my app (MYAPP.jmx), neither one POST
request has passed (see Tree.jpg). The response error message is "Unable to
retrieve XForms engine state from session cache.". I believe that this happens
due to dynamic values assigned to the hidden input elements
(%24static-state, %24dynamic-state
etc).
Environment:
OS: Red Hat
WEB server: Tomcat 5.5
JDK: 1.5_11
JMeter: 2.3 RC4
Orbeon: 3.5.1
Is there a way to perform full JMeter test of OPS
based apps?
Tnx in advance,
Nikola
-- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws OPS.jmx (311K) Download Attachment MYAPP.jmx (437K) Download Attachment Tree.jpg (9K) Download Attachment |
Administrator
|
Nikola,
I am not sure JMeter is good enough for this. You need to be able to handle Ajax to perform full testing. In order to obtain the correct Ajax requests, you need JavaScript on the client. So it seems that a test tool integrated with a web browser would be the only way to do this at this point. -Erik Nikola Radic wrote: > Hi > > I'm trying to test my application using JMeter, but I have a problem > with POST requests. > Initially, I thought that is because my app (although it works using > browser) and I tried Orbeon demo, "Government Forms". > > Attached you can find JMeter test plan (OPS.jmx) for creation of a new > form. > I used JMeter (2.3 RC4) recording facility i.e. HTTP Proxy Server and IE > 6.0 in order to create a test plan. > > After running this test, no form is created. > > Regarding my app (MYAPP.jmx), neither one POST request has passed (see > Tree.jpg). The response error message is "Unable to retrieve XForms > engine state from session cache.". I believe that this happens due to > dynamic values assigned to the hidden input elements > (%24static-state, %24dynamic-state etc). > > Environment: > > OS: Red Hat > WEB server: Tomcat 5.5 > JDK: 1.5_11 > JMeter: 2.3 RC4 > Orbeon: 3.5.1 > > Is there a way to perform full JMeter test of OPS based apps? > > Tnx in advance, > > Nikola > > ------------------------------------------------------------------------ > -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Hi Erik,
I expect that application, that I'm working on, will be heavily used with at least 100 (some predictions estimate around 300) concurrent users. In this respect I need to make a good stress testing in order to verify the application scalability. What is your recommendation for stress testing and what tool your team in ORBEON uses for performance testing? Tnx, Nikola ----- Original Message ----- From: "Erik Bruchez" <[hidden email]> To: <[hidden email]> Sent: Wednesday, September 19, 2007 8:26 PM Subject: Re: [ops-users] JMeter > Nikola, > > I am not sure JMeter is good enough for this. You need to be able to > handle Ajax to perform full testing. In order to obtain the correct Ajax > requests, you need JavaScript on the client. So it seems that a test > tool integrated with a web browser would be the only way to do this at > this point. > > -Erik > > Nikola Radic wrote: > > Hi > > > > I'm trying to test my application using JMeter, but I have a problem > > with POST requests. > > Initially, I thought that is because my app (although it works using > > browser) and I tried Orbeon demo, "Government Forms". > > > > Attached you can find JMeter test plan (OPS.jmx) for creation of a new > > form. > > I used JMeter (2.3 RC4) recording facility i.e. HTTP Proxy Server and IE > > 6.0 in order to create a test plan. > > > > After running this test, no form is created. > > > > Regarding my app (MYAPP.jmx), neither one POST request has passed (see > > Tree.jpg). The response error message is "Unable to retrieve XForms > > engine state from session cache.". I believe that this happens due to > > dynamic values assigned to the hidden input elements > > (%24static-state, %24dynamic-state etc). > > > > Environment: > > > > OS: Red Hat > > WEB server: Tomcat 5.5 > > JDK: 1.5_11 > > JMeter: 2.3 RC4 > > Orbeon: 3.5.1 > > > > Is there a way to perform full JMeter test of OPS based apps? > > > > Tnx in advance, > > > > Nikola > > > > ------------------------------------------------------------------------ > > > > > -- > Orbeon Forms - Web Forms for the Enterprise Done the Right Way > http://www.orbeon.com/ > > ---------------------------------------------------------------------------- ---- > > -- > You receive this message as a subscriber of the [hidden email] mailing list. > To unsubscribe: mailto:[hidden email] > For general help: mailto:[hidden email]?subject=help > ObjectWeb mailing lists service home page: http://www.objectweb.org/wws > -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Administrator
|
Nikola,
We usually use JMeter for testing the performance of page loads. In some cases we have used JMeter to test individual Ajax requests as well, but that is very impractical at the moment. We welcome any suggestions regarding how to best test Ajax requests. -Erik Nikola Radic wrote: > Hi Erik, > > I expect that application, that I'm working on, will be heavily used with at > least 100 (some predictions estimate around 300) concurrent users. > In this respect I need to make a good stress testing in order to verify the > application scalability. > > What is your recommendation for stress testing and what tool your team in > ORBEON uses for performance testing? > > Tnx, > > Nikola > > ----- Original Message ----- > From: "Erik Bruchez" <[hidden email]> > To: <[hidden email]> > Sent: Wednesday, September 19, 2007 8:26 PM > Subject: Re: [ops-users] JMeter > > >> Nikola, >> >> I am not sure JMeter is good enough for this. You need to be able to >> handle Ajax to perform full testing. In order to obtain the correct Ajax >> requests, you need JavaScript on the client. So it seems that a test >> tool integrated with a web browser would be the only way to do this at >> this point. >> >> -Erik >> >> Nikola Radic wrote: >>> Hi >>> >>> I'm trying to test my application using JMeter, but I have a problem >>> with POST requests. >>> Initially, I thought that is because my app (although it works using >>> browser) and I tried Orbeon demo, "Government Forms". >>> >>> Attached you can find JMeter test plan (OPS.jmx) for creation of a new >>> form. >>> I used JMeter (2.3 RC4) recording facility i.e. HTTP Proxy Server and IE >>> 6.0 in order to create a test plan. >>> >>> After running this test, no form is created. >>> >>> Regarding my app (MYAPP.jmx), neither one POST request has passed (see >>> Tree.jpg). The response error message is "Unable to retrieve XForms >>> engine state from session cache.". I believe that this happens due to >>> dynamic values assigned to the hidden input elements >>> (%24static-state, %24dynamic-state etc). >>> >>> Environment: >>> >>> OS: Red Hat >>> WEB server: Tomcat 5.5 >>> JDK: 1.5_11 >>> JMeter: 2.3 RC4 >>> Orbeon: 3.5.1 >>> >>> Is there a way to perform full JMeter test of OPS based apps? >>> >>> Tnx in advance, >>> >>> Nikola >>> >>> ------------------------------------------------------------------------ >>> >> >> -- >> Orbeon Forms - Web Forms for the Enterprise Done the Right Way >> http://www.orbeon.com/ >> >> > > > ---------------------------------------------------------------------------- > ---- > > >> -- >> You receive this message as a subscriber of the [hidden email] > mailing list. >> To unsubscribe: mailto:[hidden email] >> For general help: mailto:[hidden email]?subject=help >> ObjectWeb mailing lists service home page: http://www.objectweb.org/wws >> > > -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
In our experience initial page
loads are more intensive than subsequent requests from interactions
with the form. So stress testing using just page loads may be
sufficient.
Erik Bruchez wrote: Nikola, -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Hi! I am using servlets to
interact with the OPS (using separate deloyment), and I wonder how request
dispatching works with that (because it doesn’t the way I tried it). When
a form is submitted, the POST request is handled by the doPost() method in my
servlet. So far, so good, I can handle the data and display a page. However, I
don’t want to display a page, I’d like to just handle the data and forward
the user to a different servlet. Normally, this is done by using RequestDispatcher
dispatcher = request.getRequestDispatcher("/myContext/myServlet"); dispatcher.forward(request,
response); However, when I do that,
I get an internal server error—but I can’t figure out why (there’s
no exception thrown by the above). Any pointers what I’m
missing here? Thanks, Carsten -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Administrator
|
Carsten,
I am not sure. From the XForms perspective, you can POST an XML document, and respond in several ways: do nothing, replace an XForms instance, or show a new page. If you decide in your application to respond to a POST by delegating the response to another servlet, this should not make a difference from the XForms engine's side, is this is purely your application's business. Can you put some debugging in your application to see if your myServlet is called? Also, if you access another context, you should know that you need to enable cross-context dispatching in your servlet container. -Erik Damm, Carsten wrote: > Hi! > > > > I am using servlets to interact with the OPS (using separate deloyment), > and I wonder how request dispatching works with that (because it doesn’t > the way I tried it). When a form is submitted, the POST request is > handled by the doPost() method in my servlet. So far, so good, I can > handle the data and display a page. However, I don’t want to display a > page, I’d like to just handle the data and forward the user to a > different servlet. Normally, this is done by using > > > > RequestDispatcher dispatcher = > request.getRequestDispatcher("/myContext/myServlet"); > > dispatcher.forward(request, response); > > > > However, when I do that, I get an internal server error—but I can’t > figure out why (there’s no exception thrown by the above). > > > > Any pointers what I’m missing here? > > > > > > Thanks, > > > > Carsten > > > > > > > -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Hiya!
> From the XForms perspective, you can POST an XML document, and > respond in several ways: do nothing, replace an XForms instance, > or show a new page. > If you decide in your application to respond to a POST by > delegating the response to another servlet, this should not make > a difference from the XForms engine's side, is this is purely your > application's business. Yeah, that's what I thought as well. However, that doesn't seem to be the case, or I am using the wrong code to handle it. > Can you put some debugging in your application to see if your > myServlet is called? There isn't much, which is why I am out of ideas. Here goes: The doPost-method I am using in my Servlet (which is /Erstregistrierung/forms/xf/OPSHandler) is: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { RequestDispatcher dispatcher = request.getRequestDispatcher("/Erstregistrierung/forms/central"); dispatcher.forward(request, response); } catch (Exception e) { e.printStackTrace(); } } The Xforms-submit ends up here and runs through the code without throwing an exception, at least on the servlet side. However, my other servlet (/Erstregistrierung/forms/central) isn't called. Instead, I get an Orbeon Error Screen, see attachment. > Also, if you access another context, you > should know that you need to enable cross-context dispatching > in your servlet container. Yes, that's the case. Orbeon listens to /Erstregistrierung/forms/xf, so that all output of the OPSHandler Servlet is handled by the OPS. The forward I am doing is to /Erstregistrierung/forms -- which should still be in the same context (/Erstregistrierung). Hope this helps, Carsten -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws screenshot.jpg (206K) Download Attachment |
Administrator
|
Carsten,
On 9/23/07, Damm, Carsten <[hidden email]> wrote: > The Xforms-submit ends up here and runs through the code without > throwing an exception, at least on the servlet side. However, my other > servlet (/Erstregistrierung/forms/central) isn't called. Instead, I get > an Orbeon Error Screen, see attachment. When Orbeon Forms run the submission it does an actual HTTP request. The error in your screenshot seems to indicate that this HTTP request returned a 500 error. If you can't see in your application log what this 500 is for, I would put a tcpmon (http://ws.apache.org/commons/tcpmon/) between Orbeon Forms and your application. This way you will see what the request and response is. If the response is 500, you might also have more information about the error in that response. Alex -- Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
In reply to this post by Nikola Radic
Hello,
We'are occasionally seeing this error (generated by OPS) "not in GZIP format" - happens only on one out of 10 requests under load...has anyone seen this before? Thanks, -peter -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Administrator
|
Peter,
I don't remember seeing this. Where do you see this error, in the server logs or in the client? Do you see any server-side exception? -Erik Peter Kolarov wrote: > Hello, > > We'are occasionally seeing this error (generated by OPS) "not in GZIP > format" - happens only on one out of 10 requests under load...has anyone > seen this before? > > Thanks, > > -peter > -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Erik,
This error happens only during the load test. On non-production environment it happened once a day, however in production it happened almost every 10 minutes. Below is attached stack trace. It looks little bit like a thread safe issue with the decodeString method or asomething along those lines - we are looking at it now but if you have any hints it would speed up the debugging process ... -peter _____________________________________ stack trace: [16.10.2007 16:05:07:937 CEST] 00000041 SystemOut O 2007-10-16 16:05:07,937;ERROR;org.orbeon.oxf.webapp.ProcessorService;Exception at oxf:/ops/xforms/xforms-server-submit.xpl, line 61, column 43, description executing processor java.io.IOException: Not in GZIP format at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:156) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:82) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:92) at org.orbeon.oxf.xforms.XFormsUtils.decodeString(XFormsUtils.java:940) at org.orbeon.oxf.xforms.XFormsUtils.decodeXML(XFormsUtils.java:895) at org.orbeon.oxf.xforms.XFormsUtils.decodeXML(XFormsUtils.java:888) at org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:186) at org.orbeon.oxf.xforms.processor.XFormsServer.start(XFormsServer.java:89) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelineProcessor.java:140) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:89) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java:123) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353) at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProcessor.java:66) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1$1.run(PipelineProcessor.java:96) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:66) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:94) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353) at org.orbeon.oxf.processor.NullSerializer.start(NullSerializer.java:31) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelineProcessor.java:140) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(PipelineProcessor.java:109) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.getKeyImpl(ConcreteChooseProcessor.java:133) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) at org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:1224) at org.orbeon.oxf.processor.IdentityProcessor$1.getKeyImpl(IdentityProcessor.java:37) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) at org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:1224) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$400(PipelineProcessor.java:66) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1$2.run(PipelineProcessor.java:113) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$500(PipelineProcessor.java:66) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(PipelineProcessor.java:111) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.getKeyImpl(ConcreteChooseProcessor.java:133) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) at org.orbeon.oxf.processor.pipeline.TeeProcessor$1.getKeyImpl(TeeProcessor.java:83) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) at org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:1224) at org.orbeon.oxf.processor.ProcessorImpl.getInputKeyValidity(ProcessorImpl.java:1259) at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:455) at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImpl.java:425) at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:186) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) at org.orbeon.oxf.processor.PageFlowControllerProcessor.start(PageFlowControllerProcessor.java:417) at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:88) at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:96) at org.orbeon.oxf.servlet.OPSServletDelegate.service(OPSServletDelegate.java:148) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.orbeon.oxf.servlet.OPSServlet.service(OPSServlet.java:75) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145) at sk.ana.util.logging.DurationFilter.doFilter(DurationFilter.java:31) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFi Erik Bruchez wrote: > Peter, > > I don't remember seeing this. Where do you see this error, in the > server logs or in the client? Do you see any server-side exception? > > -Erik > > Peter Kolarov wrote: >> Hello, >> >> We'are occasionally seeing this error (generated by OPS) "not in GZIP >> format" - happens only on one out of 10 requests under load...has >> anyone seen this before? >> >> Thanks, >> >> -peter >> > > -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Administrator
|
Peter,
I don't have an certain idea right now about what it could be, but yes a possible race condition could possibly explain it. It could also be in SecureUtils.encrypt() / decript(), but there we now synchronize on the Cipher instance. BTW the code for encoding / decoding XML has now changed a bit, but I doubt this particular issue was fixed. You could start by synchronizing the decoding and encoding methods in XFormsUtils to see is that fixes the problem. If so, then we should look further down to see there the race condition occurs. -Erik Peter Kolarov wrote: > Erik, > This error happens only during the load test. On non-production > environment it happened once a day, however in production it happened > almost every 10 minutes. > Below is attached stack trace. It looks little bit like a thread safe > issue with the decodeString method or asomething along those lines - we > are looking at it now but if you have any hints it would speed up the > debugging process ... > > -peter > _____________________________________ > stack trace: > > [16.10.2007 16:05:07:937 CEST] 00000041 SystemOut O 2007-10-16 > 16:05:07,937;ERROR;org.orbeon.oxf.webapp.ProcessorService;Exception at > oxf:/ops/xforms/xforms-server-submit.xpl, line 61, column 43, > description executing processor > java.io.IOException: Not in GZIP format at > java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:156) > > at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:82) > > at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:92) > > at org.orbeon.oxf.xforms.XFormsUtils.decodeString(XFormsUtils.java:940) > > at org.orbeon.oxf.xforms.XFormsUtils.decodeXML(XFormsUtils.java:895) at > org.orbeon.oxf.xforms.XFormsUtils.decodeXML(XFormsUtils.java:888) > > at > org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:186) > at org.orbeon.oxf.xforms.processor.XFormsServer.start(XFormsServer.java:89) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) > > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) > > > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelineProcessor.java:140) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:89) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) > > > at > org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java:123) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) > > > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348) > > > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353) > > > at > org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) > > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProcessor.java:66) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1$1.run(PipelineProcessor.java:96) > > > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:66) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:94) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.read(ProcessorImpl.java:1012) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1195) > > > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348) > > > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353) > > > at org.orbeon.oxf.processor.NullSerializer.start(NullSerializer.java:31) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) > > > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelineProcessor.java:140) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(PipelineProcessor.java:109) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) > > > at > org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.getKeyImpl(ConcreteChooseProcessor.java:133) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) > > > at > org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:1224) > > at > org.orbeon.oxf.processor.IdentityProcessor$1.getKeyImpl(IdentityProcessor.java:37) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) > > > at > org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:1224) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$400(PipelineProcessor.java:66) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1$2.run(PipelineProcessor.java:113) > > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$500(PipelineProcessor.java:66) > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(PipelineProcessor.java:111) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) > > > at > org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.getKeyImpl(ConcreteChooseProcessor.java:133) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) > > > at > org.orbeon.oxf.processor.pipeline.TeeProcessor$1.getKeyImpl(TeeProcessor.java:83) > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$1.getKey(ProcessorImpl.java:1016) > > > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:1206) > > at > org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:1224) > > at > org.orbeon.oxf.processor.ProcessorImpl.getInputKeyValidity(ProcessorImpl.java:1259) > > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:455) > > > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImpl.java:425) > > at > org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:186) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:652) > > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:536) > > > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:649) > > at > org.orbeon.oxf.processor.PageFlowControllerProcessor.start(PageFlowControllerProcessor.java:417) > > > at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:88) > > at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:96) > > at > org.orbeon.oxf.servlet.OPSServletDelegate.service(OPSServletDelegate.java:148) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at > org.orbeon.oxf.servlet.OPSServlet.service(OPSServlet.java:75) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989) > > > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930) > > > at > com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145) > > at sk.ana.util.logging.DurationFilter.doFilter(DurationFilter.java:31) > > at > com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) > > at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFi > > > Erik Bruchez wrote: >> Peter, >> >> I don't remember seeing this. Where do you see this error, in the >> server logs or in the client? Do you see any server-side exception? >> >> -Erik >> >> Peter Kolarov wrote: >>> Hello, >>> >>> We'are occasionally seeing this error (generated by OPS) "not in GZIP >>> format" - happens only on one out of 10 requests under load...has >>> anyone seen this before? >>> >>> Thanks, >>> >>> -peter >>> >> >> > -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Free forum by Nabble | Edit this page |