Tôi có máy chủ dựa trên java (Tomcat) kết nối với cơ sở dữ liệu Oracle bằng kết nối JDBC. Có nhiều cách để kết nối với cơ sở dữ liệu: SID, TNS name, Service name.Sự khác biệt giữa việc sử dụng tên TNS và tên dịch vụ trong kết nối JDBC
Tôi muốn hiểu sự khác biệt giữa mỗi kết nối này và kết nối được đề nghị (SID, TNS hoặc dịch vụ) là gì nếu kết nối với cơ sở dữ liệu được nhóm. Đây là tên TNS chúng tôi có cho cơ sở dữ liệu:
MY_NICE_TNS_NAME.MY_COMPANY.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhostname)(PORT = 1521))
(LOAD_BALANCE = YES)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MY_NICE_SERVICE_NAME.MY_COMPANY.COM)
(FAILOVER_MODE =
(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
)
)
)
Cảm ơn!
miễn là bạn chỉ có một hostname quy định có thực tế là không có Sự khác biệt. Nếu bạn đã kết nối với RAC (OPS) hoặc DataGuard thì có. SID là duy nhất, không thể thay đổi và kết thúc bằng số. Mặc dù SERVICE_NAME có thể có mặt trên một hoặc nhiều nút. Và nó cũng có thể di chuyển giữa các nút – ibre5041
Cảm ơn, tuyệt vời để biết. Xem bình luận của tôi dưới đây. Chúng tôi có RAC. –
nếu bạn sử dụng RAC thì bạn nên chỉ định tên máy chủ cho mỗi nút. xem: http://stackoverflow.com/questions/13424385/oracle-connection-string-for-rac-environment – ibre5041