JMeter

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

JMeter

Nikola Radic
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
Reply | Threaded
Open this post in threaded view
|

Re: JMeter

Erik Bruchez
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
Reply | Threaded
Open this post in threaded view
|

Re: JMeter

Nikola Radic
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
Reply | Threaded
Open this post in threaded view
|

Re: JMeter

Erik Bruchez
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
Reply | Threaded
Open this post in threaded view
|

Re: JMeter

Adrian Baker
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,

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: [hidden email]
For general help: [hidden email]
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
Reply | Threaded
Open this post in threaded view
|

Request dispatching?

carsten.damm

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
Reply | Threaded
Open this post in threaded view
|

Re: Request dispatching?

Erik Bruchez
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
Reply | Threaded
Open this post in threaded view
|

AW: Request dispatching?

carsten.damm
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
Reply | Threaded
Open this post in threaded view
|

Re: Request dispatching?

Alessandro Vernet
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
Reply | Threaded
Open this post in threaded view
|

not in GZIP format

Peter Kolarov-3
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
Reply | Threaded
Open this post in threaded view
|

Re: not in GZIP format

Erik Bruchez
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
Reply | Threaded
Open this post in threaded view
|

Re: not in GZIP format

Peter Kolarov-3
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
Reply | Threaded
Open this post in threaded view
|

Re: not in GZIP format

Erik Bruchez
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