• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Axis not returning from a service request

 
Adam Kreiss
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey everyone,

I'm having problems with invoking a service request in Axis. I have built a basic CRUD style service and all I want to do is get a list of all the objects in a table. The request takes no parameters.

When I make the request, the server hangs while eating up my processor. Originally I was also getting java.lang.OutOfMemory exceptions. Increasing the heap size solved this (for now). It looks like somehow Axis never stops sending information back to the client.

I have tested as close to the network as I can figure out how to on both sides. I built a test app that calls the Skeleton class axis generated on the server. I get results back from this just fine. The test app I wrote client side accesses the Stub class and hangs. I don't get any returns or exceptions or anything useful. It just sits there.

I'm using Axis 1.x with Tomcat 5.5. Both are fresh installs within the past week so whatever the latest and greatest release versions are what I have. All communication is taking place on one machine.

Does anyone have any idea what might be causing this?

Thanks in advance
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Adam Kreiss:
The request takes no parameters. � When I make the request, the server hangs while eating up my processor. Originally I was also getting java.lang.OutOfMemory exceptions. Increasing the heap size solved this (for now). It looks like somehow Axis never stops sending information back to the client.

Does anyone have any idea what might be causing this?


Sheer Volume?

A database server and client can deal with this by exchanging the information in batches (and it's usually binary data) - you seem to be attempting to send all of it in a single massive HTTP response of bloated XML text - so transmission could take a while.

However it's probably the result set to XML marshalling that's killing your server. If the result set is large enough the SOAP message creation process could cause the server to thrash because large parts of the virtual memory have to be repeatedly saved to and retrieved from disc - at which point the server might be sending no or only a trickle of data to the client.

Constrain your result set to a few rows, so that it can get it to work. Then make the result set bigger and bigger by varying your selection constraints until you are running into problems. What was the largest result set you could successfully send? How big was the resulting SOAP message?

Ultimately you may have to rethink your approach.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic