I think it all started because one of my STAX job went into an infinite loop. But that problematic STAX job has already been terminated. However, I still see a large amount of memory (>1GB) is being allocated to the java process that corresponding to EVENT service's jvm. Yes, I seperate my STAX and EVENT into different jvm, and my STAX jvm is even larger (>3GB).
I was wondering what can I do in this situation? By any chance, is there maybe a bug that STAX didn't stop un-register the event when the STAX job is stopped? Or maybe java garbage collection should take care of this part?
Finally, if I just remove and then re-add the EVENT service, what will happen to the STAX service?
Yes, you can remove and re-add the EVENT service. It will have no adverse effect on the STAX service as the STAX service itself does not require the Event service. The Event service is only used by the STAX Monitor which registers for event notifications and uses them to display the current execution status of a STAX job. See section "Events Generated by STAX that Provide Job Status" in the STAX User's Guide at http://staf.sourceforge.net/current/STAX/staxug.html#Header_STAXEvents for more information on this.
The Event service is dependent upon the JVM's garbage collector to release memory. I'm guessing the Event service was way behind on handling all the events generated by the runaway STAX job so they were accumulating in the Event service using up memory in the JVM.
If you don't use the STAX Monitor to monitor STAX jobs, then you can simply not register the Event service on the STAX service machine so that it won't consume any memory.
Log in to post a comment.