2016-08-30 8 views
0

DB와 MS Access DB 간의 통합을 위해 Boomi를 사용하고 있습니다. uCanAccess를 JDBC로 사용하여 MS Access DB를 읽고 쓸 수 있습니다.부이 타이머의 uCanAccess 오류가 이미 취소되었습니다.

그러나 초기 쿼리가 49 행 이상을 반환하면 Boomi와 차례로 uCanAccess에서 다음과 같은 오류가 발생합니다. 한 번에 10 개의 문서 만 처리하기 위해 흐름 제어를 사용해 보았지만 작동하지 않았습니다. 같은 오류. 배치 수를 변경하려고했습니다. 아무것도. 권장 Jackcess와 HSQLDB 버전

작업이 성공 삽입하지만 업데이트 작업에

Test execution of RYN-EMPDATA-BadgeDB completed with errors. Embedded message: Timer already cancelled.

Error Screen Shot

uCanAccess site 버전 3.0.6은하지 않습니다. 우리는 액세스 파일에서 가져온 동적 업데이트 DB 프로필을 사용하고 있습니다.

몇 가지 새로운 정보. 특정 레코드에서 오류가 발생합니다. 문제의 원인을 테스트 광범위한 후

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 : 여기

상단 자바 오류의 일부이며 나는 그것이 전달되는 NULL 값에 대해 불평 생각하지만 난 100 %가 될 수 없습니다 필드 중 하나에 2 진 데이터가 들어있는 필드로 이동하는 것과 관련이 있습니다. 우리는 해당 필드를 업데이트하지 않지만 uCanAccess가 바이너리 데이터 (프로그램에 의해 저장된 사진)가있는 행에 도달하면 어떤 이유로 실패합니다.

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 
+0

대신 StackOverflowError처럼 보입니다. UCanAccess 콘솔 (UCanAccess 배포판)을 사용하여 동일한 업데이트 작업을 수행하고 어떤 일이 발생했는지 알려주십시오 (여기서 출력 내용 복사). – jamadei

+0

추가 테스트 정보가 있습니다. 열 중 하나에 2 진 데이터가있는 필드에서는 실패합니다. 우리는 소프트웨어에 대한 이미지를 보유하고있는 Photo 칼럼을 가지고 있습니다. 해당 행에 2 진 데이터가 있으면 실패합니다. 비록 우리가 그 분야를 업데이트하지는 않습니다. (콘솔을 통해 업데이트하는 법도 모르겠다. 배울 것이고, 내가 무엇을 얻을 수 있는지 알아야한다.) – Fritz

+0

* "콘솔을 통해 업데이트하는 방법"* - 간단히'console.bat '또는'console.sh'를 사용하십시오. 이 파일들은 UCanAccess 바이너리 배포판의 루트 폴더에 있습니다 ([screenshot] (http://i.stack.imgur.com/O96Bs.png)). –

답변

0

이 많은이시기에 내려온 : 여기

는 uCanAccess 콘솔을 통해 동일한 레코드를 업데이트하려고에서 출력됩니다. 누군가 처리하기 직전에 DB에 있다면 오류가 발생합니다. 또한, 나는 30 개 항목의 낱단으로 처리를 분할해야했다. DB를 약 30 % 팽창시키기 때문에 각 실행 후에 컴팩트/복구를 실행할 프로세스를 설정해야했습니다.

부미는 AccessDB에 쓰기가 간단한 작업이어야합니다. 이 작업을 수행하기 위해 UCanAccess로 되돌릴 필요는 없습니다.