У меня есть веб-служба, которая обрабатывает вставки/обновления данных в БД. Когда клиент вызывает этот веб-сервис, UserId (в настоящее время зарегистрированный пользователь на портал) будет отправлен в запрос. Мне нужно передать это подключение userId к Db или установить его в sys context для Цель аудита. у нас есть существующие таблицы аудита и триггеры для вставки/обновления в таблицу аудита после вставки/обновления в фактической таблице. Поэтому для отслеживания этих изменений мне нужно передать этот UserId каким-либо образом на соединение, чтобы его можно было получить из БД из Sys Context или $ session и вставить в таблицу Audit. В настоящее время я использую транзакции Spring и Hibernate для обработки данных с помощью БД.Передача ClientInfo/ClientIdentifier в syscontext/соединение с Hibernate для целей аудита
Я попытался установить информацию о клиенте в Connection, но он не работает. Я попытался ниже:
Session session=sessionFactory.getCurrentSession();
SessionImpl sImpl=(SessionImpl) session;
Connection connection=sImpl.connection();
connection.setClientInfo("ClientUser", "ABC");
А также я пытаюсь установить данные клиента с помощью вызова хранимой процедуры, DBMS_APPLICATION_INFO.SET_CLIENT_INFO перед выполнением операции по БД каждый раз, когда от применения code.but я не посудить, если это правильный путь чтобы справиться с этим.
Я пытаюсь использовать оба OCI и тонкие драйверы JDBC, но не могу найти способ установить этот идентификатор пользователя.
Может ли кто-нибудь сообщить мне, есть ли эффективный способ передать идентификатор пользователя в контексте sys или в Connection. В настоящее время я использую hibernate4, Spring, Websphere Server, Oracle DB.
Я использую Spring @Transactional для обработки Hibernate соединений и операции для выполнения операции по DB.Connections взято из пула подключений, и я использую org.springframework.jndi.JndiObjectFactoryBean для DATASOURCE.
есть ли способ иметь перехватчик или обертку вокруг соединения, чтобы установить его, когда мы получим соединение из пула соединений.
Кто-нибудь сделал это раньше?