Como uso oracle.jdbc.driver.oracleLog?
Pergunta
Estou recebendo um erro do driver Oracle JDBC (OJDBC14_G.JAR) ao tentar obter uma conexão com um banco de dados 10G. O driver possui uma classe oracle.jdbc.driver.oraclelog que pode ajudar, mas a documentação do Oracle não está clara a melhor forma de usá -lo. Alguém teve algum sucesso usando esta classe? Nesse caso, algumas orientações sobre seu uso seriam apreciadas.
Para informações, o erro que estou recebendo do driver JDBC é:
java.sql.SQLException: No more data to read from socket
at oracle.jdbc.driver.DatabaseError.throwSqlException
(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException
(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException
(DatabaseError.java:208)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1
(T4CMAREngine.java:1118)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1
(T4CMAREngine.java:1070)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey
(T4CTTIoauthenticate.java:266)
at oracle.jdbc.driver.T4CConnection.logon
(T4CConnection.java:357)
at oracle.jdbc.driver.PhysicalConnection.<init>
(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>
(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection
(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect
(OracleDriver.java:801)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection
(OracleDataSource.java:297)
at oracle.jdbc.pool.OracleDataSource.getConnection
(OracleDataSource.java:221)
at oracle.jdbc.pool.OracleDataSource.getConnection
(OracleDataSource.java:165)
Solução
O registro é geralmente baixo demais para ser interpretado por qualquer pessoa, exceto o suporte do Oracle.
De qualquer forma, o código acima indica que existe algum problema de conectividade de rede entre o cliente e o servidor (mais que os dados foram lidos no soquete TCP, mas de alguma forma foi interrompido). Que tipo de rede você está usando? Você verificou os logs de status e erro no ouvinte do servidor?
Outras dicas
Google acabou de encontrar isto para mim.
Além disso, tente usar o java.sql.drivermanager.setLog (stream | writer) e veja se isso obtém mais informações sobre o que está acontecendo.