Not to start a database war or anything ;) but isn't that just trading one rather rare, but moderate sized problem for a bunch of small, but seemingly common problems (caveat: problems may just 'seem' more common because more people on the ofbiz list may use postgres)?
The 8 hour connection life is supposed to be a "feature" of MySQL that Postgres doesn't have :) Also The "8 hour life" must be parameterized somewhere, so changing that might be a possibility. In addition, why not just schedule a simple service that will hit the database every hour or so. --- Jacques Le Roux <[EMAIL PROTECTED]> wrote: > Short answer : go to postgres :o) > > Jacques > > From: "Hans Holmlund" <[EMAIL PROTECTED]> > > I have a problem with MySQL connections who fails. > I get a > > > com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException. > I found > > an explanation for this in an help page from MySQL > > > > (http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-troubleshooting.html#qandaitem-24-3-5-3-4): > > > > > " MySQL closes connections after 8 hours of > inactivity. You either need > > to use a connection pool that handles stale > connections or use the > > "autoReconnect" parameter. /-/ *Note. * Use of the > |autoReconnect| > > option is not recommended because there is no safe > method of > > reconnecting to the MySQL server without risking > some corruption of the > > connection state or database state information. > Instead, you should use > > a connection pool which will enable your > application to connect to the > > MySQL server using an available connection from > the pool. The > > |autoReconnect| facility is deprecated, and may be > removed in a future > > release." > > This (managing stale connection) is not how > EntityEngine has done its > > implementation, with EE you can only set > autoReconnect to true. I wonder > > if you have planned to change this. In the above > mentioned page there is > > some example code, so this should be an easy thing > to fix. > > > > Thanks, > > > > Hans Holmlund > > > > > > > > > > org.ofbiz.geronimo.GeronimoTransactionFactory - > Geronimo is the > > configured transaction manager but there was an > error getting a database > > Connection through Geronimo for the mysql > datasource. Please check your > > configuration, class path, etc. > > java.lang.RuntimeException: Unable to > setTransactionIsolation: > > Communications link failure due to underlying > exception: > > > > ** BEGIN NESTED EXCEPTION ** > > > > java.io.EOFException > > > > STACKTRACE: > > > > java.io.EOFException > > at > com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913) > > at > com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304) > > at > com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803) > > at > com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573) > > at > com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665) > > at > com.mysql.jdbc.Connection.execSQL(Connection.java:3118) > > at > > > com.mysql.jdbc.Connection.setTransactionIsolation(Connection.java:5499) > > at > > > org.ofbiz.minerva.pool.jdbc.xa.wrapper.XAConnectionImpl.setTransactionIsolation(XAConnectionImpl.java:117) > > > > > at > > > org.ofbiz.minerva.pool.jdbc.xa.XAConnectionFactory.prepareObject(XAConnectionFactory.java:412) > > > > > at > org.ofbiz.minerva.pool.ObjectPool.getObject(ObjectPool.java:645) > > at > > > org.ofbiz.minerva.pool.jdbc.xa.XAPoolDataSource.getConnection(XAPoolDataSource.java:355) > > > > > at > > > org.ofbiz.entity.transaction.MinervaConnectionFactory.getConnection(MinervaConnectionFactory.java:56) > > > > > at > > > org.ofbiz.geronimo.GeronimoTransactionFactory.getConnection(GeronimoTransactionFactory.java:94) > > > > > at > > > org.ofbiz.entity.transaction.TransactionFactory.getConnection(TransactionFactory.java:104) > > > > > at > > > org.ofbiz.entity.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:82) > > > > > at > > > org.ofbiz.entity.jdbc.SQLProcessor.getConnection(SQLProcessor.java:268) > > at > > > org.ofbiz.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:374) > > at > > > org.ofbiz.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:358) > > at > > > org.ofbiz.entity.datasource.GenericDAO.select(GenericDAO.java:539) > > at > > > org.ofbiz.entity.datasource.GenericDAO.select(GenericDAO.java:510) > > at > > > org.ofbiz.entity.datasource.GenericHelperDAO.findByPrimaryKey(GenericHelperDAO.java:90) > > > > > at > > > org.ofbiz.entity.GenericDelegator.findByPrimaryKey(GenericDelegator.java:1248) > > > > > at > > > org.ofbiz.entity.GenericDelegator.findByPrimaryKey(GenericDelegator.java:1304) > > > > > >
