2009年10月23日

Oracle: java.sql.SQLException: Keine weiteren Daten aus Socket zu lesen

die Lösung zum Problem über die Java-Verbindung mit Oracle 9i.

Der Fehler: java.sql.SQLException: Keine weiteren Daten aus Socket zu lesen

2 wichtige Lösungsmöglichkeiten:

richtige JDBC Treiber, man kann den richtigen Treiber in Oracle Website herunterladen.

richtige SID, man kann die richtige SID in der Datei tnsnames.ora (in Ordner %Oracle%\network\admin) nachschlagen.

richtige Syntax:

conURL="jdbc:oracle:thin:@::";
DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());
Connectionconnection=java.sql.DriverManager.getConnection(conURL,userName,password);

Referenz:

When using two JDBC connections accessing the same Oracle database, “SqlException : No more data to read from socket” thrown.

This is because your database doesn’t support connection sharing, or it’s a dedicated server that will not respond to different clients.

Solution 1:

  1. $ dbca
  2. –Configuration & Migration Tool
  3. —-database Configuration Assistant
  4. Select radio button —Configure Data base options in database
  5. Select your database—e.g. Oracle or pspl
  6. Select —– shared server mode

Solution 2 (same to 1 but manual work):

  1. open $ORACLE_HOME/network/admin/tnsnames.ora
  2. change “(SERVER = DEDICATED)” to “(SERVER = SHARED)”
  3. restart database and listener

Now your database is sharable, so we can use from different client.

Thanks http://www.orafaq.com/forum/t/47457/0/