Еще одна проблема - ваше заявление о том, что «процедура длится от 30 до 50 секунд».Сколько времени занимает обработка через Java и сколько времени ожидает, пока база данных обработает оператор SQL?Нужно ли действительно добавлять оба раза, чтобы определить максимальное количество соединений, которое вам нужно?
В общем, вы должны получить соединение, использовать его и как можно быстрее закрыть его после обработки логики Java, если это возможно.Если возможно, вам следует избегать получения соединения, выполнять кучу обработок на стороне Java, вызывать базу данных, выполнять больше обработки Java, а затем закрывать соединение.Вероятно, нет необходимости держать соединение открытым так долго.При таком подходе следует помнить о том, какую обработку (включая доступ к базе данных) необходимо сохранить в одной транзакции.
Если, например, из 50 секунд выполнения только 1 секунда доступа к базе данныхнеобходимо, тогда вам, вероятно, не нужно такое максимальное максимальное количество соединений.