Newsgroup: it.comp.java
Titolo: Connessione JDBC ed Errore: Got minus one from a read call

Salve a tutti,
sto provando a connettermi ad un database oracle utilizzando JDBC
ma, appena prova ad eseguire la connessione, mi viene restituito il
seguente messaggio di errore:
----------
java.sql.SQLException: Eccezione IO: Got minus one from a read call
----------
Il codice che utilizzo è il seguente:
-------
Class.forName( "oracle.jdbc.OracleDriver" );
			Connection conn = DriverManager.getConnection
			  ("jdbc:oracle:thin:@host:7280:nomeDB", "user", "pass");
-------
Da cosa può dipendere?
grazie

 Da cosa puň dipendere?
Prova a scaricare la versione piů recente del driver dal sito di Oracle.
Io ho risolto cosě.
Ciao, Y.

 Ciao, Y.
Ho appena scaricato l'ultima versione del driver,
ma l'errore permane e si sono aggiunti questi altri errori:
Caused by: oracle.net.ns.NetException: Got minus one from a read call
	at oracle.net.ns.Packet.receive(Packet.java:243)
	at oracle.net.ns.NSProtocol.connect(NSProtocol.java:259)
	at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:966)
Può dipendere dal fatto che c'è un proxy?

 Può dipendere dal fatto che c'è un proxy?
Hai messo un proxy tra l'applicativo Java e il server Oracle?
Che genere di proxy? Hai verificato che sia supportato da Oracle?
Y.

lakumc....@gmail.com
 (06/04/2009):

Tradotto dall'inglese:
"Ottenuto -1 da una chiamata in lettura"
Ora prova a ricordarti: quale classe contiene un metodo "read" che in
caso di fine flusso restituisca "-1" ?
http://java.sun.com/javase/6/docs/api/java/io/InputStream.html#read()
Il problema secondo me va cercato "dietro" Java: per qualche motivo la
connessione viene chiusa durante la negoziazione iniziale del
protocollo.
La questione del proxy può influenzare relativamente: se è un proxy per
la sola navigazione web non c'entra nulla con Java, se invece per
connetterti al database devi passare attraverso un socks proxy
(utilizzando Hummingbird ad esempio), devi capire con l'amministratore
di rete perchè la connessione ti venga troncata.
-- 
Scientology: se la conosci la eviti, se la conosci non ti uccide...
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx
 - 
http://www.xenu.net
(per rispondere personalmente leva IlDitoDalCulo)
---> 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 <---



il driver ti sta dicendo che dall'altra parte l'host gli risponde fuffa.
sei sicuro che su quella porta (che sembra molto casuale rispetto a 
quella standard) ti risponda oracle?

Credo che tu avessi ragione prima.
La porta corretta è la 1521 infatti l'errore è cambiato ed adesso
è il seguente:
java.sql.SQLException: Listener refused the connection with the
following error:
ORA-12505, TNS:listener does not currently know of SID given in
connect descriptor
	at oracle.jdbc.driver.SQLStateMapping.newSQLException
(SQLStateMapping.java:70)
	at oracle.jdbc.driver.DatabaseError.newSQLException
(DatabaseError.java:133)
	at oracle.jdbc.driver.DatabaseError.throwSqlException
(DatabaseError.java:199)
	at oracle.jdbc.driver.DatabaseError.throwSqlException
(DatabaseError.java:480)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
	at oracle.jdbc.driver.PhysicalConnection.<init>
(PhysicalConnection.java:508)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection
(T4CDriverExtension.java:33)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at DBConnection.main(DBConnection.java:14)
Caused by: oracle.net.ns.NetException: Listener refused the connection
with the following error:
ORA-12505, TNS:listener does not currently know of SID given in
connect descriptor
	at oracle.net.ns.NSProtocol.connect(NSProtocol.java:361)
	at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:966)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:292)

 connect descriptor
Devi verificare che lato Oracle il listener sia configurato per
accettare connessioni a "nomeDB" (riprendendo il tuo esempio:
"jdbc:oracle:thin:@host:1521:nomeDB")
Y.

Finalmente ci sono riuscito,
il server ha accettato la mia richiesta di connessione e posso fare
query sul
DB. Ringrazio tutti per l'aiuto offertomi.

 descriptor
adesso è il nome del database a non essere corretto.