poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Zalewski <zalew...@optonline.net>
Subject RE: Locking up Application Server when creating new HSSFWorkbook
Date Sat, 10 Jan 2004 03:25:01 GMT
Do you have sufficient physical RAM on the web server machine? If you do
not, you will see CPU utilization will go *down* to less that 5% while
garbage collection is occurring. And garbage collection could take several
minutes. If you monitor CPU utilization while an active web application is
running, and if the application server has sufficient physical RAM, you
should see narrow spikes that occur at regular intervals.

How much physical RAM is available on the machine? You say it runs Linux,
but you did not answer if the web server is on the same machine? Are you
using DB2 for the repository? Is DB2 running on the same machine? I assume
the webserver is IHS? <-- Hehe exchange wants to change that to HIS.  IHS =
IBM HTTP Server = Apache.

Also, the part that instantiates the HSSFWorkbook - which constructor? An
empty workbook? Or are you reading a 7 MB Excel file?

You need to trace the garbage collection activity. It could be that garbage
is being collected more than one time during the POI process.

-----Original Message-----
From: Pat.Klein@moorewallace.com [mailto:Pat.Klein@moorewallace.com]
Sent: Friday, January 09, 2004 9:42 AM
To: poi-user@jakarta.apache.org
Subject: RE: Locking up Application Server when creating new HSSFWorkbook

We have tried most of the suggestions provided without luck (and thanks for
the responses).  Garbage collection appears to be functioning fine.  CPU
utilization remains low.  As we have been testing this more, one interesting
thing that we have found is that other user requests to the server will
eventually be processed while the HSSFWorkbook is being instantiated but not
in a timely manner.  In other words, if I open 2 browsers and start the part
that uses POI the application will appear to hang to the second browser.
But a request made by the 2nd browser while the app seems to be hung will
eventually come back before the POI piece completes in the first browser.

More info on our environment - 1 WAS 5.0.1 running on Linux, JRE 1.3.1.

-----Original Message-----
From: Michael Zalewski <zalewski@optonline.net
<mailto:zalewski@optonline.net> >@MOORECORP
Sent: Wednesday, January 07, 2004 7:44 PM
To: Klein, Pat (WTC/Lisle)
Subject: RE: Locking up Application Server when creating new HSSFWorkbook

If the Admin Console also hangs up, that is a sign that something else is
going on. The Admin server runs in a separate JVM, so it won't be as
severely impacted by garbage collection on your web application. The Admin
Console still runs, even if a Web Application Server is entirely locked up.
However, a large amount of garbage collection may slow the admin console
down to a crawl, because of 100% CPU utilization, especially under Windows
single processor systems.

Is your server running on Windows? And are there multiple processors?
Another possibility might be that requests fail to get processed because of
network I/O. Garbage collection might cause worse lockups of the admin
console if only a single processor.

What version of Websphere? Probably 4.0? If 5.0 or 5.1, you might consider
acoliver's suggestion of using a newer JRE for your web application. If you
are using 4.0, you can use only JRE up to 1.3 I believe. But parallel
garbage collection will not help much if your admin console (separate JVM)
is also locking up.

When you turn performance monitoring on, look to see if there are *several*
garbage collection sweeps made in between the instantiation of HSSFWorkbook
and the next line. (I assume you are reading a large workbook - This is
exactly the problem case for POI on a web server environment).

-----Original Message-----
From: Pat.Klein@moorewallace.com <mailto:Pat.Klein@moorewallace.com>
Sent: Wednesday, January 07, 2004 9:04 AM
To: zalewski@optonline.net <mailto:zalewski@optonline.net>
Subject: RE: Locking up Application Server when creating new HSSFWorkbook

Thanks for the response.  When the server hangs,everythingrunning on
Websphere hangs- adminconsole and all.  We have been able to trace the
moment of hang up to the instantiation of the HSSFWorkbook.
We are currently using the internal HTTP server andlockups can be duplicated
everytime we run a large excel file.  I will try turning on the tracing and
see what I see.
-----Original Message-----
From: Michael Zalewski <zalewski@optonline.net
<mailto:zalewski@optonline.net> >@MOORECORP
Sent: Tuesday, January 06, 2004 7:12 PM
To: POI Users List
Subject: RE: Locking up Application Server when creating new HSSFWorkbook
I have also had similar problems (Websphere 4.0). I think in my case it was
because of an excessive number of objects being created and destroyed (i.e.,
garbage collection tool several seconds). But I never fully diagnosed the
problem (And I am not even sure that the problem was due to POI).
I don't know what you mean when you say 'Websphere app server hangs up'. Do
you mean that there is no response from the admin console? No response from
any servlet? Or just no response from the servlet that creates a
HSSFWorkbook? Do you have a load balanced environment? Could session
serialization be a problem? (Are you putting the HSSFWorkbook into a
HttpSession, and letting Websphere try to persist the session?) Are you
trying to send a large spreadsheet to the client with https?
You could try the following:
1) Use Websphere's own internal HTTP Server, instead of Apache/IIS/Netscape
2) Lower the amount of heap memory used. See if that makes the lockups more
3) Turn on Garbage Collection tracing. See if generating the HSSFWorkbook
causes many sweeps.
I think that Garbage Collection is the most likely culprit. (A JVM can do
very little while a garbage collection is in process. That would cause your
application to freeze. But the Admin Console and other application servers
should continue to respond).
If the problem is limited to a single servlet, you might also be
synchronizing the servlet object on the request. For example, if there is a
servlet that implements SingleThreadModel, (or if you set it up that way in
web.xml), then subsequent requests for workbooks will appear to freeze until
the first workbook is completely downloaded.
-----Original Message-----
From: Pat.Klein@moorewallace.com <mailto:Pat.Klein@moorewallace.com>
Sent: Tuesday, January 06, 2004 11:26 AM
To: poi-user@jakarta.apache.org <mailto:poi-user@jakarta.apache.org>
Subject: Locking up Application Server when creating new HSSFWorkbook
We are running into a strange issue on our application.  When we are
reading in an existing Excel spreadsheet (about 3.5 MB) and creating a
new HSSFWorkbook, our entire WebSphere app server hangs up.  Once the
workbook is created, all is well again.  As far as we can tell, there
are plenty of system resources available (CPU and memory).  The POI
version that we are using is 2.0 RC1.

Anyone run into a similar problem?

Thanks in advance...
To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-user-help@jakarta.apache.org

To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-user-help@jakarta.apache.org

View raw message