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 = (Context) initCtx.lookup("java:");
DataSource ds = (DataSource) envCtx.lookup("MySqlDS");
Connection conn = ds.getConnection();
DAOFactory mysqlFactory = DAOFactory.getDAOFactory(DAOFactory.
MYSQL_ACTIVA);
c = mysqlFactory.getCentroAsistencialDAO(conn);
s = 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 idCentro) throws Exception {
String sql1 =
"SELECT centro FROM centroAsistencial WHERE idCentroAsistencial=" +
idCentro;
ResultSet r = MysqlActivaDAOFactory.select(sql1, c);
....
....
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á?