2008-10-08 6 views
2

Я получаю сообщение об ошибке из драйвера JDBC Oracle (ojdbc14_g.jar) при попытке получить соединение с базой данных 10g. У драйвера есть класс oracle.jdbc.driver.OracleLog, который может помочь, но документация Oracle неясно, как лучше всего использовать его. Кто-нибудь имел успех в этом классе? Если да, то некоторые рекомендации по его использованию будут оценены.Как использовать oracle.jdbc.driver.OracleLog?

Для получения информации, ошибка я получаю от драйвера 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) 

ответ

1

Ведение журнала обычно является слишком низким, чтобы его можно было интерпретировать любым, кроме поддержки Oracle.

В любом случае приведенный выше код указывает на наличие проблемы с подключением к сети между клиентом и сервером (ожидается, что данные будут считываться из сокета TCP, но это как-то прервалось). Какую сеть вы используете? Вы проверили журналы состояния и ошибок на слушателе сервера?

1

Google только что нашел this для меня.

Кроме того, попробуйте использовать java.sql.DriverManager.setLog (Stream | Writer) и посмотрите, получит ли он вам больше информации о том, что происходит.

+0

Я использую DataSource (а не DriverManager). Эквивалентная функциональность этого класса, похоже, не поддерживается Oracle ... – 2008-10-09 09:42:52