Spring GetHibernateTemplate () или GetSession () - PullRequest
1 голос
/ 25 августа 2011

Я столкнулся с проблемой из-за неправильного понимания методов Spring -> GetHibernateTemplate / GetSession.Когда я использую собственный запрос sql [getSession (). CreateSQLQuery (nativeQuery)] для извлечения некоторых записей из базы данных, мне кажется, что возникает ситуация тупиковой ситуации, и после N запросов количество пулов соединений db исчерпывается.Это пример того, что я вижу, когда проверяю это в БД "ПОКАЗАТЬ СТАТУС ДВИГАТЕЛЯ INNODB":

MySQL thread id 1106, query id 1360 localhost 127.0.0.1 test2
---TRANSACTION 0 19491, not started, OS thread id 2960035840

Что я делаю не так?Что такое хороший способ запуска собственных запросов sql?

1 Ответ

0 голосов
/ 26 августа 2011

Spring прозрачно обрабатывает открытие и закрытие соединений с БД. Таблица в начале главы доступа к данным документации показывает, что вы обрабатываете и что обрабатывает Spring, последняя включает в себя открытие и закрытие соединений. Кажется маловероятным, что сама весна является проблемой.

Вместо этого, есть две возможности, почему вы можете столкнуться с вашей ситуацией:

  1. Ваш пул соединений настроен неправильно
  2. Вы этого не понимаете, но у вас есть неконтролируемые или действительно длительные / неэффективные запросы

Если вы включите запись в журнал для отладки, это даст больше подсказок.

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