Создание BLOB - пространства Java кучи - PullRequest
0 голосов
/ 24 апреля 2018

Я передаю multipartFile от контроллера к службе и внутри службы, пытаясь создать Blob из этого multipartFile.Проблема в том, что файлы, которые я использую, действительно большие (4-5 ГБ), и я получаю сообщение об ошибке "Java Heap Space" (нет, я не могу выделить больше памяти для приложения)

Есть ли способпоток это или что?Я использую код сервиса Java 7

:

def uploadFile(MultipartFile file){
    Sql sql = utilsService.retrieveSQLFromDataSource()
    Blob blob = dataSource.connection.createBlob()
    blob.setBytes(1, file.bytes)
    ...
}

1 Ответ

0 голосов
/ 27 апреля 2018

Вот соответствующая часть - я моделирую большой BLOB, многократно записывая небольшой фрагмент.

Важная часть - создание временного BLOB .

def bytes = data.getBytes()
BLOB tempBlob = BLOB.createTemporary(con, true, BLOB.DURATION_SESSION);
def os = tempBlob.setBinaryStream(0);
20000.times { 
 os.write(bytes,0,bytes.size())
}
os.close()
int len = tempBlob.length()
println "length $len"

stmt.setBLOB (1,tempBlob)

stmt.execute()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...