При построении отчёта с использование библиотеки для подключения к Oracle происходит следующая проблема.
1. Пользователь проходит авторизацию, к примеру, как USER1, работает в программе, строит отчёт Stimulsoft, в который передаётся соединение через:
Код: Выделить всё
report.Dictionary.Databases.Clear();
report.Dictionary.Databases.Add(new StiOracleDatabase("connect", connectionString.ConnectionString));
2. Пользователь через встроенные средства ПО делает смену учетной записи на USER2. Старые соединения с Oracle закрываются, происходит создание новых подключений к базе под новой учетной записью.
Пользователь формирует отчёт и у него некорректные данные, а именно от пользователя USER1.
Что делали:
- Пробовали разные библиотеки ODP.NET и Devart, результат отрицательный
- Пробовали разные версии Stimulsoft, результат отрицательный
- Пробовали разные версии Oracle, результат отрицательный
- Думали проблемы из-за пулинга, выключали его и также принудительно убивали все сессии на БД, результат отрицательный
Если пользователь USER1 работал в программе и не строил отчёт, то сменившись на USER2 отчёт строится корректно.
Также чтобы отчёт строился правильно в случае проблемы помогает открытие его в ПО в режиме редактора и просто закрытие или получение данных по колонкам, то он строится затем правильно.
Складывается ощущение, что используется какой-то кэш где-то. StiOptions.Engine.ReportCache и другие свойства кэширования в отчёте - выключено.
С чем это может быть связано?