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();

        }

      }

Reply via email to