Passando ClientInfo / ClientIdentifier no syscontext / conexão com o Hibernate para fins de auditoria

Eu tenho um serviço web que processa inserções / dados atualizados no DB. Quando o cliente chama esse serviço da web,ID do usuário(usuário atualmente conectado ao portal) será enviado em Solicitação. Preciso passar essa conexão userId para Db ou configurá-la emcontexto sys paraFinalidade da auditoria. temos tabelas de auditoria existentes e gatilhos para inserções / atualizações na tabela de auditoria após a inserção / atualização na tabela real. Então, para acompanhar essas alterações, preciso passar de alguma forma esse UserId paraconexão para que ele possa ser recuperado do banco de dados do Sys Context ou $ session e inserido na tabela Audit. Atualmente, estou usando transações Spring e Hibernate para processar dados com o DB.

Tentei definir informações do cliente no Connection, mas não está funcionando. Eu tentei abaixo:

Session session=sessionFactory.getCurrentSession();
SessionImpl sImpl=(SessionImpl) session;
Connection connection=sImpl.connection();
connection.setClientInfo("ClientUser", "ABC");

E também estou tentando definir informações do cliente chamando o procedimento armazenadoDBMS_APPLICATION_INFO.SET_CLIENT_INFO antes de executar a operação no banco de dados toda vez a partir do código do aplicativo. mas não sou capaz de processar se é uma maneira correta de lidar com isso.

Estou tentando com drivers OCI e thin JDBC, mas não consigo encontrar uma maneira de definir esse ID de usuário.

Alguém pode me informar se existe alguma maneira eficiente de passar a ID do usuário no contexto sys ou com o Connection. Atualmente estou usandohibernate4, Spring, servidor Websphere, banco de dados Oracle.

Estou usando Spring @Transactional para manipular conexões e transações de hibernação para executar operações no DB.Connections são do pool de conexões e estou usandoorg.springframework.jndi.JndiObjectFactoryBean parafonte de dados.

existe alguma maneira de ter interceptador ou wrapper em torno da conexão para configurá-lo quando obtemos a conexão do pool de conexões.

Alguém já fez isso antes?

questionAnswers(1)

yourAnswerToTheQuestion