Java.sql.SQLException: Io exception: The Network Adapter

4 respostas
I

Olá pessoal. Fiz uma aplicação em que a cada consulta na base de dados uma nova conexão é aberta, um sql é executado, o ResultSet analisado e finalmente os fecho. O problema é que em uma determinada requisição para acesso ao banco (Oracle 9.2i) o seguinte erro acontece:

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection

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

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

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

at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361)

at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at com.suntech.common.persistence.database.DBConnection.getConnection(DBConnection.java:25)

Andei procurando em outros fóruns e o pessoal sugeria ver se o listener do banco estava ativo (e está), conferir a URL de acesso a base (creio que esteja correta porque senão todas as requisições gerariam este problema).

Estou usando:

j2sdk1.4.2_06
Tomcat 5.0.28

Os dados de acesso a base são:

con.driver=oracle.jdbc.driver.OracleDriver
con.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=appdb)(SERVER=DEDICATED)))
con.username=test
con.password=test

Alguém sabe o que pode estar acontecendo e dar uma ajuda? Gratp desde já, T+

4 Respostas

R

dá uma olhada, ve se ajuda…
http://forum.java.sun.com/thread.jspa?threadID=403147&messageID=2091209

I

“renan_daniel”:
dá uma olhada, ve se ajuda…
http://forum.java.sun.com/thread.jspa?threadID=403147&messageID=2091209

Daí tranquilo? De acordo com o que foi postado lá o problema ocorre de maneira esporádica também. Fiz uso (troca) do valor do ip na url mudando o arquivo hosts do Windows mas mesmo assim o problema persiste. A diferença é que como uso o jdbc, não tenho client oracle para alterar o TNSNAMES.ORA De qualquer forma valeu a dica mas ainda estou com o mesmo problema.

I

Só para constar… conseguimos resolver o problema aqui. O problema era que tínhamos isto:

select * from tab_consulta

Depois para cada elemento o result set uma nova consulta era feita para compor o bean desta tabela, já que a informação adicional dependia do código desta consulta, assim:

beanTabConsulta.setTotChamadas(“select count(*) from tab_chamada where cd_consulta = ?”);

Esta linha estava iterando sobre um list de mais ou menos 1900 registros.

Daí mudamos o 1o select para:

select t., (select count() from tab_chamada where cd_consulta = t.cd_consulta) tot_chamada from tab_consulta

Agora pra resumir… má prática na criação do SQL que estava gerando uma sobrecarga no banco e consequentemente o problema. Quem manda não estudar sql :slight_smile: T+

R

bem, o importante é resolver o problema… hehehe.

Criado 16 de fevereiro de 2005
Ultima resposta 17 de fev. de 2005
Respostas 4
Participantes 2