tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Help Requested: Sending file attachments greater than 4mb causes OOM errors
Date Wed, 14 May 2008 17:23:11 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lyman,

Lyman wrote:
| mod_jk/1.2.5

You should upgrade this if possible. That version is 5 years old and the
latest version should be completely compatible with the old one. I'm
sure it's not the problem, but I wouldn't want to miss an opportunity to
suggest an upgrade. Lots of good stuff in later releases.

| The error usually occurs when tomcat is in this statement:
|
| java.lang.Object _resp = _call.invoke(new java.lang.Object[]
| {pvarSspNumber, pvarContractNumber, pnumIdrNumber, pvarRevision,
| pvarUrgency, pvarItemNumber, pvarDescription, pvarIsPartial,
| pvarWorkItemParagraph, pvarReportType, pvarRecommendation,
| pvarAnswerMandatory, pvarReportAction, pvarResponseReqByDt,
| pKtrCertificateNm, pvarBriefTx, pvarKtrMatl, pvarKtrCtLastNm,
| pvarLocation, pnumCostProposal, pvarKtrComments, ptypAttachMetaBlob});

Any indication of what "_call" is referring to? That's obviously an
instance of java.lang.reflect.Method, so what method is it pointing to?
What does that method do?

| Using tcpdump, I have seen that the error occurs before sending any
| packets to the outside service.

What type of message-passing are you using? SOAP? XML-RPC? REST? Are you
using a particular library? Looks like Axis. Have you asked the Axis
folks about this?

For testing purposes, could you use a more recent JVM? Sun's Java 1.6
has an option for emitting a heap dump whenever an OOME occurs:

- -XX:+HeapDumpOnOutOfMemoryError

It's possible that your application simply needs more memory than it has
been configured to use. I saw your 1.5GB heap configuration, but it
would be good to verify that the JVM is actually respecting that by
observing the memory values within the running JVM.

You can write yourself a little JSP that dumps memory information from
the java.lang.Runtime object (or just use the one I wrote called
SessionSnooper which you can find here:
http://www.christopherschultz.net/projects/java/), or you can install
something like Lambda Probe (it's a webapp -- easy to install) which
gives you a ton of other information, too. Just make sure that your heap
isn't small like 64MB or something like that. Your 'top' output would
suggest that the heap is larger, though.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgrH/8ACgkQ9CaO5/Lv0PBWlwCgp4no45qxw5IiYA+vDWitS3C6
fmEAn0g7LMo04NWfvR5fj3xM9LW8jgK1
=6MD1
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message