首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boomi计时器中的uCanAccess错误已经取消

Boomi计时器中的uCanAccess错误已经取消
EN

Stack Overflow用户
提问于 2016-08-30 18:10:19
回答 1查看 267关注 0票数 0

我们使用Boomi在DB和MS Access DB之间进行集成。我们使用uCanAccess作为JDBC,这样就可以读写uCanAccess。

但是,如果我们的初始查询返回的行超过49行,那么我们将从Boomi收到以下错误,然后再返回uCanAccess。为了一次只处理10个文档,我尝试使用流控制,但这是行不通的。同样的错误。我试过更改批次计数。没什么。

RYN BadgeDB的测试执行与错误一起完成。嵌入式消息:定时器已经取消。

错误屏幕截图

包含推荐的Jackcess和HSQLDB版本的uCanAccess站点版本3.0.6

插入操作成功,但更新操作没有成功。我们使用的是从Access文件导入的动态更新DB配置文件。

一些新的信息。结果是失败发生在一个特定的记录上。我想这是在抱怨一个空值被传递,但是我不能100%

以下是Java错误的顶部:

代码语言:javascript
复制
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 null
    at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:212)
    at com.boomi.connector.database.executor.SQLWriteExecutor.checkCommit(SQLWriteExecutor.java:44)
    at com.boomi.connector.database.executor.SQLWriteExecutor.execute(SQLWriteExecutor.java:65)
    at com.boomi.connector.database.DatabaseSend.executeData(DatabaseSend.java:192)
    at com.boomi.connector.database.DatabaseSend.executeStatement(DatabaseSend.java:144)
    at com.boomi.connector.database.DatabaseSend.executeDocument(DatabaseSend.java:121)
    at com.boomi.connector.database.DatabaseSend.handle(DatabaseSend.java:297)
    at com.boomi.connector.database.DatabaseSend.send(DatabaseSend.java:72)
    at com.boomi.connector.custom.CustomSendConnectorAction.invoke(CustomSendConnectorAction.java:60)
    at com.boomi.connector.base.BaseConnectorAction.invokeBase(BaseConnectorAction.java:295)
    at com.boomi.connector.base.BaseConnectorAction.invoke(BaseConnectorAction.java:234)
    at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.boomi.util.ClassUtil$InvokerWithClassLoader.invoke(ClassUtil.java:360)
    at com.sun.proxy.$Proxy30.invoke(Unknown Source)
    at com.boomi.process.shape.ConnectorShapeHandler.execute(ConnectorShapeHandler.java:152)
    at com.boomi.process.shape.ConnectorShape.execute(ConnectorShape.java:143)
    at com.boomi.process.graph.ProcessShape.executeShape(ProcessShape.java:550)
    at com.boomi.process.graph.ProcessGraph.executeShape(ProcessGraph.java:488)
    at com.boomi.process.graph.ProcessGraph.executeNextShapes(ProcessGraph.java:572)
    at com.boomi.process.graph.ProcessGraph.executeShape(ProcessGraph.java:509)
    at com.boomi.process.graph.ProcessGraph.executeNextShapes(ProcessGraph.java:572)
    at com.boomi.process.graph.ProcessGraph.executeShape(ProcessGraph.java:509)
    at com.boomi.process.graph.ProcessGraph.executeNextShapes(ProcessGraph.java:572)
    at com.boomi.process.graph.ProcessGraph.execute(ProcessGraph.java:307)
    at com.boomi.process.ProcessExecution.call(ProcessExecution.java:783)
    at com.boomi.execution.ExecutionTask.call(ExecutionTask.java:920)
    at com.boomi.execution.ExecutionTask.call(ExecutionTask.java:63)
    at com.boomi.util.concurrent.CancellableFutureTask.run(CancellableFutureTask.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 null
    at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:348)
    at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:205)
    ... 32 more
Caused by: java.lang.StackOverflowError
    at java.nio.DirectByteBuffer.put(Unknown Source)
    at java.nio.DirectByteBuffer.put(Unknown Source)

9/6在进行了广泛的测试之后,问题的原因与访问一个字段中包含二进制数据的字段有关。我们不是在更新该字段,但由于某种原因,一旦uCanAccess碰到具有二进制数据(程序存储的照片)的行,就会失败。

下面是试图通过uCanAccess控制台更新相同记录的输出:

代码语言:javascript
复制
    UCanAccess>update badgelisting set firstname="Test", lastname="stuff", active="false" where idnumber=58;
java.lang.StackOverflowError
        at java.nio.DirectByteBuffer.put(Unknown Source)
        at java.nio.ByteBuffer.put(Unknown Source)
        at java.nio.DirectByteBuffer.put(Unknown Source)
        at java.nio.DirectByteBuffer.put(Unknown Source)
        at sun.nio.ch.IOUtil.write(Unknown Source)
        at sun.nio.ch.FileChannelImpl.writeInternal(Unknown Source)
        at sun.nio.ch.FileChannelImpl.write(Unknown Source)
        at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:335)
        at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:104)
        at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:748)
        at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:732)
        at com.healthmarketscience.jackcess.impl.UsageMap.removePageNumber(UsageMap.java:322)
        at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.java:339)
        at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:104)
        at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.createNewUsageMapPage(UsageMap.java:748)
        at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.addOrRemovePageNumber(UsageMap.java:732)
        at com.healthmarketscience.jackcess.impl.PageChannel.allocateNewPage(PageChannel.ja
---
A lot of this repeated a lot... 
---
va:339)
        at com.healthmarketscience.jackcess.impl.TempPageHolder.setNewPage(TempPageHolder.java:104)
UCanAccess>UCAExc:::3.0.6 null
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-31 23:00:10

很多事情都与时机有关。如果在处理之前有人在数据库中,我会得到错误。另外,我不得不把处理过程分成30件。然后,我必须设置一个进程,在每次运行后运行一个紧凑/修复程序,因为它会使DB膨胀约30%。

至于Boomi,编写AccessDB应该是一个简单的任务。为了完成这个任务,我不应该回到UCanAccess。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39234366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档