galera, quando eu abro uma conexao jdbc com o oracle é criado uma sessao para essa conexao na tabela v$session. La existe um sip, serial entre outros campos. Eu gostaria de saber como posso recuperar atravez da conexao jdbc algum identificador que me ligue com a sessao do oracle?? Abraços
Informações sobre sessao oracle
5 Respostas
Cara, se eu entendi direito o seu problema, uma possível solução seria a seguinte:
Você pode fazer uma chamada para a procedure DBMS_APPLICATION_INFO.SET_CLIENT_INFO (mais informações em http://www.unix.org.ua/orelly/oracle/bipack/ch07_02.htm), passando um identificador, por exemplo. Assim, você consegue recuperar o registro relacionado à sua sessão fazendo uma consulta em cima do valor que você setou.
Pronto! Agora você consegue os valores contidos na tabela V$SESSION relacionados à sua sessão.
[]'s.
Keike, mais que identificador seria esse?? É exatamente essa questao. Pq o que eu gostaria de fazer eh algo do tipo killar a sessao do oracle usando o comando kill, mais para mim fazer isso eu preciso saber o sid e o serial da sessao, ai que ta. Como vou saber la na tabela qual é a minha sessao já que o usuario de conexao sempre sera o mesmo, e a maquina q conecta sempre sera o servidor?
Simples cara. Por exemplo, digamos que você abriu uma conexão para fazer uns updates nas suas tabelas. antes da execução dos comandos, você chama a procedure acima passando uma valor qualquer, tipo assim:
CALL DBMS_APPLICATION_INFO.SET_CLIENT_INFO('mizael');
Depois que a procedure for executada, você faz uma query assim:
SELECT *
FROM V$SESSION
WHERE CLIENT_INFO LIKE 'mizael'
Pronto! O resultado desse select são os valores da tabela V$SESSION que correspondem à sua sessão aberta para a realização dos updates.
Sacou?
[]'s.
hummmmmmmmmmmm, entao quer dizer q chamando essa funcao eu dou um identificador a minha conexao la na tabela de sessoes eh isso??
Nossa cara, perfeito, vlwwwwwwwwwww :*