On 10/26/06, Richard Koch <[EMAIL PROTECTED]> wrote:
It sounds like it, but we are not using SingleThreadModel anywhere in our code. Also we do not set our JSPs to turn off threads either (which can be done through <%@ page isThreadSafe="false" %>). I have not started digging into the apache code yet; perhaps SingleThreadModel is used in the file upload components...?
There's certainly nothing in Commons FileUpload itself that could do this, since it simply runs in the current thread (i.e. the one the container selected for processing the request). It's more likely to be something in Tomcat, I would think, since it's the thing that's managing all the threads in this scenario. -- Martin Cooper Someone mentioned the idea that this might also be a file io issue that
blocks the whole tomcat java process, but I have yet to prove that. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Cooper Sent: Thursday, October 26, 2006 1:53 PM To: Jakarta Commons Users List; [EMAIL PROTECTED] Subject: Re: fileupload makes tomcat 5.5 unresponsive for other users On 10/25/06, Richard Koch <[EMAIL PROTECTED]> wrote: > > Unfortunately, tomcat is not responding to *any* requests until the upload > completes. After the upload, everything is fine. This sounds a whole lot like you're using SingleThreadModel in the servlet that's doing the upload. -- Martin Cooper We've reviewed our tomcat settings, and have not found anything that has > helped either--I was thinking that we might only be using one thread due > to > some mistaken configuration, but that is not the case. > > We see the CPU usage climb up to about 20% when dealing with large file > uploads, but it is no where near maxing our cpu usage on our dual xeons. > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of James > Carman > Sent: Wednesday, October 25, 2006 1:07 PM > To: Jakarta Commons Users List; [EMAIL PROTECTED] > Subject: Re: fileupload makes tomcat 5.5 unresponsive for other users > > Are you saying that Tomcat isn't responding to any other of the same type > of > requests (other file uploads) or it's not responding to *any* requests at > all (even requests to other webapps within the same instance)? > > On 10/25/06, Richard Koch <[EMAIL PROTECTED]> wrote: > > > > I am using the commons fileupload 1.1.1 along with the JSP/JSF tag > > <t:inputFileUpload> tag. Out application server is Tomcat 5.5. > > > > > > > > When a user uploads a file, tomcat becomes completely unresponsive to > any > > other requests until the upload is complete-this is the case no matter > > what > > the file size is 8K to 40MB. > > > > > > > > Watching garbage collection logging details, I see that the file upload > > component always seems to take at least 32MB or 42MB, and then it is > > quickly > > collected when the upload is completed, and the tomcat server is then > > available to everyone. > > > > > > > > I used the input stream from the > > org.apache.myfaces.custom.fileupload.UploadedFile.getInputStream() call, > > and > > then write it out using the below method. > > > > > > > > Any ideas what would be causing tomcat to be non-responsive to any other > > request until the upload is finished? Are there any configuration > tweeks > > that can made to help. I have scanned the mail archives, wiki, and > > documentation without luck. Perhaps I have missed something? > > > > > > > > Thanks. > > > > > > > > Rich K. > > > > > > > > ---------------------------------------------------------------------------- > > > > > > ---------------------------------------------------------------------------- > > --------------------------------------------------- > > > > > > > > /** > > > > * Write the given input stream to the given file identified by > the > > targetFilePath string. > > > > * @param inputStream > > > > * @param targetFilePath > > > > * @throws IOException > > > > */ > > > > public static void writeInputStreamToFile(InputStream inputStream, > > String targetFilePath) throws IOException { > > > > InputStream in = > > > > new BufferedInputStream(inputStream); > > > > OutputStream out = > > > > new FileOutputStream(targetFilePath); > > > > try { > > > > byte[] buffer = new byte[64 * 1024]; > > > > int count; > > > > while ((count = in.read(buffer)) > 0) { > > > > out.write(buffer, 0, count); > > > > } > > > > } finally { > > > > in.close(); > > > > out.close(); > > > > } > > > > } > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]