Hi Thunder, Sorry... We're using Axis 1.1 with JVM 1.4.2_02-b03 on Linux. Our JDOM version, if applicable, is 1.0 Beta 8 or 9. Although bug 4724129 sounds applicable I would expect they fixed that by now.
The problem really shows up with the multi-meg response. I suspect it happens with all responses but the big one just makes it happen quicker. Thanks again, James > 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