• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Web Service Performance

 
Ranch Hand
Posts: 225
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm adding a web service client call to an application I have. Without the web service the application processes 71 transactions / second on my laptop, whereas with the web services added I can only get 15 transactions /second. I also notice that every now and then my application pauses when it has the web service added, in a similar manner to a Java app garbage collecting. In between these pauses it seems to run fairly fast.

I'm running this under WAS 6.1 using JAX-WS with HTTP as the web service transport. The Web Service provider is a dummy one - it does no serious processing so that is not the bottleneck.

I've got a few questions.

1. Have people found that JAX-WS on WebSphere is fast? Is it scalable? Or is there a performance ceiling that you hit? Without the web service the app is clusterable and scales pretty well.
2. What might be causing the pauses - might my application be waiting for ports to become free or something - there currently isn't pooling of SOAP dispatch objects or service objects, so I don't know how WAS might be handling pooling. Or is this a red herring?
3. Might using JMS as the transport help things?

Any advice is welcome.
 
Ranch Hand
Posts: 2187
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
How many transactions per second is required? Is 15 per second acceptable?

Explain what you mean by "the Web Service provider is a dummy one".

Is the web service call synchronous or asynchronous?

In general, with XML-based web services, there is significant overhead stemming from processing the XML-based data, e.g. parsing, unmarshalling, etc.
 
Steve Wink
Ranch Hand
Posts: 225
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by James Clark:
How many transactions per second is required? Is 15 per second acceptable?

Explain what you mean by "the Web Service provider is a dummy one".

Is the web service call synchronous or asynchronous?

In general, with XML-based web services, there is significant overhead stemming from processing the XML-based data, e.g. parsing, unmarshalling, etc.



In a clustered environment, hundreds of transactions per second will be required, so the solution has to be scalable.

By 'dummy' I mean that the web service provider simply returns a hard coded response rather than doing any CPU/IO intensive operation, so that it unlikely to be holding things up. Stub may be a better description.

The web service call is synchronous.

"In general, with XML-based web services, there is significant overhead stemming from processing the XML-based data, e.g. parsing, unmarshalling, etc."

If the parsing, unmarshalling etc is the problem then putting the app on more CPUs should solve the problem, and that is likely to be my next stop.
 
Author and all-around good cowpoke
Posts: 13078
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Without the web service the application processes 71 transactions / second on my laptop, whereas with the web services added I can only get 15 transactions /second.



How many Threads does the application devote to web service requests?

How large and complex is the typical request? It sounds like request construction and response parsing is your real time consumer.

Bill
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic