Hi All,
I have log4j configured to email on errors and include the free memory. Here's
one example on a GUI-less app which generates reports.
910.25 MB total/761.92 MB used/148.33 MB free
[performWork]
(com.mpv.eoaccesscontrol.MPVLog, error, MPVLog.java:116) -
java.lang.OutOfMemoryError: Java heap space
at
java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)
at
java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:393)
at java.lang.StringBuffer.append(StringBuffer.java:225)
at
com.mpv.reports.AdHocReportExporter.exportValue(AdHocReportExporter.java:482)
at
com.mpv.reports.AdHocReportExporter.exportRecordColumns(AdHocReportExporter.java:419)
at
com.mpv.reports.AdHocReportExporter.exportRecords(AdHocReportExporter.java:351)
at
com.mpv.reports.AdHocReportExporter.export(AdHocReportExporter.java:132)
...
at er.extensions.concurrency.ERXTimerTask.run(ERXTimerTask.java:25)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
My first question is: how come that there are 148MB of free memory but the
error logged says that the app ran out of memory. My guess is that yes, it did
run out of memory but by the time the exception was logged the garbage
collector was able to free up memory. Could that be the case?
Here's the relevant property that is responsible for putting the memory stats
in the error logged:
# email is an SMTPAppender
...
log4j.appender.email.layout.ConversionPattern=[${MPVAgentName}] %r %-5p
%d{ISO8601}%n%n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n
My second question is: how come the total memory is 910.25MB if the app is
running with -Xmx1024MB ?
:-)
Thanks,
Ricardo
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]