As far as Cayenne is concerned, javax.sql.DataSource is pluggable. Cayenne provides one to you by default, but with the help of DataSourceFactory in the Modeler (or even directly via API) you can set your own DataSource with custom behavior. The simplest thing would be to use a non-pooling DataSource (e.g. org.apache.cayenne.conn.DriverDataSource) that would close all returned connections for real, that is if you are comfortable with disabling pooling globally for the entire app.

Andrus


On Jan 13, 2008, at 9:23 PM, marco turchi wrote:

Hi Andrus,
I was wandering about my project and I can try to change the structure of
the code....
but is it possible to close the connection and reopen it when I need it inside the same java project? It means that I can get the data from mysql, close the connection, compute what I need and reopen the connection when I'm ready to write back the results... everything into the same java project... In this way, I manage the connections... maybe this structure is obvious,
but I get it just right now :-)
the difference will be that at the moment i do not close anything after that I have got the data... and i leave everything into the java/mysql hands...

Thanks
Marco

On Jan 13, 2008 10:47 AM, marco turchi <[EMAIL PROTECTED]> wrote:

I understand, but which are the option in my.cnf that I should change? are
there any specific entries that I need to enable or disable?
thanks
Marco


On Jan 13, 2008 10:32 AM, Andrus Adamchik < [EMAIL PROTECTED]> wrote:

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;@1551f60


I'm quite desperate!!! :-)
thanks
Marco

On Jan 11, 2008 10:06 AM, Andrus Adamchik < [EMAIL PROTECTED]>
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 < [EMAIL PROTECTED]>
wrote:

Thanks...I'm going to try...
Marco


On Jan 11, 2008 9:39 AM, Andrus Adamchik <[EMAIL PROTECTED]>
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;@1551f60

I do not know what it is...
sorry aout that
thanks
Marco


On Jan 10, 2008 12:50 PM, marco turchi < [EMAIL PROTECTED] >
wrote:

sorry about that... :-)
Thanks
Marco


On Jan 10, 2008 12:47 PM, Andrus Adamchik <
[EMAIL PROTECTED]>
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 <
[EMAIL PROTECTED]

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 <
[EMAIL PROTECTED]>
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















Reply via email to