На одно соединение приходится один сеанс. Похоже, у вас есть утечка соединения, где-то вы открываете новое соединение и не закрываете его должным образом. Одна из возможностей заключается в том, что вы открываете, используете и закрываете соединение внутри блока try
и обрабатываете исключение в блоке catch
или возвращаетесь раньше по какой-либо причине. Если это так, вам нужно убедиться, что закрытие соединения выполнено в finally
, иначе этого может не произойти, оставив соединение (и, следовательно, сеанс) зависшим. Открытие двух соединений в одной и той же области без явного закрытия между ними также может сделать это.
Я не знаком с C3PO, поэтому не знаю, как обрабатываются соединения или где и как накладывается ограничение в 1100; если у него (или у вас) есть пул соединений, а 1100, на которые вы ссылаетесь, является максимальным размером пула, то это не похоже на проблему, поскольку вы нажмете на ограничение пула до ограничения сеанса.
Вы можете заглянуть в v$session
, чтобы убедиться, что все сеансы исходят от JDBC, и ничего другого не подключается.
person
Alex Poole
schedule
08.03.2012