Re: Commit Exception Error

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Sun Jan 13 2008 - 05:32:50 EST

  • Next message: marco turchi: "Re: Commit Exception Error"

    At this point it is hard to recommend anything specific with no access
    to your environment... Now that the client side is setup to handle
    connection timeouts, you may have to start digging on the server side,
    tweaking appropriate MySQL options (e.g. those in my.cnf).

    Andrus

    On Jan 12, 2008, at 10:08 PM, marco turchi wrote:

    > Hi Andrus,
    > I have created the new url adding what u have suggested me...
    > <url
    > value="jdbc:mysql://enm-nc-srv1/subsumer?
    > connectTimeout=0&amp;autoReconnect=true"/>
    > but I get again the same 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: Communication link failure:
    > java.net.SocketException, underlying cause: Broken pipe
    >
    > ** BEGIN NESTED EXCEPTION **
    >
    > java.net.SocketException
    > MESSAGE: Broken pipe
    >
    > STACKTRACE:
    >
    > java.net.SocketException: Broken pipe
    > at java.net.SocketOutputStream.socketWrite0(Native Method)
    > at
    > java.net.SocketOutputStream.socketWrite(SocketOutputStream.java
    > :92)
    > at java.net.SocketOutputStream.write(SocketOutputStream.java:
    > 136)
    > at java.io.BufferedOutputStream.flushBuffer(
    > BufferedOutputStream.java:65)
    > at
    > java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    > at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1765)
    > at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1728)
    > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1149)
    > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
    > at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1225)
    > at com.mysql.jdbc.Connection.execSQL(Connection.java:2278)
    > at com.mysql.jdbc.Connection.execSQL(Connection.java:2225)
    > at com.mysql.jdbc.Statement.execute(Statement.java:906)
    > 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)
    > 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)
    >
    >
    > ** END NESTED EXCEPTION **
    >
    >
    > at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1786)
    > at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1728)
    > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1149)
    > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
    > at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1225)
    > at com.mysql.jdbc.Connection.execSQL(Connection.java:2278)
    > at com.mysql.jdbc.Connection.execSQL(Connection.java:2225)
    > at com.mysql.jdbc.Statement.execute(Statement.java:906)
    > 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
    > 12 Jan 2008 19:40:25,088 - INFO main
    > com.translation.alg.TranslationNews - [
    > Ljava.lang.StackTraceElement..551f60
    >
    >
    > I'm quite desperate!!! :-)
    > thanks
    > Marco
    >
    > On Jan 11, 2008 10:06 AM, Andrus Adamchik <andru..bjectstyle.org>
    > wrote:
    >
    >> To make it valid XML you will need to replace "&" with "&amp;" (or
    >> use
    >> CayenneModeler that will do it for you).
    >>
    >> Andrus
    >>
    >>
    >> On Jan 11, 2008, at 12:02 PM, marco turchi wrote:
    >>
    >>> I have added the string that u send me,
    >>>
    >>> <url
    >>> value="jdbc:mysql://enm-nc-srv1/subsumer?
    >>> connectTimeout=0&autoReconnect=true"/>
    >>>
    >>>
    >>> but I get:
    >>> java.lang.ExceptionInInitializerError
    >>> at
    >>> com.translation.alg.TranslationNews.run(TranslationNews.java:33)
    >>> at
    >>> com.translation.alg.TranslationNews.main(TranslationNews.java:21)
    >>> Caused by: org.objectstyle.cayenne.ConfigurationException: [v.1.2.3
    >>> May 6
    >>> 2007] Error during Configuration initialization. [v.1.2.3 May 6
    >>> 2007] Load
    >>> failures. Main configuration class:
    >>> org.objectstyle.cayenne.conf.DefaultConfiguration, details:
    >>> domain.node.name=TranslationNode,
    >>> domain.node.datasource=TranslationNode.driver.xml, reason:
    >>> DataSource load
    >>> failed - The reference to entity "autoReconnect" must end with the
    >>> ';'
    >>> delimiter.
    >>> at
    >>> org
    >>> .objectstyle
    >>> .cayenne.conf.Configuration.initializeSharedConfiguration(
    >>> Configuration.java:321)
    >>> at
    >>> org
    >>> .objectstyle
    >>> .cayenne.conf.Configuration.initializeSharedConfiguration(
    >>> Configuration.java:294)
    >>> at
    >>> org
    >>> .objectstyle
    >>> .cayenne.conf.Configuration.initializeSharedConfiguration(
    >>> Configuration.java:275)
    >>> at
    >>> org.objectstyle.cayenne.conf.Configuration.getSharedConfiguration
    >>> (Configuration.java:212)
    >>> at
    >>> org.objectstyle.cayenne.access.DataContext.createDataContext(
    >>> DataContext.java:242)
    >>> at com.translation.alg.News.<clinit>(News.java:17)
    >>> ... 2 more
    >>>
    >>> I have added ";" at the end of the string, but nothing changes
    >>> <url
    >>> value="jdbc:mysql://enm-nc-srv1/subsumer?
    >>> connectTimeout=0&autoReconnect=true;"/>
    >>>
    >>> Thanks
    >>> Marco
    >>> On Jan 11, 2008 9:51 AM, marco turchi <marco.turch..mail.com>
    >>> wrote:
    >>>
    >>>> Thanks...I'm going to try...
    >>>> Marco
    >>>>
    >>>>
    >>>> On Jan 11, 2008 9:39 AM, Andrus Adamchik <andru..bjectstyle.org>
    >>>> wrote:
    >>>>
    >>>>> This is still a connection timeout issue. I dug up some of my own
    >>>>> production configurations developed to address a similar issue.
    >>>>> Here
    >>>>> is another URL parameter you may try - "connectTimeout". E.g.:
    >>>>>
    >>>>> jdbc:mysql://server/database?connectTimeout=0&autoReconnect=true
    >>>>>
    >>>>> Andrus
    >>>>>
    >>>>> On Jan 11, 2008, at 1:36 AM, marco turchi wrote:
    >>>>>
    >>>>>> Hi Andrus,
    >>>>>> no good news...
    >>>>>> I have run the software using the changes that u have suggested
    >>>>>> me,
    >>>>>> but I
    >>>>>> get:
    >>>>>> 10 Jan 2008 23:19:30,036 - ERROR main
    >>>>>> com.translation.alg.TranslationNews -
    >>>>>> Fatal 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 : Communication link failure:
    >>>>>> java.net.SocketException, underlying cause: Broken pipe
    >>>>>>
    >>>>>> ** BEGIN NESTED EXCEPTION **
    >>>>>>
    >>>>>> java.net.SocketException
    >>>>>> MESSAGE: Broken pipe
    >>>>>>
    >>>>>> STACKTRACE:
    >>>>>>
    >>>>>> java.net.SocketException: Broken pipe
    >>>>>> at java.net.SocketOutputStream.socketWrite0(Native Method)
    >>>>>> at
    >>>>>> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java
    >>>>>> :92)
    >>>>>> at
    >>>>>> java.net.SocketOutputStream.write(SocketOutputStream.java:
    >>>>>> 136)
    >>>>>> at java.io.BufferedOutputStream.flushBuffer(
    >>>>>> BufferedOutputStream.java:65)
    >>>>>> at
    >>>>>> java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    >>>>>> at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1765)
    >>>>>> at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1728)
    >>>>>> at com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java:1149)
    >>>>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
    >>>>>> at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1225)
    >>>>>> at com.mysql.jdbc.Connection.execSQL(Connection.java :2278)
    >>>>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:2225)
    >>>>>> at com.mysql.jdbc.Statement.execute(Statement.java:906)
    >>>>>> 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)
    >>>>>> 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)
    >>>>>> ** END NESTED EXCEPTION **
    >>>>>>
    >>>>>>
    >>>>>> at com.mysql.jdbc.MysqlIO.send(MysqlIO.java :1786)
    >>>>>> at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1728)
    >>>>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1149)
    >>>>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
    >>>>>> at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1225)
    >>>>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:2278)
    >>>>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:2225)
    >>>>>> at com.mysql.jdbc.Statement.execute(Statement.java:906)
    >>>>>> 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
    >>>>>> 10 Jan 2008 23:19:30,103 - INFO main
    >>>>>> com.translation.alg.TranslationNews - [
    >>>>>> Ljava.lang.StackTraceElement..551f60
    >>>>>>
    >>>>>> I do not know what it is...
    >>>>>> sorry aout that
    >>>>>> thanks
    >>>>>> Marco
    >>>>>>
    >>>>>>
    >>>>>> On Jan 10, 2008 12:50 PM, marco turchi < marco.turch..mail.com>
    >>>>> wrote:
    >>>>>>
    >>>>>>> sorry about that... :-)
    >>>>>>> Thanks
    >>>>>>> Marco
    >>>>>>>
    >>>>>>>
    >>>>>>> On Jan 10, 2008 12:47 PM, Andrus Adamchik <
    >>>>>>> andru..bjectstyle.org>
    >>>>>>> wrote:
    >>>>>>>
    >>>>>>>> Ah cool. I thought I was going crazy :-)
    >>>>>>>>
    >>>>>>>> Andrus
    >>>>>>>>
    >>>>>>>> On Jan 10, 2008, at 2:37 PM, marco turchi wrote:
    >>>>>>>>
    >>>>>>>>> Hi Andrus,
    >>>>>>>>> sorry you are right I have added the autoReconnect to the
    >>>>>>>>> wrong
    >>>>>>>>> place...
    >>>>>>>>> now the software is started, I'll see what happens at the
    >>>>>>>>> end...
    >>>>>>>>> thanks
    >>>>>>>>> Marco
    >>>>>>>>>
    >>>>>>>>> On Jan 10, 2008 11:01 AM, marco turchi < marco.turch..mail.com
    >>>>>>>>> >
    >>>>>>>> wrote:
    >>>>>>>>>
    >>>>>>>>>> <?xml version="1.0" encoding="utf-8"?>
    >>>>>>>>>> <driver project-version="1.1" class="com.mysql.jdbc.Driver">
    >>>>>>>>>> <url
    >>>>>>>>>> value="jdbc:mysql://enm-nc-srv1/subsumer?
    >>>>>>>>>> autoReconnect=true"/>
    >>>>>>>>>> <connectionPool min="1" max="1" />
    >>>>>>>>>> <login userName="####" password="#####"/>
    >>>>>>>>>> </driver>
    >>>>>>>>>> thanks
    >>>>>>>>>> Marco
    >>>>>>>>>>
    >>>>>>>>>> On Jan 10, 2008 10:51 AM, Andrus Adamchik <
    >>>>>>>>>> andru..bjectstyle.org>
    >>>>>>>>>> wrote:
    >>>>>>>>>>
    >>>>>>>>>>>
    >>>>>>>>>>>
    >>>>>>>>>>>
    >>>>>>>>>>> On Jan 10, 2008, at 12:33 PM, marco turchi wrote:
    >>>>>>>>>>>
    >>>>>>>>>>>>>> DataSource load failed - Can not load JDBC driver named
    >>>>>>>>>>>>>> 'com.mysql.jdbc.Driver
    >>>>>>>>>>>>>> ?autoReconnect=true': com.mysql.jdbc.Driver?
    >>>>>>>>>>>>>> autoReconnect=true
    >>>>>>>>>>>
    >>>>>>>>>>> But this is what generates an error... so somehow the driver
    >>>>>>>>>>> name
    >>>>>
    >>>>>>>>>>> seems messed up. Could you post the entire file (just remove
    >>>>>>>>>>> the
    >>>>>>>>>>> password)?
    >>>>>>>>>>>
    >>>>>>>>>>> Andrus
    >>>>>>>>>>>
    >>>>>>>>>>>
    >>>>>>>>>>
    >>>>>>>>
    >>>>>>>>
    >>>>>>>
    >>>>>
    >>>>>
    >>>>
    >>
    >>



    This archive was generated by hypermail 2.0.0 : Sun Jan 13 2008 - 05:33:28 EST