Hola ,
 
Tengo un problema de concurrencia. estoy creando una pagina web, mas bien una aplicacion web , a traves de Jsp y servlet.
 
He creado un servlet , que cada vez que es ejecutado, llama a una función que actualiza una tabla en mi base de datos PostgresSql.
 
Pongo el codigo aquí:
 
miServlet
.
.
JdbcMovimientosDao.actualizaMovimiento(fecha,estad  o);//aqui llama a actualizar
.
.
 
//fin del servlet
 
 Y aqui la funcion actualizaMovimiento(estado):
 
public static boolean actualizaMovimiento(Timestamp id, String estado) {
 
	Connection conn = null;
        PreparedStatement pStm = null;
        ResultSet rs = null;
        int filasactualizadas=0;
        boolean retorna =false;
        try {
        	conn = DriverManager.getConnection(Constantes.conexion,Co  nstantes.usuario,Constantes.pass);
            conn.setAutoCommit(false);
 
            String update = "update  mercado.movimientos set estado = ? where fechamodif = ?";
            pStm = conn.prepareStatement(update);
            pStm.setString(1, estado);
            pStm.setTimestamp(2, id);
            if((filasactualizadas = pStm.executeUpdate())>0)
            	retorna=true;
 
            pStm.close(); pStm = null;rs = null;
            conn.commit(); conn.close(); conn = null;
 
        } catch(Throwable t) {
            logger.error("Error: " + t.getMessage().toString());
            try {
                if(pStm != null) pStm.close();
                if(conn != null) {
                    conn.rollback();
                    conn.close();
                }
                return false;
            } catch(SQLException sqle) { }
        }
        return retorna;
}
 
 //final de la funcion
 
 
¿Como puedo hacer que se llame a esta función de manera concurrente, o sea que sea actualize la tabla mercado.movimientos, si es llamada desde varias sesiones diferentes a la vez, y esto no cause error en alguna de las actualizaciones?
 
Muchas gracias de antemano
 
Alfonso 
  
 

