Newsgroup: it.comp.software.database
Titolo: connessione a Oracle da java

Ciao
sto tentando di connettermi a Oracle8i Release 8.1.7.4.0
da un programmino java ma non riesco.
Il codice che uso per connettermi e' il seguente:
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:myserver:1521:SID:mydbname",
"mylogin",
"mypassword")
ma il risultato e' questo:
java.sql.SQLException: Io exception: Connection refused
(DESCRIPTION=(TMP=)(VSNNUM=135296000)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
Ho scoperto googlando che 12505 significa che il SID e' sbagliato, ma ho 
verificato nel file listener.ora che uso quello corretto, nella porta 
corretta.
Insomma sembra proprio che i parametri che do alla getConnection
siano quelli giusti ...
qualcuno ha qualche suggerimento?
  Raffaello

 Infatti...
:(
Grazie comunque.
Sto ancora googlando e sembra che il mistero porti ai files di 
configurazione tnsnames.ora e listener.ora.
Appena (e se) risolvo il problema inviero' un altro post.
(se nel frattempo qualcuno risolve prima di me e' anche meglio :p)
  Raffaello

 Invalid Sytnax or Database name is null
Non conosco il driver JDBC che stai usando, ma la cosa non mi torna: a 
seconda del tipo di configurazione del listener o del tnsnames, per 
connettersi a un DB oracle si può usare il SID o il global service name, 
ma per quanto ne so le due opzioni sono mutuamente esclusive. Mi pare 
molto strano che il driver le richieda entrambe...
-- 
Fabrizio "Hermooz" Ermini



Ho provato "jdbc:oracle:thin:myserver:1521:mydbname"
ma il risultato e' lo stesso ...
possibile che non ci sia un feedback un po' piu' informativo da qualche 
parte?
Il log del listener di oracle mi dice questo:
26-AUG-2005 16:25:12 * 
(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * 
(ADDRESS=(PROTOCOL=tcp)(HOST=....)(PORT=....)) * establish * orcl * 12505
TNS-12505: TNS:listener could not resolve SID given in connect descriptor
Che non e' che sia gran che, AFAIK.
  Raffaello

 Che non e' che sia gran che, AFAIK.
E' comunque un qualcosa da cui cominciare. Se tenti una connessione 
direttamente sul server con SQL*plus mettendo gli stessi parametri funziona?
-- 
Fabrizio "Hermooz" Ermini

  Raffaello
Stai usando un thin client quindi il file tnsnames.ora non ha valore in 
questo caso.
La intassi di un thin e':
jdbc:oracle:thin:@<HOST>:<PORT>:<SID>
dove SID e' il nome dell'istanza dal lato server (controlla il 
listener.ora del tuo RDBMS e fai attenzione all'uso di eventuali domini 
nel SID).
Ciao
-- 
Fabrizio Magni
fabrizi...@mycontinent.com
replace mycontinent with europe

 
Non e' sempre una buona idea fare dell'edit nei log che posti... elimini 
informazioni che potrebbero essere utili a chi cerca di aiutarti.
In ogni caso stai tentando di connetterti usando come SID orcl che e' il 
default oracle.
Sul lato server dai il comando:
lsnrctl status [nome listener]
se il listener e' quello di default (LISTENER) allora puoi evitare il 
[nome listener].
Ti risultera' una lista di setvizi per il quale il listener sta 
ascoltando e le porte usate.
Quelli sono i valori che devi inserire nella connection string del tuo 
thin driver.


 del tuo RDBMS e fai attenzione all'uso di eventuali domini nel SID).
Ti ringrazio moltissimo perche' hai risolto il mio problema, non mettevo
la chiocciolina prima dell'host!
graziegraziegraziegrazie
  Raffaello

 Io avevo @server:1521:sid e basta. Che roba e' "mydbname" ?
Grazie.
Avevo sbagliato 2 cose, per prima cosa non mettevo il simbolo "@" prima
di myserver e poi mettevo la stringa "SID" tra 1521 e mydbname.
  Raffaello