Я работаю над проектом, в котором дизайн должен иметь базу данных для каждого клиента.Мне удалось прочитать в Tomcat документацию и установить пул соединений.Поскольку базы данных создаются приложением автоматически при регистрации клиента, мне нужен был способ создания динамического пула.следующий пост о переполнении стека дал подсказку о том, что требуется:
Использование динамического источника данных с Tomcat
, и я нашел в Интернете страницу, показывающую, как это сделать:
Написание и использование Tomcat ObjectFactory
У меня все еще есть несколько вопросов:
1 - кто отвечает за управление соединениями в пуле?в объявлении источника данных в context.xml мы определяем некоторые параметры, которые управляют различными аспектами, такими как максимальное время простоя и максимальное количество соединений, и т. д. Обрабатывает ли это tomcat или я должен заботиться об этом в реализации, которую я выполняю при кодированиикласс, который реализует интерфейс ObjectFactory?
2 - Как я понимаю, когда соединения закрыты, они возвращаются в пул.Предположим, что я делаю динамический пул, который имеет максимум 20 соединений.и затем 30 клиентов входят в систему. Таким образом, пул возвращает 20 соединений для первых 20 клиентов.когда эти соединения закрыты, они возвращаются в пул, и следующие 10 клиентов будут запрашивать соединения с базами данных, отличными от уже найденных в пуле.и вопрос: пул автоматически отбросит 10 соединений и добавит новые с правильными базами данных?если это так, имеет ли это преимущество перед открытием соединения по запросу без пула?(спросил с мыслью о сайте, который будет сильно загружен. Количество разрыва соединения, если я правильно угадал, может быть очень высоким, что не оправдывает то, что пул должен делать: минимизировать создание соединений с нуля)
3- Я также хотел спросить, нормально ли это реализовать самостоятельно (учитывая, что я новичок в этом) или мне следует найти библиотеку, которая делает это (в случае, если это не является задачей для новичка в этой области).
4 - есть ли альтернативы для пулов соединений для управления соединениями с несколькими базами данных, которые добавляются динамически и эффективно?(в случае, если источник данных не поможет), какие подходы используются в подобных ситуациях?
Заранее благодарим вас за ваши усилия.