<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Escalabilidade - JSF, Hibernate, Spring e Tomcat 6"]]></title>
		<link>http://www.guj.com.br/posts/list/6.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Escalabilidade - JSF, Hibernate, Spring e Tomcat 6"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Olá, pessoal!<br /> <br />  estou com probleminhas ao colocar minha aplicacao em ambiente de produção<br /> <br /> e gostaria tb de algumas dicas para deixar minha aplicação mais escalavel.<br /> <br /> 1°. O problema: qdo poucos usuários estão utilizando o sistema desenvolvido simultaneamente, o acesso a banco de dados cai! [b]como assim:[/b] as páginas que acessam o BD deixam de enviar resposta e aguardando-as eternamente, no entanto, as que não acessam BD continuam funcionando normalmente!<br /> <br /> Reinicio o Tomcat e tudo volta a funcionar normalmente!<br /> <br /> [b]O que pode estar acontecendo?[/b]<br /> <br /> <br /> <br /> [b]OBS.: [/b] A grande maioria dos relacionamentos das entidades estão com Fetch.EAGER, pois dispara algumas excecoes de Lazy Initialization Exception mesmo utilizando o OpenSessionInView, e com o EAGER eu fujo deste problema!<br /> <br /> ATT. Dirceu]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518523.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518523.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 13:16:30]]> GMT</pubDate>
				<author><![CDATA[ DirceuSobrinho]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ [b]VENDO O LOG DO SERVIDOR WEB:[/b]<br /> [code]<br /> - Creating instance of br.com.id5.legba.core.seguranca.AuthenticationController<br /> - Creating instance of br.com.id5.legba.classificados.controlador.backingBeans.AnuncioBean<br /> - Creating instance of br.com.id5.legba.classificados.controlador.backingBeans.AnuncioBean<br /> - Closing org.springframework.web.context.support.XmlWebApplicationContext@164cbde: display name [Root WebApplicationContext]; startup date [Wed Jul 09 03:15:28 GMT-03:00 2008]; root of context hierarchy<br /> - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1ad0839: defining beans [pedidoDao,pagSegDao,pedidoStatusDao,coreName,usuarioDao,usuarioGerenciador,enderecoDao,grupoDao,grupoGerenciador,contatoDao,moduloDao,moduloGerenciador,regraDao,regraGerenciador,moduloManagerBean,menuTreeBean,imagemDAO,administradorDao,anuncianteUserDao,visitanteCadastradoDao,administradorBean,anuncianteBean,visitanteBean,anuncioDao,anuncioVeiculoDao,anuncioImovelDao,anuncioEmpregoDao,anuncioGenericoDao,anuncioAdultoDao,pacoteDao,pacoteEspecificacaoDao,adultoDao,carroDao,empregoDao,fabricanteDAO,genericoDao,imovelDao,modeloDAO,motoDao,opcionalVeiculoDAO,opcionalImovelDAO,veiculoDao,fabricanteDao,secaoDao,categoriaDao,perguntaDao,dataSource,sessionFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,projectHome,acegiFilterChainProxy,httpSessionContextIntegrationFilter,securityRequestFilter,exceptionTranslationFilter,filterSecurityInterceptor,methodSecurityInterceptor,authenticationManager,daoAuthenticationProvider,userDetailsService]; root of factory hierarchy<br /> - Closing Hibernate SessionFactory<br /> - closing<br /> - Destroy instance of org.apache.myfaces.config.RuntimeConfig<br /> - Destroy instance of [Ljava.lang.String;<br /> - Destroy instance of java.io.File<br /> - Destroy instance of java.lang.String<br /> [/code]<br /> <br /> O QUE PODE ESTA CAUSANDO ISSO:<br /> [code]<br /> [i]Closing org.springframework.web.context.support.XmlWebApplicationContext@164cbde: display name [Root WebApplicationContext]; startup date [Wed Jul 09 03:15:28 GMT-03:00 2008]; root of context hierarchy<br /> - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1ad0839: defining beans [pedidoDao,pagSegDao,pedidoStatusDao,coreName,usuarioDao,usuarioGerenciador,enderecoDao,grupoDao,grupoGerenciador,contatoDao,moduloDao,moduloGerenciador,regraDao,regraGerenciador,moduloManagerBean,menuTreeBean,imagemDAO,administradorDao,anuncianteUserDao,visitanteCadastradoDao,administradorBean,anuncianteBean,visitanteBean,anuncioDao,anuncioVeiculoDao,anuncioImovelDao,anuncioEmpregoDao,anuncioGenericoDao,anuncioAdultoDao,pacoteDao,pacoteEspecificacaoDao,adultoDao,carroDao,empregoDao,fabricanteDAO,genericoDao,imovelDao,modeloDAO,motoDao,opcionalVeiculoDAO,opcionalImovelDAO,veiculoDao,fabricanteDao,secaoDao,categoriaDao,perguntaDao,dataSource,sessionFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,projectHome,acegiFilterChainProxy,httpSessionContextIntegrationFilter,securityRequestFilter,exceptionTranslationFilter,filterSecurityInterceptor,methodSecurityInterceptor,authenticationManager,daoAuthenticationProvider,userDetailsService]; root of factory hierarchy<br /> - Closing Hibernate SessionFactory[/i]<br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518611.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518611.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 15:03:18]]> GMT</pubDate>
				<author><![CDATA[ DirceuSobrinho]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ vc ta usando um pool de conexão ? que problema estranho...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518676.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518676.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 15:53:26]]> GMT</pubDate>
				<author><![CDATA[ ualex]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Não estou nao<br /> <br /> o hibernate.cfg esta configurado da seguinte forma:<br /> <br /> [code]<br /> &lt;session-factory&gt;<br />     <br />          &lt;property name="hibernate.connection.driver_class"&gt;net.sourceforge.jtds.jdbc.Driver&lt;/property&gt;<br />         &lt;property name="hibernate.connection.password"&gt;123456&lt;/property&gt;<br />         &lt;property name="hibernate.connection.url"&gt;jdbc:jtds:sqlserver://192.168.1.1:1433/mercado24horas&lt;/property&gt;<br />         &lt;property name="hibernate.connection.username"&gt;sa&lt;/property&gt;<br />         &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.SQLServerDialect&lt;/property&gt;<br />     	&lt;property name="hibernate.show_sql"&gt;true&lt;/property&gt;<br /> 		&lt;property name="hibernate.format_sql"&gt;true&lt;/property&gt;<br /> 		&lt;property name="current_session_context_class"&gt;thread&lt;/property&gt;<br /> 		&lt;property name="hibernate.cache.use_query_cache"&gt;true&lt;/property&gt;<br /> 		&lt;property name="hibernate.cache.provider_class"&gt;org.hibernate.cache.HashtableCacheProvider&lt;/property&gt;<br /> 		&lt;property name="hibernate.max_fetch_depth"&gt;0&lt;/property&gt;<br /> [/code]<br /> <br /> Crio um pool?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518679.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518679.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 15:59:10]]> GMT</pubDate>
				<author><![CDATA[ DirceuSobrinho]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Crie um pool e coloque os relacionamentos em Lazy, pq da forma q está fazendo, não há servidor que resista.<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518709.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518709.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 17:09:05]]> GMT</pubDate>
				<author><![CDATA[ djemacao]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[                 <br /> Adicionei no hibernate.cfg.xml<br /> [code]<br />                 &lt;property name="hibernate.dbcp.maxActive"&gt;8&lt;/property&gt;<br /> 		&lt;property name="hibernate.dbcp.maxIdle"&gt;8&lt;/property&gt;<br /> 		&lt;property name="hibernate.dbcp.maxWait"&gt;-1&lt;/property&gt;<br /> 		&lt;property name="hibernate.dbcp.whenExhaustedAction"&gt;1&lt;/property&gt;<br /> 		&lt;property name="hibernate.dbcp.testOnBorrow"&gt;true&lt;/property&gt;<br /> 		&lt;property name="hibernate.dbcp.testOnReturn"&gt;false&lt;/property&gt;<br /> [/code]<br /> Isso basta para criar um pool?<br /> <br /> subi a aplicacao com essas alteracoes e vou aguardar qto tempo dura sem cair...<br /> <br /> e aos vou tentar eliminar o Fetch.EAGER, subsitituindo por LAZY<br /> <br /> ...<br /> Mais sugestões, sintam-se a vontade =)<br /> <br /> Att. Dirceu<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518717.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518717.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 17:18:55]]> GMT</pubDate>
				<author><![CDATA[ DirceuSobrinho]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Putz, posta aí como ta o código do seu Filter pra funcionar o esquema do Open Session In View.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518737.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518737.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 18:21:17]]> GMT</pubDate>
				<author><![CDATA[ Rubem Azenha]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Aqui está!<br /> <br /> [code]<br /> import org.hibernate.FlushMode;<br /> import org.hibernate.HibernateException;<br /> import org.hibernate.Session;<br /> import org.hibernate.SessionFactory;<br /> import org.springframework.dao.CleanupFailureDataAccessException;<br /> import org.springframework.dao.DataAccessResourceFailureException;<br /> import org.springframework.orm.hibernate3.SessionFactoryUtils;<br /> import org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;<br /> <br /> /**<br />  * @author frank<br />  * this class inherits the class OpenSessionInViewFilter to<br />  * set the session to "AUTO" instead of "NEVER"<br />  */<br /> <br /> public class FlushingSpringSessionInViewFilter extends OpenSessionInViewFilter { <br /> <br />     public FlushingSpringSessionInViewFilter() { <br />     } <br /> <br />     protected Session getSession(SessionFactory sessionFactory) throws DataAccessResourceFailureException { <br />        Session session = SessionFactoryUtils.getSession(sessionFactory, true); <br />        session.setFlushMode(FlushMode.AUTO); <br />        return session; <br />    } <br />     <br />     protected void closeSession(Session session, SessionFactory sessionFactory) throws CleanupFailureDataAccessException { <br />         if (session != null && session.isOpen() && session.isConnected()) { <br />             try { <br />                 session.flush(); <br />             } catch (HibernateException e) { <br />                 throw new CleanupFailureDataAccessException("Failed to flush session before close: " + e.getMessage(), e); <br />             } <br />         } <br />         super.closeSession(session, sessionFactory); <br />     } <br /> }<br /> [/code]<br /> <br /> Em algumas paginas, o openSessionInView está funcioando como esperado, nas que so tem &lt;h:outputText&gt;<br /> ja nas que possuem &lt;h:inputText&gt; dispara a famosa: Lazy Initialization Exception ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/518752.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/518752.java</link>
				<pubDate><![CDATA[Thu, 10 Jul 2008 19:10:53]]> GMT</pubDate>
				<author><![CDATA[ DirceuSobrinho]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Este problema também acontece comigo. Alguém conseguiu resolver?<br /> O que eu faço é sempre que eu tenho que acessar uma coleção de um objeto eu tenho que dar um load nele pora evitar a Lazy Initialization Exception.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/557326.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/557326.java</link>
				<pubDate><![CDATA[Tue, 16 Sep 2008 16:43:34]]> GMT</pubDate>
				<author><![CDATA[ rafaelbnc]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ [quote=rafaelbnc]Este problema também acontece comigo. Alguém conseguiu resolver?<br /> O que eu faço é sempre que eu tenho que acessar uma coleção de um objeto eu tenho que dar um load nele pora evitar a Lazy Initialization Exception.[/quote]<br /> <br /> Oi Rafael, com filtro OpenSessionInView, não precisei mais dar um load para evitar a LazyInitialization, no entanto, para que em requisições ajax, foi necessário alterar o filtro, ai peguei na net esse filtro que tá funcioando blz:<br /> <br /> [code]<br /> <br /> import java.io.IOException;<br /> import java.sql.Connection;<br /> <br /> import javax.servlet.FilterChain;<br /> import javax.servlet.ServletException;<br /> import javax.servlet.http.HttpServletRequest;<br /> import javax.servlet.http.HttpServletResponse;<br /> <br /> import org.apache.commons.logging.Log;<br /> import org.apache.commons.logging.LogFactory;<br /> import org.hibernate.Session;<br /> import org.hibernate.SessionFactory;<br /> import org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;<br /> <br /> /**<br />  * @author Chris DeBracy<br />  * <br />  */<br /> public class HibernateLongSessionFilter extends OpenSessionInViewFilter {<br /> <br /> 	/**<br /> 	 * Logger.<br /> 	 */<br /> 	private static Log log = LogFactory.getLog("HibernateLongSessionFilter");<br /> <br /> 	public static final String SESSION_KEY = "hibernateSession";<br /> <br /> 	public static final String CONNECTION_KEY = "hibernateConnection";<br /> <br /> 	protected void doFilterInternal(HttpServletRequest request,<br /> 			HttpServletResponse response, FilterChain filterChain)<br /> 			throws ServletException, IOException {<br /> <br /> 		SessionFactory sessionFactory = lookupSessionFactory(request);<br /> <br /> 		/*<br /> 		 * Retrieve the session or instantiate it.<br /> 		 */<br /> 		Session session = (Session) request.getAttribute(SESSION_KEY);<br /> 		Connection connection = (Connection) request<br /> 				.getAttribute(CONNECTION_KEY);<br /> 		if (session == null) {<br /> 			session = getSession(sessionFactory);<br /> 			request.setAttribute(SESSION_KEY, session);<br /> <br /> 		} else {<br /> <br /> 			connection = (Connection) request.getAttribute(CONNECTION_KEY);<br /> 			try {<br /> 				session.reconnect(connection);<br /> 			} catch (RuntimeException e) {<br /> 				log.info("Already connected");<br /> 				log.info(e);<br /> 			}<br /> 		}<br /> <br /> 		try {<br /> 			filterChain.doFilter(request, response);<br /> 		}<br /> <br /> 		finally {<br /> <br /> 			try {<br /> 				connection = session.disconnect();<br /> 				request.setAttribute(CONNECTION_KEY, connection);<br /> 			} catch (RuntimeException ex) {<br /> 				logger<br /> 						.error(<br /> 								"Unexpected exception on closing Hibernate Session",<br /> 								ex);<br /> 			}<br /> 		}<br /> 	}<br /> }<br /> [/code]<br /> <br /> Espero que te ajude!!!<br /> <br /> Att. Dirceu]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/558718.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/558718.java</link>
				<pubDate><![CDATA[Thu, 18 Sep 2008 14:19:54]]> GMT</pubDate>
				<author><![CDATA[ DirceuSobrinho]]></author>
			</item>
			<item>
				<title>Re:Escalabilidade - JSF, Hibernate, Spring e Tomcat 6</title>
				<description><![CDATA[ Cara vai ajudar muito sim, eu já tinha desistido desse problema mas acabei encontrando este teu post.<br /> Eu não tinha percebido que o problema da LazyInitialization era por causa dos Ajax requests (RichFaces).<br /> O problema é que eu não utilizo o Spring, eu implementei o meu próprio filtro, mas segue o mesmo estilo. MUITO obrigado me ajudou muito, pois como te disse eu sempre tinha que fazer um Load nos objetos o que acabava deixando o código um pouco confuso.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/96564/558979.java</guid>
				<link>http://www.guj.com.br/posts/preList/96564/558979.java</link>
				<pubDate><![CDATA[Thu, 18 Sep 2008 20:03:56]]> GMT</pubDate>
				<author><![CDATA[ rafaelbnc]]></author>
			</item>
	</channel>
</rss>