Hi James, You did not mention the Axis or Java version you are using. See if this applies to your current use:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724129 --Thunder -----Original Message----- From: James CE Johnson [mailto:[EMAIL PROTECTED] Sent: Monday, September 20, 2004 8:57 AM To: [EMAIL PROTECTED] Subject: OutOfMemoryException from my Axis client Has anybody else seen anything like this? I've got an Axis-based server (Server "A") that must call another Axis-based server (Server "B"). In testing we discovered that Server A was running out of memory. Upon tracking it down we discovered that the bits of Server A that are client to Server B are the culprit. I now have a stripped-down command-line test client invoking methods on Server B. That test client is running out of memory. Server B provides three webservice calls. Two return simple, small strings. The third can return a string that is a meg or two. If my test client starts as few as 10 threads calling each method in turn it will run out of memory before all 10 can complete. I've bumped up the -Xxxx options but that only delays the problem. With enough client-side memory I can squeeze out a few more threads but not enough. I've also discovered that I can (apparently) run as many iterations of my test as I want with no memory leaks if I have only a single thread invoking the webservice. By "single thread" I mean one and only one thread, not multiple threads synchronized. (When I have multiple synchronized threads - such that only one is calling at any single point in time - I still run out of memory.) So, my question is, has anyone seen this kind of thing in an Axis client? Does Axis store some ThreadLocal data that might be causing this? Is there a way I can cleanly/safely have each thread "shut down" the Axis client when a given thread is done? Ultimately, I'll be calling "Server B" from within my EJBs and it would be very bad for them to run out of memory... Thanks, James
