When I attempt to store drill-through data in the included Derby DB I receive the following errors in the console.
03.03.2011 20:12:14 [WARNING] Problem when closing sql connection.
java.sql.SQLException: Cannot close a connection while a transaction is still active.
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.Connection.closeResourcesX(Unknown Source)
at org.apache.derby.client.am.Connection.closeX(Unknown Source)
at org.apache.derby.client.net.NetConnection.closeX(Unknown Source)
at org.apache.derby.client.am.Connection.close(Unknown Source)
at org.apache.derby.client.net.NetConnection.close(Unknown Source)
at org.apache.derby.client.net.NetConnection40.close(Unknown Source)
at com.ataccama.dqc.model.internal.modelimpl.ConnectionCreator.disposeResource(ConnectionCreator.java:39)
at com.ataccama.dqc.model.internal.modelimpl.ConnectionCreator.disposeResource(ConnectionCreator.java:22)
at com.ataccama.dqc.commons.resourcepool.ResourcesPool.disposeResource(ResourcesPool.java:110)
at com.ataccama.dqc.commons.resourcepool.ResourcesPool.stop(ResourcesPool.java:120)
at com.ataccama.dqc.model.internal.modelimpl.PoolingDataSource.dispose(PoolingDataSource.java:125)
at com.ataccama.dqc.model.internal.modelimpl.config.PooledDatabaseSupport.dispose(PooledDatabaseSupport.java:45)
at com.ataccama.dqc.processor.bin.CifProcessor.execute(CifProcessor.java:304)
at com.ataccama.dqc.processor.bin.CifProcessor.main(CifProcessor.java:145)
Caused by: org.apache.derby.client.am.SqlException: Cannot close a connection while a transaction is still active.
at org.apache.derby.client.am.Connection.checkForTransactionInProgress(Unknown Source)
... 14 more
The following messages are found by double-clicking the "Failed to record Drill-through information"
java.lang.IllegalArgumentException: Precision exceeds 31 digits!
at org.apache.derby.client.am.Utils.computeBigDecimalPrecision(Unknown Source)
at org.apache.derby.client.net.NetStatementRequest.computeProtocolTypesAndLengths(Unknown Source)
at org.apache.derby.client.net.NetStatementRequest.buildSQLDTAcommandData(Unknown Source)
at org.apache.derby.client.net.NetStatementRequest.writeExecute(Unknown Source)
at org.apache.derby.client.net.NetPreparedStatement.writeExecute_(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.writeExecute(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.executeBatchRequestX(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.executeBatchX(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.executeBatch(Unknown Source)
at com.ataccama.dqc.model.internal.modelimpl.PoolingDataSource$StatementDecorator.executeBatch(PoolingDataSource.java:765)
at com.ataccama.dqc.tasks.profiling.runtime.RollUpWrap.processDrillDown(RollUpWrap.java:455)
at com.ataccama.dqc.tasks.profiling.ProfilingAlgorithmInstance$InputRunnable.drillDown(ProfilingAlgorithmInstance.java:358)
at com.ataccama.dqc.tasks.profiling.ProfilingAlgorithmInstance$InputRunnable.access$400(ProfilingAlgorithmInstance.java:282)
at com.ataccama.dqc.tasks.profiling.ProfilingAlgorithmInstance.run(ProfilingAlgorithmInstance.java:216)
at com.ataccama.dqc.processor.internal.runner.ComplexStepNode.runNode(ComplexStepNode.java:57)
at com.ataccama.dqc.processor.internal.runner.Node.run(Node.java:123)
at java.lang.Thread.run(Unknown Source)
I have rebooted the machine (cold boot) and the problem is still occurring. I have created drill-through information in the Derby DB in the past and am not sure what caused the problem.
Thanks in advance for your help. Steve
Help get this topic noticed by sharing it on
Twitter,
Facebook, or email.
Twitter,
Facebook, or email.
-
Hello Steve,
thanks for the report. I think those are 2 separated problems.
1) Problem when closing connection - this is a problem, which we have solved previously and should be fixed, when you download a new DQ Analyzer from our web page. If it won't help you or your are sure, you have the latest version, we should investigate it further.
2) Precision exceeds 31 digits! - this is a second problem, we can reproduce it once we are trying to save a LONG value with more digits then 31 into drill-through table in Derby. Can you check whether you have such values in your input data?
We didn't expect anybody would have such a long number value in data, but we may do something about it. What you can try is to read all columns from the input as strings. I expect you are profiling a database table, in Create new profile dialog check "Plan file" radio button under Type of file to create. Open the step called Jdbc Reader in the created Plan. Under Columns tab, try to change the data types of LONG columns to STRING. Then run the plan by clicking Run button in toolbar or in context menu of plan editor.
I'll inform you, if we come out with a fix or another possible workaround. -
-
Thanks Martin. I'll be able to try the new version in a couple of weeks. Regarding the LONG value issue (31+ digit precision) I checked the data types of the columns in the JDBC step and they are all either STRING or FLOAT. I have used the same database and data successfully to create profiles in the past so perhaps this is related to the first issue. Honestly I'd prefer to use the MySQL 5.1 DB I have for drill-through instead of Derby but I'm having issues with that as well. There is another thread on this started by Surf Games Spider that I've added comments to.
-
-
Hi again,
I forgot to say that columns with data type FLOAT can do that as well in case there are a lot of digits in it.
We are investigating your problem your problem with MySQL, I will inform you in that thread. -
-
Thanks Martin. I think this is actually caused by errors in the database data itself - not DQ Analyzer. I will attempt to correct or purge the corrupt records and rerun.
-
Loading Profile...




EMPLOYEE
