2012-06-26 3 views
1

Это я следую за question, который я опубликовал ранее, где мне посоветовали использовать пул соединений для подключения к моей базе данных Postgres. Согласно документации Postgres' jdbc4, они упоминают, что есть два типа пулов, которые можно использовать. Один с сервером приложений и один без сервера приложений. Я планирую не использовать сервер приложений по причинам, которые я буду поднимать позже. У меня был быстрым вопрос о пуле соединений без App Server:Postgres SQL Pool Connection без сервера приложений

Если вы уверены, что вы хотите использовать это, то вы должны установить свойство DataSourceName, Databasename, пользователь и пароль (если требуется для Пользователь). Параметры для serverName, portNumber, initialConnections и maxConnections являются необязательными. Обратите внимание, что только соединения для пользователя по умолчанию будут объединены! Соединения для других пользователей будут нормальными не объединенными соединениями и не будут учитываться с максимальным пределом размера пула.

Что является пользователем по умолчанию? Это пользователь/роль базы данных Postgres? Достаточно ли было бы добавить эти пакеты в мой интерфейс и иметь сервер, посвященный только запуску Postgres?

Причина, по которой я склоняюсь к этому, заключается в том, что раньше я работал с Glassfish, и, хотя связь и настойчивость с источником данных были легкими, я столкнулся с проблемами, порождающими классы сущностей из уже созданной базы данных Postgres (240 столов, см. here и here).

Поэтому я отказался от идеи использования EJB и Glassfish и вместо этого использовал простой шаблон Singleton с подключением jdbc для подключения к моей базе данных. Приложение работает довольно быстро, поэтому я склоняюсь к тому, чтобы не использовать сервер приложений. Это правильное впечатление, или я ложно проинформирован?

+0

Пользователь по умолчанию является тем, который определен в свойствах пула соединений. –

+0

Спасибо. Если бы я выбрал фреймворк вроде c3p0, мне просто нужно было бы добавить его в мое приложение ... и ничего не изменить на моем сервере, верно? У моего сервера только Postgres SQL. – greatkalu

+0

Исправить. Пул соединений относится только к серверу приложений. PostgreSQL не знает, что соединение связано с пулом или нет. –

ответ

0

Сначала есть слишком мало информации, чтобы определить, поможет ли сервер приложений или нет. как правило, это проблема с меньшей скоростью, и в большей степени это вопрос повторного использования логики в разных приложениях на предприятии.

Во-вторых, для объединения пулов необходимо помнить, что вы не можете повторно использовать соединение для одного пользователя в качестве другого пользователя. Таким образом, вы ожидаете иметь, как правило, пул соединений под одним пользователем приложения. Это настраивается на уровне пула соединений. у вас может быть несколько пулов соединений, соединяющих разные приложения с db у разных пользователей.