У меня есть конвейер интеграции Spring, который извлекает документ с SFTP-сервера и сохраняет его в базе данных Postgresql (выполняется Spring data / hibernate).После успешного конвейера выборки sftp получите fileName и контент (как byte []) и сохраните его в базе данных.
У меня есть 2 основные проблемы:
Проблема заключается в том, что я не ожидал, что клиент загрузит файлы ZIP размером 100–200 МБ, которые конвейерный файл читает, но не удается сохранить.
Иногда (НЕ ВСЕГДА) «java.lang.OutOfMemoryError: выбрано пространство кучи Java», но увеличение памяти кучи временно разрешено, что, возможно, существует решение, которое делаетне требуется загружать все содержимое файла в память перед сохранением в базе данных?
Только сообщение журнала, которое регистрируется во время транзакции:
"thread":"task-scheduler-8","location":"org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.copyFileToLocalDirectory(AbstractInboundFileSynchronizer.java:430)","level":"WARN","message":"The remote file '-r-x------ 1 0 0 81062125 May 15 15:06 test.zip' has not been transferred to the existing local file './transfered-files/test.zip'. Consider removing the local file."}
Я понимаю, что должен поделитьсякод, но на самом деле не может (правовые вопросы).