通过 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链接oracle数据库失败,代码如下,运行后,显示:常连接到数据库。 但没有抓到资料。
在哪里下载 sun.jdbc.odbc.JdbcOdbcDriver(尝试将输出 csv 从 Spoon 连接到 SSMS)