Submitted by Scott Schell:
I was thinking about Jiapi and was wondering if it
was possible to change the context on an already running
system. That is, could it be possible to disable a
context and then enable a new context. My thought is
this. Could a system be run without instrumentation
until it starts behaving poorly, etc. And then the
Admin (for example) could turn on instrumentation to
gather data for a while...potentially fix the problem,
and then turn instrumentation off (without restarting).
This might be an easy addition to what you already have
and something that would be valuable (in my opinion).
Logged In: YES
user_id=333539
This feature which you are describing is one of our original
goals. It was the inspiration to start Jiapi project :)
There's some difficulties to implement this, though. Mainly,
a lack of class reloading mechanism in Java class loading.
That is, it is not possible to unload a class in a fine
graind way. The Class unloading can only be done on a
ClassLoader level. The classes are unloaded when Java VM
garbage collects the ClassLoader which loaded them. The
consequence is then that all the classes in the
ClassLoader's namespace are unloaded and reloaded. To
implement this in a controlled way, the classes' state must
be also stored and restored.
But we are working on this. The strategy is propably to
first utilize existing products which implement Class
reloading. One such product is Jakarta Tomcat. We have a
ClassLoader implementation which can be dropped into Tomcat
to load web applications utilizing instrumentation. Tomcat
can then be forced to reload the webapp with different
instrumentation context. This ClassLoader is not yet in CVS.
It will be added there before the first milestone relase 0.1
(Feb-March).