Доброе утро всем,
У меня есть конечная точка Soap, созданная с помощью SpringBoot 1.5.8.RELEASE (Java 8), которая подключается к базе данных ORACLE12C и возвращает некоторые наборы данных. Для некоторых методов я использовал JpaRepository, в то время как для других запросов я создал запрос через javax.persistence.criteria.CriteriaBuilder, экземпляр которого был создан с помощью javax.persistence.EntityManager.getCriteriaBuilder () (EntityManager - @Autowired через spring).
Я заметил, что после превышения 100 запросов пул соединений перестал устанавливать соединения ( [http-nio-80-exec-4] Тайм-аут: пул пуст. Невозможно получить соединение за 30 секунд, недоступно [размер: 100; занято: 100; бездействует: 0; последнее ожидание: 30000]. ) в конкретном случае: случай, когда было выполнено 100 запросов с использованием объекта типа org. hibernate.ScrollableResults.
ScrollableResults scroll = em.createQuery(cq).setHint(QueryHints.HINT_FETCH_SIZE, max).unwrap(org.hibernate.Query.class).scroll(ScrollMode.FORWARD_ONLY);
List<Document> list = new ArrayList<>(max);
for (int i = 0; scroll.next() && i < max; i++) {
list.add((Document) scroll.get(0));
}
scroll.close();
после прочтения некоторых примеров и документации, которые не привели к решению, я провел тест, пытаясь перевести код следующим образом:
List<Document> list = em.createQuery(cq).setFirstResult(0).setMaxResults(max).getResultList();
и все работает отлично; однако мне нужно сохранить режим «прокрутки», и все различные эксперименты провалились.
Я безуспешно пытался поиграть со свойствами "spring.datasource.tomcat".
Может кто-нибудь мне помочь?