Duvida Struts2X Jasper X JPA porque não fecha conexão

2 respostas
P

Olá,

estou em umprojeto WEB mas a transação é controlado via local mas vejo pela ferramenta
MYSQL Administrator que ao final da classe abaixo gera o relatório na pagina jsp
mas as conexões aberta no Banco continua lá mesmo fechando via action abaixo ???

O que será que está acontecendo ;;;;;;;;

alguém já passou por isso …

abs

String retorno = null;
		String nomeRelatorio = "";
		Connection con = null;
		Map<String, Long> parameters = new HashMap<String, Long>();
		OutputStream ops = null;  
		
		try{
			//JPA
			dbmanager = ServiceFactory.getInstance().getManager();
			nomeRelatorio="REte001.jasper";
			
			
			
			Session session = (Session) dbmanager.getDelegate();
			con = session.connection();
			
			String jasper = request.getContextPath()+ "/report/report/"+nomeRelatorio;   
			String host = "http://" + request.getServerName() + ":" + request.getServerPort();   
			URL jasperURL        = new URL(host + jasper);
			
			System.out.println("Host   = "+host);
			System.out.println("Jasper = "+jasper);
			System.out.println("Getting the binary...");   
			
  			response.setContentType(CONTENT_TYPE_PDF);   
  			byte[] bytes = JasperRunManager.runReportToPdf(jasperURL.openStream(), parameters, con);   
  			if (bytes != null) {   
		             ops = response.getOutputStream();   
		             System.out.println("Writting binary");   
		             ops.write(bytes);   
		             System.out.println("Sending report..."); 
		             ops.flush();
		 	         ops.close();
		 	         con.close();
		 	         session.close();
		 	         dbmanager.close();
		     }   
  			 
		} catch (Throwable ex) {
			retorno = ERROR;
		
			
		}finally{
			
		}
		return retorno;
	}

2 Respostas

P
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
   version="1.0">
   <persistence-unit name="ims">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <properties>
         <!-- Only scan and detect annotated entities -->
         <property name="hibernate.archive.autodetection" value="class"/>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
         <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
         <property name="hibernate.connection.url" value="jdbc:mysql://localhost/xxx"/>
         <property name="hibernate.connection.username" value="root"/>
         <property name="hibernate.connection.password" value="root"/>
          
         
         <property name="hibernate.c3p0.min_size" value="0"/>
         <property name="hibernate.c3p0.max_size" value="10"/>
         <property name="hibernate.c3p0.timeout" value="1000"/>
         <property name="hibernate.c3p0.max_statements" value="50"/>
         <property name="hibernate.c3p0.idle_test_period" value="3000"/>
      </properties>
   </persistence-unit>
T

Você está usando um pool de conexões (c3po), que obviamente deixa algumas conexões abertas (mínimo 0, máximo 10), conforme se pode ver na sua configuração. Isso é um comportamento esperado e desejável.

Criado 25 de fevereiro de 2009
Ultima resposta 25 de fev. de 2009
Respostas 2
Participantes 2