Java JDBC - Cara untuk terhubung ke Oracle menggunakan Layanan Nama bukan dari SID
Saya memiliki sebuah aplikasi Java yang menggunakan JDBC (via JPA) yang menghubungkan ke pengembangan database menggunakan nama host, port, dan Oracle SID, seperti ini:
jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ
XYZ adalah Oracle SID. Sekarang saya perlu untuk menghubungkan ke database Oracle yang tidak menggunakan SID, tetapi menggunakan Oracle "Nama Layanan" sebagai gantinya.
Saya mencoba hal ini, tapi itu doesn't bekerja:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD
ABCD adalah Nama Layanan dari database lain.
Apa yang saya lakukan salah?
240
8
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
Jadi saya akan coba:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
Juga, per Robert Greathouse's jawaban, anda juga dapat menentukan TNS nama di JDBC URL seperti di bawah ini:
Jadi ada dua cara mudah untuk membuat karya ini. Solusi diposting oleh Bert F bekerja dengan baik jika anda don't perlu pasokan khusus lainnya Oracle-koneksi yang spesifik dan offline. Format untuk itu adalah:
Namun, jika anda perlu untuk memasok lain Oracle-koneksi yang spesifik properti maka anda perlu menggunakan yang lama TNSNAMES gaya. Aku harus melakukan ini untuk mengaktifkan Oracle koneksi bersama (di mana server tidak sendiri connection pooling). TNS format:
Jika anda're akrab dengan Oracle TNSNAMES format file, maka ini harus tampak akrab bagi anda. Jika tidak maka hanya Google untuk rincian.
Anda juga dapat menentukan TNS nama di JDBC URL seperti di bawah ini
Coba ini:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
Edit: per komentar di bawah ini sebenarnya benar:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(catatan//
)Berikut adalah link untuk membantu artikel
Diskusi ini membantu saya menyelesaikan masalah saya berjuang dengan selama berhari-hari. Aku melihat sekeliling di seluruh internet sampai saya menemukan dijawab oleh Jim Tangguh pada Mei 18 '11 pada 15:17. Dengan jawaban itu saya dapat terhubung. Sekarang saya ingin memberikan kembali dan membantu orang lain dengan contoh lengkap. Here goes:
Dalam kasus anda menggunakan eclipse untuk menghubungkan oracle tanpa SID. Ada dua driver untuk pilih yaitu, Oracle tipis driver dan lainnya adalah pengemudi lain. Pilih pembalap lain dan masukkan nama layanan di database kolom. Sekarang anda dapat menghubungkan langsung menggunakan layanan tanpa nama SID.
Ketika menggunakan
dag
bukantipis
, sintaks di bawah ini menunjuk ke nama layanan bekerja untuk saya. Thejdbc:tipis
solusi di atas tidak bekerja.Ini harus bekerja:
jdbc:oracle:tipis//host:Port/ServiceName=SERVICE_NAME