Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Allow only a single client to send requests to jetty at a time

Hi again and thanks for the reply!

This seems to do just what I need. My problem is in how to use the QoSFilter as we are using Jax-WS as "black box" framework.

Server server = new Server(5050);
HandlerCollection baseCollection = new HandlerCollection();
   MyRequestLogHandler logHandler = new MyRequestLogHandler();

// Initialize and add Filter here somehow so it is called before the ContextHandlerCollection

{ // Handler that later calls the JaxWS Services
   ContextHandlerCollection jaxwsHandler = new ContextHandlerCollection();

endpoint = Endpoint.create(webService);

try {
} catch (Exception e) {
   LOG.error("Error starting jetty",e);

I'm trying out different ideas (ServletHandlers, ServletContextHandlers, ...) but with little success so far.
Any tips in how to create, configure and use the Filter in this case?

Max Ulinger

Von: jetty-users-bounces@xxxxxxxxxxx [jetty-users-bounces@xxxxxxxxxxx] im Auftrag von Jesse McConnell [jesse.mcconnell@xxxxxxxxx]
Gesendet: Montag, 2. Mai 2011 19:46
An: JETTY user mailing list
Betreff: Re: [jetty-users] Allow only a single client to send requests to jetty at a time

Perhaps something along the lines of this?


jesse mcconnell

On Mon, May 2, 2011 at 05:55,  <Max.Ullinger@xxxxxx> wrote:
> Hello Jetty users,
> I have a problem which I thought would be pretty easy to solve, but haven't found a solution yet.
> We are using Jetty as http-server for our JAX-WS  webservice implementation. This is for an embedded system with low hardware performance (relatively speaking), e.g. only 96 MB of memory for the JVM heap.
> We have several 100k of log entries which can be returned by the service. Creating the XML and streaming the content to the client in the JAX-WS Framework explodes the used memory. In the worst case, the JVM runs out of memory when two clients request a lot of data at the same time.
> Now, I want to configure Jetty to only allow a single client to call a service at any given time. A second request should wait until the first request was completely streamed and finished.
> This must probably be done on the lowest level, e.g. the socket/streaming level.
> The services themselves are already 'synchronized'. I tried manipulating the ThreadPool, but without satisfactory results(using a Thread count <4, parallel requests would hang and not be serviced at all, using a higher Thread count, I had my original problem again).
>  I tried working with (synchronized) Handlers, but would still get OOM errors (expectedly, because it is too high in the stack and not on socket level). I did not find a way to configure the connectors to only allow a single request to be serviced at a time.
> I am using:
> <dependency>
>      <groupId>org.mortbay.jetty</groupId>
>      <artifactId>jetty-j2sehttpspi</artifactId>
>      <version>7.3.1.v20110307</version>
> </dependency>
> <dependency>
>    <groupId>org.eclipse.jetty</groupId>
>    <artifactId>jetty-server</artifactId>
>    <version>7.3.1.v20110307</version>
> </dependency>
> Is there any way to configure Jetty to only service a single request at a given time?
> I would be very happy for a solution or pointers in the right direction.
> Regards,
> Max Ullinger
> _______________________________________________
> jetty-users mailing list
> jetty-users@xxxxxxxxxxx
jetty-users mailing list

Back to the top