Jdbc_reader_error - queue is closed.com

(Rajashekhar Reddy) #1

Hello Colleagues,

We are trying to execute a project on DEV environment(11.4 v). We made sure to allocate enough memory for each load components as well as dqc.ini files. But while execution we are getting the following error message.

com.ataccama.dqd.core.DqdProcessingException: Plan “D:\Ataccama\Git\AtaccamaLMR\AtaccamaLMR\LMR\Files\engine\load\LMR_LMR_Commitments.comp” execution failed: runtime.error.jdbc_reader_error - queue is closed.com.ataccama.dqc.model.elements.data.flow.QueueException: queue is closed.
at com.ataccama.dqc.mo

at com.ataccama.dqc.model.elements.data.flow.RecordQueue.access$100(RecordQueue.java:33)
at com.ataccama.dqc.model.elements.data.flow.RecordQueue$InputEndpoint.putBatch(RecordQueue.java:234)
at com.ataccama.dqc.processor.internal.monitoring.MonitoringQueueInputPoint.putBatch(MonitoringQueueInputPoint.java:35)
at com.ataccama.dqc.model.elements.data.flow.QueueBatcher.addRecord(QueueBatcher.java:72)
at com.ataccama.dqc.tasks.io.jdbc.read.JdbcReaderInstance.run(JdbcReaderInstance.java:134)
at com.ataccama.dqc.processor.internal.runner.ComplexStepNode.runNode(ComplexStepNode.java:69)
at com.ataccama.dqc.processor.internal.runner.RunnableNode.run(RunnableNode.java:28)
at com.ataccama.dqc.commons.threads.AsyncExecutor$RunningTask.run(AsyncExecutor.java:131)
at java.lang.Thread.run(Thread.java:745)

at com.ataccama.dqd.internal.engine.process.DqdLocalPlanExecutor.run(DqdLocalPlanExecutor.java:151)
at com.ataccama.dqd.engine.sources.PlanDataSource$PlanDataSourceRtm.run(PlanDataSource.java:107)
at com.ataccama.dqd.internal.engine.process.DqdProcessing.runModel(DqdProcessing.java:233)
at com.ataccama.dqd.internal.engine.process.DqdProcessing.run(DqdProcessing.java:193)
at com.ataccama.dqd.internal.engine.DqdExecutor$DqdTaskRunnable.run(DqdExecutor.java:152)
at com.ataccama.dqd.internal.engine.DqdExecutor$Runner$InnerRunnable.run(DqdExecutor.java:371)
at com.ataccama.dqc.commons.threads.ThreadSet$1.run(ThreadSet.java:52)
at java.lang.Thread.run(Thread.java:745)

(Evgeni Enchev) #2

Hello Rajashekhar,

The queue is closed exception indicates that your plan contains a JDBC reader step, which has unexpectedly stopped reading records. Consequently, the execution could not proceed.
One of the most common reasons for that could be the nature of the reader steps. They utilize your JAVA temporary directory as a buffer for all the input data. As a result, this directory must have space at least of the size of the table you are reading. We even recommend a 2 or 3 multiplier to that, as the plan processing itself caches additional data.
I would suggest:

  1. In the Admin Center, navigate to the Java Properties node. Get the value of the java.io.tmpdir parameter
  2. Check whether the directory, pointed by the parameter, has enough free space to fit the tables being read.

If the above does not help, please share the full log file.


(Rajashekhar Reddy) #3

Hello Evgeni,

We did find the location of Java.io.tmpdir . It points to the location **C:\Users\e014109\AppData\Local\Temp\2**. But our Ataccama installation directory is D-drive.
We found that C-drive has 60 GB total space—with 33.8 GB free, can you please advise how to change the location of Java.io.tmpdir parameter.

1 2

(Evgeni Enchev) #4

Hello Rajashekhar,

You can set the java.io.tmpdir by changing the [ATACCAMAHOME]\runtime\bin\onlinectl.bin script like so:


(Rajashekhar Reddy) #5

Hello Evgeni,

Thank you for feedback and it worked for us.

But encountered a new error message “runtime.error.jdbc_reader_error - DB2 SQL Error: SQLCODE=-952, SQLSTATE=57014, SQLERRMC=null, DRIVER=4.12.55com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-952, SQLSTATE=57014, SQLERRMC=null, DRIVER=4.12.55”.

I checked on stack overflow and found out that, this possibly link to time out error of application.(https://stackoverflow.com/questions/25977258/db2-sql-error-sqlcode-952-sqlstate-57014-from-tibco-bw)

Could you please let us know which configuration file has information regarding time out error.


(Evgeni Enchev) #6

Hello Rajashekhar,

The runtimeConfig file allows specifying additional database connection pool properties. Some of them help in preventing timeouts and disconnects, especially the minSize parameter. You can check our documentation article, particularly the Data Sources part.

Also I’d try to eliminate any lower level networking barriers - for instance is there any sort of firewall or proxy between the database and the application server?

If the above does not help, I advise upgrading to the latest DB2 JDBC driver. The exception indicates you use version 4.12.55 (released 2011/10/06), which is bundled with Ataccama and stable, but may not support certain use cases. My suggestion would be to target version 4.24.92. It can be downloaded from the official website of IBM DB2 here. A registration may be required.
Once done, replace the db2*.jar file under your [ATACCAMAHOME]\runtime\lib with the newly downloaded and extracted jar.