oracle JDBC瘦样式URL和描述符URL的差异



我在谷歌上发现了一些讨论类似话题的话题,但从来没有得到一个最终明确的回应。我们正在开发一个需要支持RAC连接的Java应用程序。问题是这两种URL样式有什么区别:

jdbc:oracle:thin:@<host>:1521/<SERVICENAME>
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(HOST=myhost)(PORT=1521)(PROTOCOL=tcp))(CONNECT_DATA=(SERVICE_NAME=myorcldbservicename)))

是否有最佳实践来使用一种格式而不是另一种格式?

第一种风格是否支持RAC连接?第一种风格是否支持故障转移/负载平衡测试?使用第二种样式并只提供一个节点有意义吗?我们是否需要总是指定所有节点(对于这两种方法),或者在应用程序启动时只指定一个节点就足够了?

根据客户端版本的不同,语法不支持RAC所需的所有必需属性。因此,您应该使用长格式,因为当需要Data Guard时,它也提供了所有功能。

:

  • https://www.oracle.com/a/tech/docs/application-checklist-for-continuous-availability-for-maa.pdf
  • https://www.oracle.com/technetwork/database/options/clustering/applicationcontinuity/applicationcontinuityformaa - 6348196. - pdf
  • https://www.oracle.com/technetwork/database/availability/client故障转移- 2280805. - pdf

尽管第一个是自治的,但它们仍然适用于标准的本地部署。

更多优秀的白皮书,请参见www.oracle.com/goto/maa

第一个是Easy Connect URL,较长的是long form connection URL。

Easy Connect: jdbc:oracle:thin:@:1521/长格式连接URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(HOST=myhost)(PORT=1521)(PROTOCOL=tcp))(CONNECT_DATA=(SERVICE_NAME=myorcldbservicename)))

从19c开始,Easy connect URL也得到了增强,通过名称值对支持其他连接属性。

更多示例请参考JDBC开发人员指南。

对于RAC,如果您有多个主机,那么解码长格式URL可能更容易。但是,从技术上讲,两者都可以使用。

最新更新