【问题标题】:ucanaccess weird exception i cannot handleucanaccess 奇怪的异常,我无法处理
【发布时间】:2015-07-02 14:54:34
【问题描述】:

我最近开始使用 ucanaccess 来连接访问数据库(显然),直到现在一切正常。 我开始在数据库中插入大约 500,000 行......当我达到大约 400,000 时,程序停止......问题是我看不到异常!我看到了 -

    at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:763)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:747)
at com.healthmarketscience.jackcess.impl.UsageMap.removePageNumber(UsageMap.java:337)
at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:354)
at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:115)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:763)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:747)
at com.healthmarketscience.jackcess.impl.UsageMap.removePageNumber(UsageMap.java:337)
at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:354)
at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:115)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:763)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:747)
at com.healthmarketscience.jackcess.impl.UsageMap.removePageNumber(UsageMap.java:337)
at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:354)
at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:115)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:763)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:747)
at com.healthmarketscience.jackcess.impl.UsageMap.removePageNumber(UsageMap.java:337)
at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:354)
at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:115)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:763)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:747)
at com.healthmarketscience.jackcess.impl.UsageMap.removePageNumber(UsageMap.java:337)
at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:354)
at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:115)
at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:763)

我看不出异常是从哪里开始的! 它已经发生在我身上一次但是在进行“压缩和修复”之后,它又起作用了...... 现在没有了。

有人知道这是怎么回事吗?

【问题讨论】:

  • 它发生在 jackcess 层,所以你应该寻求他们的帮助(我的意思是,提供你拥有的异常堆栈跟踪,它看起来真的像堆栈溢出)。什么是 ucanaccess/jackcess 版本?
  • 在这个异常上稍微摸索了一下,它认为你有一个“非标准”数据库(看起来数据库的内部跟踪没有以预期的方式处理)。这个数据库是如何创建的?

标签: ucanaccess jackcess


【解决方案1】:

检查以下三件事。

首先,如果您使用任何 IDE,请确保增加日志缓冲区,以便您可以开始此异常。可能不会提供太多帮助,但总比看中间的某个地方要好。

其次,数据库文件大小是多少? Access DB 文件大小有限制,有时会导致此类非常规错误。检查一下。

第三 - 在使用 ucanaccess 更新/插入时,不要打开或尝试对特定数据库执行其他操作。这样做,大多数时候都会导致这个问题。

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多