通过 Java jdbc odbc 连接到 Access 文件期间出现“超出系统资源”

Posted

技术标签:

【中文标题】通过 Java jdbc odbc 连接到 Access 文件期间出现“超出系统资源”【英文标题】:"System resource exceeded" during connection to Access file through Java jdbc odbc 【发布时间】:2012-02-08 04:01:02 【问题描述】:

我已阅读所有“超出系统资源”的帖子,但这与它们完全不同。 我花了过去 3 个小时寻找解决方案。 我没有很多连接/语句/结果集,我总是关闭所有这些。 我的代码曾经可以工作,但现在我得到了“超出系统资源”异常,不是在查询期间,而是 当我尝试连接时。 我没有从我的代码中改变任何东西,但是它目前不起作用,除了我尝试它的 10 次中的 1 次。我试图改变其中的一些东西,但没有区别。 我的 Access 文件为 15 - 50 MB。 我的代码是:

private String accessFilePath;
private Connection myConnection;
public boolean connectToAccess(String myAccessFilePath) 
    accessFilePath = myAccessFilePath;
    //Get connection to database
    try 
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        // set properties for unicode
        Properties myProperties = new Properties();
        myProperties.put("charSet", "windows-1253");
        myConnection = DriverManager.getConnection("jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=" + accessFilePath, myProperties); // I get the exception here
     catch (Exception ex) 
        System.out.println("Failed to connect to " + accessFilePath + " database\n" + ex.getMessage());
        return false;
    
    return true;

现在与其他时代有什么不同? Access 文件是否保持以前的连接打开?这里有什么问题?

【问题讨论】:

您是否尝试过重新启动操作系统?可能是由于您的程序运行中断而从未设法关闭它们的连接,因此某些与连接相关的资源从未被释放。 我已经试过重启了。这是我的第一个想法。我觉得很奇怪,在重新启动后,我在第一次连接尝试时遇到了异常。太疯狂了……我也遇到了各种 Access 文件的相同异常 哇,这太奇怪了。接下来要尝试的事情:您可以使用 ADO 从 C# 或 VB 访问这些文件吗? 【参考方案1】:

好的,我找到了解决方案。 起初,我开始了一个新的 java 项目并在那里复制了相同的代码行。 每次在我的新项目中尝试它时,我都会成功连接到我的文件。 所以它让我印象深刻。我查看了我的虚拟机设置。 在我的原始程序中我为虚拟机分配了太多内存,所以即使是单个文件连接也没有剩余内存。

我的设置是 --> VM 选项:-Xmx1536m -Xms768m(有点过分)

我把它改成了 --> 虚拟机选项:-Xmx512m -Xms256m

它奏效了。谢谢你们的cmets。 我希望这对其他人有所帮助,因为我花了很多时间才找到它。

【讨论】:

以上是关于通过 Java jdbc odbc 连接到 Access 文件期间出现“超出系统资源”的主要内容,如果未能解决你的问题,请参考以下文章

使用 JDBC-ODBC 桥连接到 SQLServer

如何从 Jython 连接到数据库

求救:jdbc_odbc链接oracle数据库失败,代码如下,运行后,显示:常连接到数据库。 但没有抓到资料。

在哪里下载 sun.jdbc.odbc.JdbcOdbcDriver(尝试将输出 csv 从 Spoon 连接到 SSMS)

如何将 obiee 连接到 postgres 数据库?

在 Eclipse JDBC ODBC 中连接数据库时出错,