Mail Archive Home | enhydra List | January 2006 Index
| <-- Date Index --> | <-- Thread Index --> |
Hi Petr,We actually use that exact technique here to do restarts nightly on our build server (which is running Enhydra 5.1 on Linux), and after a little more than a week our application starts encountering java.lang.OutOfMemoryError's - indicative of a memory leak (e.g. continually adding new objects to a static cache variable). I investigated this quite a while back and confirmed that the memory leak also happens (with what seemed to be the same severity) with other applications - even the example Welcome application included with Enhydra. I tried running the multiserver under a Java profiler (on Windows XP) and repeatedly restarted the Welcome app - I saw the available memory go up and down, but each time it went up it went up to a slightly lower level. Unfortunately, the profiler didn't seem to indicate the source of the memory leak - nothing particularly stood out in the various counts of instantiated objects. My only guess at the time was that since the classloader was reloading certain classes every time Enhydra reinitialized the Welcome app, maybe it wasn't releasing the memory associated with the old version (which might not contribute towards a count of any instantiated objects). In any case, since was only happening for our build server, we just manually kill and restart the multiserver whenever it becomes a problem.
So, since we're on the topic, I figured I may as well ask - has anyone encountered this before? Does anyone know if Enhydra 5.4 or Enhydra 6.x would have the same issue? Any ideas where the memory leak might really be?
Just wondering... Mike----- Original Message ----- From: "Petr Stehlik" <pstehlik@xxxxxxxxxx>
To: <enhydra@xxxxxxxxxxxxx> Sent: Tuesday, January 24, 2006 6:59 AMSubject: Re: [enhydra] restart application in EnhydraMultiserver programmatically?
Slobodan Vujasinovic píše v St 18. 01. 2006 v 16:23 +0100:
Hi, try with (wget based example): for windows: wget --http-user=admin --http-password=enhydra "http://localhost:8001/Perform.po?action=start&id=Poker" -o null for linux: wget --http-user=admin --http-password=enhydra "http://localhost:8001/Perform.po?action=stop&id=Poker" -o /dev/null NOTE: 1. 8001 is connector port of Multiserver Admin application 1. Example starts(windows)/stops (linux) 'Poker' demo application 2. admin/enhydra (username/password) - default authentication parameters are used
So far correct but another GET must be invoked to stop a servlet in use:wget --http-user=admin --http-password=enhydra "http://localhost:8001/Perform.po?action=confirmed&id=Poker" -o /dev/null
Petr
| <-- Date Index --> | <-- Thread Index --> |
Powered by MHonArc.
Copyright © 1999-2005, ObjectWeb Consortium | contact | webmaster.