SQLException: Exhausted ResultSet

2 respostas
gui_sv

Olá Pessoal,

Está ocorrendo um erro muito estranho em minha aplicacao, e o pior é que isto ora acontece e ora não acontece.

Este erro ocorre somente em um lugar da aplicação.

O tamanho do ResultSet não pode ser, pois qnd ocorre o erro o resultado não chega a ter nem 500 linhas, sendo que utilizo em lugares que retornam cerca de 8000 linhas e nada ocorre.

Aqui segue a log de erro.

java.sql.SQLException: Exhausted Resultset
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
	at oracle.jdbc.driver.OracleStatement.prepare_for_new_get(OracleStatement.java:3395)
	at oracle.jdbc.driver.OracleStatement.getStringValue(OracleStatement.java:3644)
	at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:460)
	at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1482)
	at br.com.gw.dao.BaselineDAO.getBaselineItems(BaselineDAO.java:1199)
	at br.com.gw.commandframework.commands.GetChecksumsServerCommand.produceResponse(GetChecksumsServerCommand.java:96)
	at br.com.gw.commandframework.HttpCommandReceiver.getResponse(HttpCommandReceiver.java:47)
	at br.com.gw.commandframework.HttpCommandReceiver.doService(HttpCommandReceiver.java:126)
	at br.com.gw.commandframework.HttpCommandReceiver.doPost(HttpCommandReceiver.java:65)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
	at br.com.gw.LicenseFilter.doFilter(LicenseFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:619)
br.com.gaea.gw.commandframework.CommandException: java.sql.SQLException: Exhausted Resultset
	at br.com.gw.commandframework.commands.GetChecksumsServerCommand.produceResponse(GetChecksumsServerCommand.java:114)
	at br.com.gw.commandframework.HttpCommandReceiver.getResponse(HttpCommandReceiver.java:47)
	at br.com.gw.commandframework.HttpCommandReceiver.doService(HttpCommandReceiver.java:126)
	at br.com.gw.commandframework.HttpCommandReceiver.doPost(HttpCommandReceiver.java:65)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
	at br.com.gw.LicenseFilter.doFilter(LicenseFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:619)

Procurei sobre isso na net … teve cara que ja teve o mesmo problema, porem falaram pra ele que seria por causa do close() do ResultSet que estavam em lugar errado, porem está corretissimo,

vejam

ResultSet rs = db.executeQuery(query);
        // Step 5: read result, populate array, and return.
		Vector v = new Vector();
		while (rs.next()) {

			// Retrieve one baseline element and add it to the 
			// baseline item vector
			BaselineItem item = new BaselineItem();
			
				item.setCurrent(
					new CVSVersionNumber(rs.getString("PROD_BL_MOD_REVISION")));


				item.setFirst(null);
				item.setLast(null);
				item.setNewItem(true);
			item.setFullPath(rs.getString("PATH"));
			item.setSafety(rs.getString("SAFETY").equalsIgnoreCase("N")?false:true);
			item.setType(
				new BaselineItemType(
					new Integer(rs.getString("ITEM_TYPE_ID")).intValue()));
					
			item.setModuleId(rs.getString("ASSO_IC_ID"));
			
			v.add(item);
		}

		// Release resultset
		rs.close();

Alguem ajuda ae porfavorrr

2 Respostas

ze_kiefa

A resposta está neste tópico. Confira!

gui_sv

Obrigado,

mas nao esta nao … antes de post eu li este post…

eu fecho o resultSet depois de percorre-lo por completo

como faço em qualquer lugar do sistema …

uso while … do jeito que o post fala …mas o meu problema foi solucionado…

alguma sugestão.

obrigado pela resposta

Criado 11 de setembro de 2007
Ultima resposta 13 de set. de 2007
Respostas 2
Participantes 2