Boomi 计时器中的 uCanAccess 错误已取消
uCanAccess error in Boomi Timer already cancelled
我们正在使用 Boomi 在数据库和 MS Access 数据库之间进行集成。我们使用 uCanAccess 作为 JDBC,因此我们可以 read/write MS Access 数据库。
但是,如果我们的初始查询 returns 超过 49 行,我们会收到来自 Boomi 和 uCanAccess 的以下错误。我尝试使用流控制以便一次只处理 10 个文档,但这没有用。同样的错误。
我尝试更改批次计数。没有什么。
Test execution of RYN-EMPDATA-BadgeDB completed with errors. Embedded message: Timer already cancelled.
uCanAccess site
带有推荐的 Jackcess 和 HSQLDB 版本的 3.0.6 版本
插入操作成功,但更新操作失败。我们正在使用从访问文件导入的动态更新数据库配置文件。
一些新信息。
原来失败来自特定的记录。我认为它在抱怨传递了 NULL 值,但我不能 100%
这是 Java 错误的顶部:
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.WhosebugError
at java.nio.DirectByteBuffer.put(Unknown Source)
at java.nio.DirectByteBuffer.put(Unknown Source)
9/6 经过大量测试,问题的原因与获取其中一个字段中包含二进制数据的字段有关。我们没有更新该字段,但出于某种原因,一旦 uCanAccess 命中包含二进制数据(程序存储的照片)的行,它就会失败。
这是尝试通过 uCanAccess 控制台更新相同记录的输出:
UCanAccess>update badgelisting set firstname="Test", lastname="stuff", active="false" where idnumber=58;
java.lang.WhosebugError
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
很多这都归结为时机。如果有人在处理之前就在数据库中,我会得到错误。此外,我不得不将处理过程分解为 30 个项目。然后我必须设置一个进程,在每个 运行 之后 运行 一个 compact/repair,因为它使数据库膨胀了大约 30%。
至于 Boomi,写入 AccessDB 应该是一项简单的任务。我不应该为了完成这件事而恢复到 UCanAccess。
我们正在使用 Boomi 在数据库和 MS Access 数据库之间进行集成。我们使用 uCanAccess 作为 JDBC,因此我们可以 read/write MS Access 数据库。
但是,如果我们的初始查询 returns 超过 49 行,我们会收到来自 Boomi 和 uCanAccess 的以下错误。我尝试使用流控制以便一次只处理 10 个文档,但这没有用。同样的错误。 我尝试更改批次计数。没有什么。
Test execution of RYN-EMPDATA-BadgeDB completed with errors. Embedded message: Timer already cancelled.
uCanAccess site 带有推荐的 Jackcess 和 HSQLDB 版本的 3.0.6 版本
插入操作成功,但更新操作失败。我们正在使用从访问文件导入的动态更新数据库配置文件。
一些新信息。 原来失败来自特定的记录。我认为它在抱怨传递了 NULL 值,但我不能 100%
这是 Java 错误的顶部:
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.WhosebugError
at java.nio.DirectByteBuffer.put(Unknown Source)
at java.nio.DirectByteBuffer.put(Unknown Source)
9/6 经过大量测试,问题的原因与获取其中一个字段中包含二进制数据的字段有关。我们没有更新该字段,但出于某种原因,一旦 uCanAccess 命中包含二进制数据(程序存储的照片)的行,它就会失败。
这是尝试通过 uCanAccess 控制台更新相同记录的输出:
UCanAccess>update badgelisting set firstname="Test", lastname="stuff", active="false" where idnumber=58;
java.lang.WhosebugError
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
很多这都归结为时机。如果有人在处理之前就在数据库中,我会得到错误。此外,我不得不将处理过程分解为 30 个项目。然后我必须设置一个进程,在每个 运行 之后 运行 一个 compact/repair,因为它使数据库膨胀了大约 30%。
至于 Boomi,写入 AccessDB 应该是一项简单的任务。我不应该为了完成这件事而恢复到 UCanAccess。