Java JDBC - So stellen Sie eine Verbindung zu Oracle her, indem Sie den Dienstnamen anstelle der SID verwenden
Ich habe eine Java-Anwendung mit JDBC (via JPA) , wurde Verbindung zu einem Entwicklungs-Datenbank mithilfe von Hostnamen, port und Oracle SID, wie diese:
jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ
XYZ wurde die Oracle-SID. Jetzt brauche ich, um eine Verbindung zu einer anderen Oracle-Datenbank, die keine SID, aber verwendet eine Oracle "Service-Name" statt.
Habe ich versucht, dieses funktioniert aber nicht:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD
ABCD ist der Service den Namen der anderen Datenbank.
Was mache ich falsch?
InformationsquelleAutor der Frage Jim Tough | 2011-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
Also ich würde versuchen:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
Auch pro Robert Greathouse Antwort, Sie können auch geben Sie den TNS-Namen, die in der JDBC-URL wie folgt:
InformationsquelleAutor der Antwort Bert F
Also es gibt zwei einfache Möglichkeiten, um diese Arbeit zu machen. Die Lösung gepostet von Bert F funktioniert gut, wenn Sie nicht liefern müssen andere spezielle Oracle-spezifische Verbindung-Eigenschaften. Das format dafür ist:
Allerdings, wenn Sie brauchen, um liefern andere Oracle-spezifische Verbindung-Eigenschaften-dann müssen Sie die lange TNSNAMES Stil. Ich hatte dies vor kurzem zum aktivieren von Oracle freigegebenen verbindungen (wo der server hat seine eigene Verbindungs-pooling). Die TNS-format:
Wenn Sie sind vertraut mit den Oracle-TNSNAMES-Datei-format, dann sollte Ihnen bekannt vorkommen. Wenn nicht, dann Google es einfach für die details.
InformationsquelleAutor der Antwort Jim Tough
Können Sie auch geben Sie den TNS-Namen, die in der JDBC-URL, wie unten
InformationsquelleAutor der Antwort Robert Greathouse
Versuchen Sie dies:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
Edit: per Kommentar unter diesem ist eigentlich richtig:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(Hinweis: die//
)Hier ist ein link zu einem hilfreichen Artikel
InformationsquelleAutor der Antwort DwB
Diese Diskussion hat mir geholfen, das Problem zu beheben ich kämpfte tagelang mit. Ich schaute mich um alle über das internet, bis ich der beantwortet von Jim Hart am Mai 18 '11 at 15:17. Mit dieser Antwort konnte ich schließen. Jetzt will ich zurück zu geben und anderen helfen, mit einem kompletten Beispiel. Hier geht:
InformationsquelleAutor der Antwort Ed Chipeta
Falls Sie mit eclipse zu verbinden oracle-ohne SID. Es gibt zwei Treiber zu wählen, D. H., Oracle thin-Treiber und andere andere Fahrer. Wählen Sie andere Treiber, und geben Sie service-Namen in der Spalte in der Datenbank. Verbinden Sie nun direkt mit service-Namen, ohne SID.
InformationsquelleAutor der Antwort Bhagavathy Vinoth