Я использую драйвер mssql-jdbc в версии 6.4.0-jre8.Я выполняю простой запрос SELECT *
, который может вернуть миллионы строк.Чтобы избежать ошибки OOM, я определил responseBuffering=adaptive
и fetchSize=10000
.Я также гарантировал, что ResultSet
- это type_fetch_only
и concur_read_only
.Несмотря на это, я все еще получаю ошибку OOM.Размер кучи немедленно возрастает до предела XMX.
Ниже вы можете найти анализ дампа памяти.Интересно, почему TDSPackets не освобождаются достаточно рано?
![enter image description here](https://i.stack.imgur.com/GRoHD.png)
Буду признателен за любые предложения, как избежать ошибки OOM здесь.Спасибо!