【问题标题】:on selecting Oracle JDBC driver for Linux application server关于为 Linux 应用服务器选择 Oracle JDBC 驱动程序
【发布时间】:2012-03-12 23:47:49
【问题描述】:

这里是新手问题... 我需要选择一个 JDBC 驱动程序来将应用服务器 Java 程序连接到另一台服务器上的 Oracle 11G 数据库。两台服务器都是 Linux CentOS,它们在物理上彼此相邻,并通过交叉连接以太网电缆连接。我没有做 Oracle RAC。

Oracle 的网站列出了可用的选项:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

供参考,这里有一个类似的帖子:

Which JDBC driver type should I use for accessing an Oracle Database?

我的目标更具体:在以下 (JDK 1.6) 驱动程序中选择哪一个?

ojdbc6.jar (Classes for use with JDK 1.6. It contains the JDBC driver classes 
            except classes for NLS support in Oracle Object and Collection types)
ojdbc6_g.jar (Same as ojdbc6.jar except compiled with "javac -g" and contains
              tracing code)
ojdbc6dms.jar (Same as ojdbc6.jar, except that it contains instrumentation to 
               support DMS and limited java.util.logging calls)
ojdbc6dms_g.jar (Same as ojdbc6_g.jar except that it contains instrumentation to 
                 support DMS)

Q1:这些都是 Oracle 所说的“JDBC Thin”驱动程序(还是一些 OCI “thick”驱动程序)?

Q2:这些都是 Type 4 驱动程序吗?

Q3:这些都是免费的吗(假设我已经购买了 Oracle 11G 数据库许可证)?

Q4:假设编译时间不是问题,不是所有_g.tar 文件都是首选,特别是因为 -g 编译选项(例如对调试有用)可以关闭(例如增加生产编译代码的速度)?或者,当我投入生产时,是否应该将驱动程序切换到非 _g 文件(例如,将 ojdbc_g.jar 替换为 ojdbc.jar)?

Q5:我什至不确定 NLS、Oracle 对象和集合类型或 DMS 指的是什么。任何关于何时支持这些概念的驱动程序有用的建议将不胜感激。

【问题讨论】:

    标签: oracle jdbc


    【解决方案1】:

    A1。是的。 JDBC 瘦。 OCI 版本与 Instant 客户端相关,并且是特定于平台的。

    A2。是的。这些都是平台无关的,只是即插即用呵呵。

    A3。是的。尽管没有数据库许可证,您也可以使用它们。事实上,您同意 OTN 许可来下载它们:)

    A4。 _g 在开发时很有用。否则,请继续使用第一个。

    A5。 NLS 指的是国际化支持。意味着不存在用于 NLS 对对象和集合的支持的类,但这些仅用于关于在客户端和 DB 之间传输的某种数据的非常具体的要求。 DMS指的是Dynamic Monitoring Metrics,也很具体(不鼓励常用驱动)

    【讨论】:

    • 谢谢阿尔法布拉沃!跟进 A4,如果我使用同一台服务器进行开发和生产,我可以在服务器上同时下载 ojdbc6.jar 和 ojdbc6_g.jar,然后只需更改 java 代码以在两者之间进行选择吗?或者,每台服务器是否只允许一个驱动程序?
    • 驱动程序只是一个带有类和东西的 JAR,准备好建立一个套接字并通过它传递你的请求。您可以将它们都放在您的 Web 项目或 Web 服务器/容器上,但在类路径中仅引用其中一个,以便 DB 连接使用您想要的。如果您将它们都包含在您的项目库中,则有可能获得 classcastexceptions 或类似的东西
    • 是否可以在java程序中硬编码jar文件的完整路径(我假设需要在java程序中提到jar文件才能配置它以使用JDBC)?
    • 有可能杀死小猫吗?是的,先生,如今的科技一切皆有可能。
    • 我建议在生产中也使用 _g 版本(如果它们在其他方面相同),因为调试信息在极少数情况下很有用,您需要查看数据库内部的确切位置驱动程序抛出异常。
    猜你喜欢
    • 2011-09-12
    • 2012-04-04
    • 2010-11-18
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2011-09-02
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多