Многопользовательский вход в Spring с использованием c3p0 - PullRequest
0 голосов
/ 15 февраля 2012

В моем приложении я использую c3p0 для пула соединений. Я предоставляю имя пользователя и пароль в файле контекста. Конфигурация ниже:

<bean id="datasource"
            class="com.mchange.v2.c3p0.ComboPooledDataSource" lazy-init="true" destroy-method="close">
            <property name="driverClass" value="com.ibm.as400.access.AS400JDBCDriver" />
            <property name="jdbcUrl" value="${url}" />
            <property name="user" value="${username}" />
            <property name="password" value="${password}" />    </bean>

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

1 Ответ

0 голосов
/ 15 февраля 2012

В вашем сценарии не имеет никакого смысла иметь пул соединений, так как каждый сеанс должен будет открывать свое собственное соединение.

Было бы лучше открыть соединение, когда пользователь входит в системуи затем поддержание того же соединения в области сеанса.Или открывайте новое соединение каждый раз, когда вам это нужно, но это лишние издержки, которых вы можете избежать.Просто будьте осторожны с утечкой ресурсов.Поскольку каждому входящему в систему пользователю требуется свое собственное соединение, вам нужно будет установить тайм-ауты сеансов довольно низкими, чтобы избежать массы открытых соединений в оставленных сеансах.

...