<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Problemas com pool de conexões do tomcat"]]></title>
		<link>http://www.guj.com.br/posts/list/6.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Problemas com pool de conexões do tomcat"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Estou debugando uma aplicação que faz vários acessos ao banco de dados e num determinado momento recebo estes erros:<br /> <br /> [code]<br /> FATAL: sorry, too many clients already<br /> [/code]<br /> <br /> A aplicação continua rodando, mesmo depois do erro, só que mais lenta e com alguns bugs e depois de um tempo recebo este erro:<br /> <br /> [code]<br /> Cannot get a connection, pool error Timeout waiting for idle object<br /> [/code]<br /> <br /> Vendo o código vi que em toda operação que é feita no banco ele o programa abre e fecha uma conexão com o mesmo. As conexões sao feitas através do tomcat ele que gerencia o pool.<br /> O problema pode estar ai? Quando o programa abre e fecha as conexões quando faz uma operação no banco?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616029.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616029.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 09:32:43]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Veja se a aplicação esta usando algum Data Source mesmo, se sua conexão estiver sendo feita na mão pode estar abrindo o bico mesmo, poste a forma que vc esta usando sua conexão.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616057.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616057.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 10:05:43]]> GMT</pubDate>
				<author><![CDATA[ Pedrosa]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Sim a conexão é feita através de um datasource.<br /> E a conexão é obtida através de uma classe factory. Dentro da classe factory tem um atributo estático que é instanciado uma única vez e ai só ficar retornando as conexões, abaixo segue a parte do código que faz estas tarefa:<br /> <br /> [code]<br /> public static Connection getConnectionTomcat() throws NamingException, SQLException{<br />                 if(DATASOURCE == null){<br />                         DATASOURCE = (DataSource) new InitialContext().lookup("java:/comp/env/jdbc/database");<br />                 }<br />                 return DATASOURCE.getConnection();<br />         }<br /> [/code]<br /> <br /> E na DAO a chamada para executar uma determinada tarefa no banco é feita assim:<br /> <br /> [code]<br /> Connection conn = ConnectionFactory.getConnectionTomcat();<br />                         PreparedStatement statement = conn.prepareStatement(query);<br />                         statement.setInt(1, moQueue.getProcessed());<br />                         statement.setInt(2, moQueue.getQueueId());<br />                         int rowsAffected = statement.executeUpdate();<br />                         this.getLogger().info(this.getToken() + " Query: " + this.stm.toString());<br />                         statement.close();<br />                         conn.close();<br />                         statement = null;<br />                         conn = null;<br /> [/code]<br /> <br /> Sendo que são chamados vários métodos parecidos com este código acima e a aplicação ainda é multi-thread, pq ela precisa ser rápida para atualizar os dados e retornar os mesmo.<br /> Teria alguma forma de resolver este erro?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616064.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616064.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 10:13:20]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Crie um método closeConnection mais ou menos assim:<br /> <br /> [code]<br /> public void closeConnection  (<br /> 	        Connection conn,<br /> 	        PreparedStatement stmt,<br /> 	        ResultSet rs) throws Exception {<br /> 	        if (rs != null) {<br /> 	            try {<br /> 	                rs.close();<br /> 	            } catch (SQLException e) {<br /> 	            	throw e;<br /> 	            }<br /> 	        }<br /> 	        if (stmt != null) {<br /> 	            try {<br /> 	                stmt.close();<br /> 	            } catch (SQLException e) {<br /> 	            	throw e;<br /> 	            }<br /> 	        }<br /> 	        if (conn != null) {<br /> 	            try {<br /> 	                conn.close();<br /> 	                logger.info("Close Conn - "+conn.hashCode()+conn.toString());<br /> 	            } catch (SQLException e) {<br /> 	            	throw e;<br /> 	            }<br /> 	        }<br /> }<br /> <br /> [/code]<br /> <br /> E nos seus DAOS chame em um bloco finaly forçando fechar a conexão<br /> <br /> [code]<br /> try{<br /> }catch (SuaExcecao e){<br /> //seu tratamento de erro   <br /> } finally {<br /> 	connectionFactory.closeConnection(conn, pstmt, rs);<br /> }<br /> [/code]<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616092.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616092.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 10:46:44]]> GMT</pubDate>
				<author><![CDATA[ Pedrosa]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Blz, eu fiz o método mas não entendi como isso iria resolver o meu problema.....<br /> Poderia dar uma explicação, por favor?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616108.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616108.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 11:06:49]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Esse finaly força a fechar as conexoes que podem estar penduradas na sua aplicação, além disso é possível aumentar o numero de conexoes permitidas no poll, veja se esta definido alguma coisa em maxactive:<br /> <br /> <a class="snap_shots" href="http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html" target="_blank" rel="nofollow">http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html</a><br /> <br />  ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616112.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616112.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 11:12:52]]> GMT</pubDate>
				<author><![CDATA[ Pedrosa]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Quando é feita a chamada na "mão", sem usar o método, como eu estava fazendo antes não funciona?<br /> E context.xml está configurado desta maneira, coloquei estes valores altos, para teste e para tentar acabar com os erros:<br /> <br /> [code]<br /> maxActive="1000" maxIdle="700" maxWait="30000"<br /> [/code]<br /> <br /> E outra coisa eu tenho métodos que retornam alguns dados do banco, e por causa disso eu uso o bloco try/cath fora do método, qual seria a melhor opçção deixar o bloco dentro do métdo ou chamar um throws no método?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616119.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616119.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 11:26:20]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Prefiro deixar dentro do proprio metodo nesse caso especifico.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/616148.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/616148.java</link>
				<pubDate><![CDATA[Mon, 5 Jan 2009 12:17:44]]> GMT</pubDate>
				<author><![CDATA[ Pedrosa]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Comecei a fazer os testes com o código atualizado e agora só recebo este erro:<br /> <br /> [quote]<br /> FATAL: sorry, too many clients already<br /> [/quote]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/618439.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/618439.java</link>
				<pubDate><![CDATA[Thu, 8 Jan 2009 09:39:32]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Consegui resolver este erro:<br /> <br /> [code]FATAL: sorry, too many clients already [/code]<br /> <br /> O erro era q o banco estava configurado para ter só 100 conexões, ai aumentei o mesmo para 500 conexões, sendo que apareceu outro erro, q este:<br /> <br /> [code]<br /> Cannot get a connection, pool error Timeout waiting for idle object<br /> [/code]<br /> <br /> E eu já coloquei o código para forçar a matar a conexão alguém sabe alguam solução ou já passou por isso?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/618743.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/618743.java</link>
				<pubDate><![CDATA[Thu, 8 Jan 2009 14:47:32]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
			<item>
				<title>Re:Problemas com pool de conexões do tomcat</title>
				<description><![CDATA[ Descobri o porque do erro<br /> <br /> [code]FATAL: sorry, too many clients already [/code]<br /> <br /> A aplicação possui várias threads e estas threads se conectam no banco e executam querys, com isso mata o pool de conexões, gostaria de saber se tem como contornar este erro configurando sõ o context.xml ou se existe alguma outra maneira de deixar a conexão em cache?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114053/618928.java</guid>
				<link>http://www.guj.com.br/posts/preList/114053/618928.java</link>
				<pubDate><![CDATA[Thu, 8 Jan 2009 17:47:24]]> GMT</pubDate>
				<author><![CDATA[ Jedi_FeniX]]></author>
			</item>
	</channel>
</rss>