Avatar billede erve Nybegynder
01. april 2001 - 09:02 Der er 13 kommentarer og
2 løsninger

JDBC connection

Hej
Jeg forsøger at connecte til en DB via Java:
Det går fint via JDBC:ODBC, men jeg vil gerne springe over ODBC:

Class.forName(\"oracle.jdbc.driver.OracleDriver\");
Connection con = DriverManager.getConnection(\"jdbc:oracle:thin:@myhost:1521:TEST.TST\",\"testdb\",\"testdb\");

hvor myhost,portno og SID er hentet fra tnsnames.ora.

Jeg får følgende Exception:

fejl i getConnection.Io-undtagelse: fejl i getConnection.Io-undtagelse: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135290880)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

Nogen der kan hjælpe?
Mvh Erik
Avatar billede Slettet bruger
01. april 2001 - 11:29 #1
Du skriver \'TEST.TST\'? Er det virkelig din databases navn? Det lyder mere som service-navnet.

Find linien \'SID=....\' og brug værdien herfra i stedet fro \'TEST.TST\'.

Og - har du virkelig en \'myhost\'? mener du ikke \'localhost\'.

Det kan være en god ide at checke, om du kan pinge \'myhost\'. Hvis ikke, kan du indføre den i din hosts-fil.
Avatar billede erve Nybegynder
01. april 2001 - 12:34 #2
Helt præcis ser tnsnames.ora sådan ud. Det er vist en nyere måde at angive det på i 8i.
Er SID\'en ikke identisk med service navnet. Hvis ikke hvor er så linket mellem service_name og SID?
I v$database er Name godt nok = TEST, så det er jo nok den jeg skal bruge?

TEST.ERV =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = lecervh)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = TEST.ERV)
    )
  )

Avatar billede Slettet bruger
01. april 2001 - 12:41 #3
Drop service navn, gå direkte til server og find ud af hvad databasens instance-name er. Brug det.

Avatar billede Slettet bruger
01. april 2001 - 12:54 #4
Du kan evt. logge på som system og spørge på

> select name from v$database;

for at få den rigtige værdi.

En anden mulighed: Hvis du vil bruge service navn, så skal du bruge de tykke drivere.
Avatar billede pnielsen Nybegynder
01. april 2001 - 23:54 #5
ORA-12505  TNS:listener could not resolve SID given in connect descriptor

Supported SIDs can be obtained by typing the following:
lsnrctl status
Avatar billede erve Nybegynder
02. april 2001 - 08:06 #6
OK,det ser ud til at det ER SID\'en der er gal.
pnielsen: Jeg kan ikke få isnrctl til at funke nogen steder. Er det en commandolinje-kommando, eller fyrer man den af i et eller andet værktøj?
Avatar billede pnielsen Nybegynder
02. april 2001 - 11:39 #7
Hej erve
Det er ikke med \"i\" !!!


Gå på den maskine hvor din database ligger, og skriv LSNRCTL STATUS
I bunden vil du se hvilke SID\'er du har. F.eks. :
v815          has 1 service handler(s)

hvor v815 er SID\'en !!

Ellers kan du logge på basen og prøve det joern_h siger!!! ... eller:
select instance from v$thread;
Værsgo.... din SID :)

Iøvrigt er java case sentisive... Men jeg ved ikke om det gør så meget her.
Bare sørg for at skrive din SID som den står i det output du får af ovenstående,
så er du da sikker !!

Avatar billede Slettet bruger
02. april 2001 - 12:38 #8
erve-> Hvorfor kan du ikke bruge de tykke drivere?
Avatar billede erve Nybegynder
02. april 2001 - 12:40 #9
joern h: Fordi jeg ikke har styr over hvordan man gør det.
Alle steder henvises der til :Thin.
Har du en anvisning på det?
Avatar billede Slettet bruger
02. april 2001 - 12:50 #10
erve-> De \'tynde\' drivere går direkte til host-databasen via TCP/IP.
De \'tykke\' drivere bruge SQL*Net og kræver derfor at du har installeret SQL*Net på din klientmaskine...

De tykke OCI-drivere laver connection således:

Connection conn = DriverManager.getConnection
                        (\"jdbc:oracle:oci8:testdb/testdb@TEST.TEST\");

Se mere på http://technet.oracle.com/doc/oracle8i_816/java.816/a81354/basic1.htm#1004265


Avatar billede erve Nybegynder
02. april 2001 - 12:58 #11
Wauv. Det kalder jeg en anvisning. Der ER installeret SQL*Net. Det vil jeg prøve, når jeg kommer hjem.
Avatar billede erve Nybegynder
02. april 2001 - 16:50 #12
1000 Tak. Nu virker det. Alle gode råd i denne tråd virker. Nu kører det både gennem og udenom SQL*net, og jeg fik lige et par ekstra tips.
Mvh Erik
Avatar billede erve Nybegynder
02. april 2001 - 16:55 #13
Ups jeg troede jeg kunne tildele 30 til jer begge , men det kan man tilsyneladende ikke, når man kun har udlovet 30. Sorry Jørn. Hvis du går op i det med point\'ene,kan jeg lave et fiktivt indlæg og tildel dig dem?
Avatar billede pnielsen Nybegynder
03. april 2001 - 13:57 #14
Det er godt nok mig, der ikke fik... men bare det virker :)

Sez
Avatar billede Slettet bruger
03. april 2001 - 14:00 #15
Det er også godt nok for mig (at jeg fik).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester