Предистория: было некое приложение работяющее с базой, каждый пользователь приложения был зарегистрирован в базе как пользователь субд (как это культурно назвать?), и соотв. коннектился под своим уникальным именем, в итоге SQL программисты часто использовали SQL сессию, временные таблицы надеясь что они друг от друга изолированны и т.д.
Итак, есть веб приложение (есесно на Java) использующее процедуры из вышеописанной системы, в этом приложении есть записи и поиск этих записей, все вроде работает, но: - делаем посик и находим некоторые особые записи - просматриваем их - заходим под другим вользователем в веб приложение - повторяем поиск и он возвращает неверный результат, - просматриваем записи - повторяем поиск и он работает верно
Опытным путем установленно, что глюк поиска происходит только в тех соединениях в которых предыдущий пользователь запрашивал данные записей. Т.е. несмотря на то что соединение и транзакция закрылись и логично предположить что все изменения в сессии были отменены, на самом деле этого не произошло.
Вопрос: как «сбросить» состояние SQL соединения?
База DB2, сервер Tomcat 5.5.27 подключение создается через настроенный пул соединений: Код:
	<Resource Schema="TEST"
	          auth="Container"
	          connectionProperties="retrieveMessagesFromServerOnGetMessage=true;clientProgramName=TEST/WEB;driverType=4;readOnly=false;currentSchema=TEST;"
	          driverClassName="com.ibm.db2.jcc.DB2Driver"
	          factory="org.apache.commons.dbcp.BasicDataSourceFactory"
	          maxActive="20"
	          maxIdle="10"
	          maxWait="10000"
	          name="jdbc/testDS"
	          removeAbandoned="true"
	          removeAbandonedTimeout="300"
	          scope="Shareable"
	          testOnBorrow="true"
	          testWhileIdle="true"
	          type="javax.sql.DataSource"
	          url="jdbc:db2://localhost:50002/testdb"
	          username="test"
	          password="1"
	          validationQuery="values 1" />
ps. да я знаю что архитектуру сего беобразия нужно переделывать



