Hi Marco,
I think what you need is a reconnect parameter in your MySQL URL. E.g.:
jdbc:mysql://localhost/test?autoReconnect=true
Andrus
On Jan 8, 2008, at 8:02 PM, marco turchi wrote:
> Dear experts,
> I'm running a java software that gets some data from the DB,
> computes them
> and the writes the result to the DB... Unfortunately, the
> computation of the
> data gets 10 hs...
> I'm able to get the data, compute them, but when I try to write to
> the DB, I
> get this error:
> org.objectstyle.cayenne.CayenneRuntimeException: [v.1.2.3 May 6
> 2007] Commit
> Exception
> at org.objectstyle.cayenne.access.DataContext.flushToParent(
> DataContext.java:1290)
> at org.objectstyle.cayenne.access.DataContext.commitChanges (
> DataContext.java:1166)
> at com.translation.alg.WriterData.insert(WriterData.java:57)
> at com.translation.alg.News.write(News.java:85)
> at
> com.translation.alg.TranslationNews.run(TranslationNews.java :66)
> at
> com.translation.alg.TranslationNews.main(TranslationNews.java:21)
> Caused by: java.sql.SQLException: Connection.close() has already been
> called. Invalid operation in this state.
> at com.mysql.jdbc.Connection.getMutex (Connection.java:2130)
> at com.mysql.jdbc.Statement.execute(Statement.java:866)
> at
> org.objectstyle.cayenne.dba.mysql.MySQLPkGenerator.pkFromDatabase
> (MySQLPkGenerator.java:123)
> at
> org.objectstyle.cayenne.dba.JdbcPkGenerator.generatePkForDbEntity(
> JdbcPkGenerator.java:326)
> at
> org
> .objectstyle
> .cayenne.access.DataDomainInsertBucket.createPermIdsForObjEntity
> (DataDomainInsertBucket.java:194)
> at
> org
> .objectstyle
> .cayenne.access.DataDomainInsertBucket.appendQueriesInternal(
> DataDomainInsertBucket.java:122)
> at
> org.objectstyle.cayenne.access.DataDomainSyncBucket.appendQueries
> (DataDomainSyncBucket.java:108)
> at
> org.objectstyle.cayenne.access.DataDomainFlushAction.preprocess (
> DataDomainFlushAction.java:211)
> at org.objectstyle.cayenne.access.DataDomainFlushAction.flush(
> DataDomainFlushAction.java:167)
> at org.objectstyle.cayenne.access.DataDomain.onSyncFlush(
> DataDomain.java :846)
> at org.objectstyle.cayenne.access.DataDomain$2.transform(
> DataDomain.java:817)
> at org.objectstyle.cayenne.access.DataDomain.runInTransaction(
> DataDomain.java:862)
> at org.objectstyle.cayenne.access.DataDomain.onSync
> (DataDomain.java
> :814)
> at org.objectstyle.cayenne.access.DataContext.flushToParent(
> DataContext.java:1262)
> ... 5 more
>
> I have tried to delete and recreate the DataContext using
> createDataContext() before to write to the table, but I get the same
> error.
> (I have created the DataContext the first time when I start the
> program...)
> Can u help me?
> Thanks a lot
> Marco
This archive was generated by hypermail 2.0.0 : Wed Jan 09 2008 - 10:17:56 EST