Não serão lidos mais dados do soquete... [RESOLVIDO]

8 respostas
stagmaldito

Amigos, estou com um problema ao executar uma Query aqui, procurei no Google e a no Forum da ORACLE e não consegui encontrar nenhuma ajuda para este erro. Recorro a vocês como ultimo caso.

O Erro que estora é este:

java.sql.SQLException: Não serão lidos mais dados do soquete

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)

at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)

at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:962)

at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:894)

at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:383)

at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)

at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:850)

at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2599)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2963)

at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)

at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:584)

at br.com.hp.control.ExecutarDBMS.executarQuery(ExecutarDBMS.java:23)

at br.com.hp.actions.ExportarListaAction.actionPerformed(ExportarListaAction.java:65)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Estou executando esta Query:

public final static String buscaServicoHoje =		
		("SELECT DISTINCT " +
			"ambiente, servico, display_name " +
		 "FROM " +
			"al_mat_colunas_usadas_hora_hj " +
		 "WHERE " +
			"display_name LIKE '%?%'");

Estou chamando o metodo:

Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rset = null;
	
	
	public void executarQuery(String servico) throws Exception {
		try {
			conn  = DBUtil.getConnectionLogApache();		
			pstmt = conn.prepareStatement(Queries.buscaServicoHoje);	
			pstmt.setString(1, servico);
			rset  = pstmt.executeQuery();
			rset.next();

			do {	
				System.out.println(rset.getString(1) + " " + rset.getString(2) + " " +rset.getString(3));
			}while (rset.next());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}

8 Respostas

O

Cara da uma olhadinha nesse link aqui.

Se funcionar coloca como resolvido aqui no Guj.

stagmaldito

Bom dia, Caio!

Eu esqueci de falar que meu BD permite conexões compartilhadas… Não estou entendendo o porque continua apresentando este erro.

:frowning:

O

Mais você chegou a fazer os passos do link?

Caso sim, qual versão do jdbc que você esta usando?

stagmaldito

Sim, eu fiz (Não por esse site, mas fiz)

os dados do meu Driver: Oracle JDBC Driver version - 9.0.2.0.0

pmlm
...
"WHERE " +  
"display_name LIKE ?");
...
 pstmt.setString(1, '%' + servico + '%');  
...
stagmaldito

pmlm,

Alterei os dados (conforme você mostrou) e o erro mudou, foi para:

java.sql.SQLException: Conjunto de Resultados Esgotado

só de ver o erro mudar, já me sinto um pouco feliz, sinal que estou a um caminho de ver meu programa funcionar e entender o problema

:slight_smile:

pmlm
rset.next();  
    do {      
        System.out.println(rset.getString(1) + " " + rset.getString(2) + " " +rset.getString(3));  
    }while (rset.next());

Estás a assumir que haverá sempre pelo menos um resultado.

Tens de mudar simplesmente para

while (rset.next()) {      
        System.out.println(rset.getString(1) + " " + rset.getString(2) + " " +rset.getString(3));  
    }
stagmaldito

pmlm,

Funcionou!

Obrigado pela ajuda, agora terei que encerrar o tópico. (terei que aprender tbm rs)

Obrigado pela força, amigo!

Criado 17 de novembro de 2011
Ultima resposta 17 de nov. de 2011
Respostas 8
Participantes 3