Foro ZonaOracle
Septiembre 06, 2010, 10:05:47 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
Páginas: [1]
  Imprimir  
Autor Tema: Problema con OAS y tablas de sesion  (Leído 611 veces)
eduardob
Newbie
*
Mensajes: 1


Ver Perfil
« : Julio 17, 2008, 07:40:11 »

Que tal, tengo una aplicacion Web con servlets, usaba tomcat, ahora me pidieron cambiar a OAS. Mi problema es el siguiente, en toda transacción yo guardo el usuario que se conecta en una tabla de sesion global temporary, y en todos los historicos con un trigger obtengo de la tabla de sesion el usuario. Eso con tomcat funcionaba correctamente, cuando lo hago con OAS, leí que te genera el pool de conexion, en donde cada conexion es fisica y por lo tanto es una sesion en la base de datos, pero la aplicacion al hacer una petición de conexion, genera una conexión lógica, por lo tanto 2 conexiones lógicas pueden tener la misma conexión física, o eso es lo que yo entendí, y asi es, resulta que haciendo pruebas de concurrencia, el trigger de la tabla histórico cuando hago:

select sesi_USUARIO into :new.USUA
from tabla_sesion;

Me trae el registro de tabla_sesion del otro usuario conectado, y obviamente le pone en toda la torre a mi seguridad, pues en el historico que genero se registra como que las modificaciones que yo hice las hizo el otro usario.

Que puedo hacer? bueno me conecto a OAS de la sig manera:

  public Connection Conectar(HttpSession ses) throws NamingException, SQLException {
    javax.naming.InitialContext ic  = new javax.naming.InitialContext();
    javax.sql.DataSource dataSource = (javax.sql.DataSource)ic.lookup("jdbc/NOMBRE");
    java.sql.Connection conection   = dataSource.getConnection();
    conection.setAutoCommit(false);
   
    try {
      String Usuario = ses.getAttribute("User") == null ? "" : ses.getAttribute("User").toString();
           
      Utilerias u = new Utilerias();     
      u.setTsession(conection, Usuario ,IP); 
    } catch(Exception e) {
      conection = null;
      throw new SQLException("Error al conectar: " + e.getMessage());
    }
    return conection;
  }
En línea
Páginas: [1]
  Imprimir  
 
Ir a:  

Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC
Minerva Theme | The Simple Machines Forum Directory