複数のファイルのアップロードを行うためにサーブレットを使用しています (Apache Commons FileUploadを使用)。私のコードの一部を以下に掲載します。私の問題は、ファイルを何度もアップロードすると、アプリサーバーのメモリ消費量が大幅に増加することです。Apache Tomcat サーバーはメモリにハングアップしているようで、決してメモリを返しません。ヒープ領域がメモリ不足です。時々、メモリ不足の例外が発生し、スローされjava heap space error
ます。
すべての入力ストリームを閉じました。問題は にあると思いますServletFileUpload
。閉じる方法を教えてください。
ServletContext context=this.getServletConfig().getServletContext();
DiskFileItemFactory factory = new DiskFileItemFactory();
FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(context);
factory.setFileCleaningTracker(fileCleaningTracker);
if (isMultiPart) {
upload = new ServletFileUpload(factory);
try {
itr = upload.getItemIterator(request);
while (itr.hasNext()) {
item = itr.next();
if (item.isFormField()) {
...