Ver Mensaje Individual
  #20 (permalink)  
Antiguo 29/12/2004, 06:53
Machine80
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 20 años, 3 meses
Puntos: 0
ok, al cargar jboss me carga el datasource:
08:43:05,109 INFO [MySqlDS] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:service=LocalTxCM,name=MySqlDS to JNDI name 'java:/MySqlDS'

pero veo la lista de procesos y no existen las minimas de conexiones. Luego cuando solicito una conexión se crean las conexiones (las mínimas) y ocupo una de ellas.

Bueno, el código standar para obtener una conexión es:

Código PHP:
    try {
      
Context initCtx = new InitialContext();
      
Context envCtx = (ContextinitCtx.lookup("java:");
      
DataSource ds = (DataSourceenvCtx.lookup("MySqlDS");
      
Connection conn ds.getConnection();

      
DAOFactory mysqlFactory DAOFactory.getDAOFactory(DAOFactory.
          
MYSQL_ACTIVA);
      
mysqlFactory.getCentroAsistencialDAO(conn);

      
c.getCentroAsistencial(idCentro);
    }
    catch (
Exception ex1) {
      
System.out.println("Exception 1: Interconsultas" ex1.toString());
      
sessionContext.setRollbackOnly();
    }
    
finally {
      
c.getClose().closeAll();
      return 
s;
    } 
En la 5 linea básicamente indico que base de datos es, en la 6 obtengo un DAO específico y le paso la conexión y en la 7 invico un método del DAO.

si pasa alguna exception, hago rollback y finalmente cierro la conexión. El código del DAO es:

Código PHP:

public class MysqlCentroAsistencialDAO
    
implements CentroAsistencialDAO {
  private 
Closer closer null;
  private 
Connection c=null;
  public 
MysqlCentroAsistencialDAO(Connection conn) {
    
this.c=conn;
    
closer = new Closer(false);
    
closer.add(conn);
  }

  public 
CentroAsistencial getCentroAsistencial(int idCentrothrows Exception {
    
String sql1 =
        
"SELECT centro FROM centroAsistencial WHERE idCentroAsistencial=" +
        
idCentro;
    
ResultSet r MysqlActivaDAOFactory.select(sql1c);
    ....
    ....
    return 
centro;
}

public 
Closer getClose() {
  return 
closer;


Bueno, el Closer es una clase en la que uno puede agregar conexiones, statments, etc (todo lo que tenga método close() ). Entonces para cerrar todo, solamente se hace c.getClose().closeAll();

Todo esro funciona bien, pero me sucede el problema que les comentaba, que será?