У меня есть сценарий, в котором мне нужно передать из БД содержимое файла непосредственно в клиентский браузер.
Поэтому я использую простой jdbc rs.getBlob()
, а затем blob.getBinaryStream();
позже записываю в выходной поток http.
Что я заметил (очень хорошо), так это то, что как только я получаю входной поток через большой двоичный объект, соединение с базой данных перенастраивается на пул источников данных. (веблогика)
Теперь я спрашиваю вас, мои наблюдения верны? потому что я боялся, что для загрузки, которая займет много времени, соединение с базой данных останется на запросе, чтобы иметь возможность передавать файл.
По-видимому, после запуска потоковой передачи соединение с БД больше не используется.
здесь будет макет кода для лучшего понимания
@Trasactional
public void InputStream getIsFromBlob(....){
....
is = blob.getBinaryStream();
...
return is;
}
Позже этот метод используется в сервлете, скажем, и пишет, что контекст находится в потоке вывода http.
Спасибо