如何在 MaxOSX 中从 JDBC 调用 Oracle TimesTen

Posted

技术标签:

【中文标题】如何在 MaxOSX 中从 JDBC 调用 Oracle TimesTen【英文标题】:How to call Oracle TimesTen from JDBC in MaxOSX 【发布时间】:2013-10-11 15:05:09 【问题描述】:

我在我的 Mac 上安装了 Oracle TimesTen 客户端,在 RedHat 机器上安装了 Oracle TimesTen Server,我可以从命令行远程连接

connect "dsn=TT1122;UID=uid;PWD=pwd";

我已成功连接回来。

现在我想使用 JDBC 来尝试连接到同一个 ODBC。但我得到了这个错误。

java.sql.SQLException: Problems with loading native library/missing methods: no ttJdbcCS in java.library.path
    at com.timesten.jdbc.JdbcOdbcConnection.connect(JdbcOdbcConnection.java:1757)
    at com.timesten.jdbc.TimesTenDataSource.getConnection(TimesTenDataSource.java:148)
    at TimesTen.main(TimesTen.java:17)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

我正在使用 OSX Lion 和 IntelliJ。我已经运行 ttenv.sh 来设置环境。但我似乎无法让 JDBC 工作。我在互联网上搜索并没有找到任何可以解决我的问题的东西。

谢谢

【问题讨论】:

【参考方案1】:

我没有在 Mac OSX 中使用 TimesTen,但您是否在 OSX 中设置了 ODBC/DSN?在windows中安装后,您必须将ODBC连接器与十次安装分开设置。我发现这是在 OSX 中设置 ODBC 的。

http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-configuration-dsn-macosx.html

【讨论】:

我做到了。我已经到了 IntelliJ 可以加载库的地步,但是我遇到了另一个异常,说我的库是错误的架构。【参考方案2】:

TimesTen 的 Mac OS X 客户端是一个 32 位库。您不能从 64 位 JVM 调用它。我相信 OS X 的唯一 32 位 JVM 是 java 1.6。

使用 32 位 1.6(我认为您必须在 jvm 上使用 -d32 标志),我能够连接到在 linux 服务器上运行的 TimesTen。

注意:从当前 TimesTen 版本 11.2.2.8.9 开始,Oracle 似乎添加了 64 位 MacOSX 客户端,所以上面的场景现在应该可以正常工作了。

【讨论】:

以上是关于如何在 MaxOSX 中从 JDBC 调用 Oracle TimesTen的主要内容,如果未能解决你的问题,请参考以下文章

如何在JDBC中从SQL获取sequence.nextval?

如何在spring boot jdbc中从具有批量大小的多个表中执行批量删除

Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误

了解神秘的 Oracle JDBC 错误 - ORA-00911:无效字符

jdbc 查询5万条数据出现 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数

jdbc连接oracle11g出现ora-12505错误怎么解决?