Chris,

Wow, thanks. You sound like you've really been through it (the migration).

Seems like quite a pain migrating to PostgreSQL from MySQL. But what if I don't have data to migrate? What if I just start over with PostgreSQL? Any problems? I'll take your advice regarding the migration gotchas. Thanks.

Actually, about DBCPs. For RDBMSes, it's correct for database connections to time out after a set interval of inactivity. That's just prudence. When connections are used inside of DBCPs, it is the DBCP's responsibility to refresh timed out connections in the pool. I did my very first very own DBCP more than a decade ago, and that was one of the must-have functionalities for a DBCP. I was beaten up real bad for missing that out. :)

The fix for this, in OFBiz, is in OFBiz's DBCP --- XAPoolDataSource. I posted another message asking for the source codes to ofbiz-minerva.jar.

Jonathon

Chris Howe wrote:
This does not occur in PostgreSQL.  It is a "feature" of MySQL and they
(mysql) will smugly say that OFBiz doesn't handle the connection pool
correctly. I don't know and don't really care to know if it's true or
not.  I switched over about 2 months ago and have had smooth sailing
since (even seemingly eliminated that UserLoginHistory bug that you're
aware of). Be warned, it's a bit of a pain to convert from MySQL to Postgres. Most of the issues seem to be of how lax MySQL with data and how
stringent PostgreSQL is(at least the default installation).  These were
some of the issues I came across with my data using the export/import
in webtools

1. the createdBy fields in the various entities weren't in the correct
case (i believe this has been solved in OFBiz, I just had data that
predated the fix)
2. UserLogin and Party entites end up with a circular dependency based
on the partyId admin if the UserLogin admin created parties.  Either
load the single Party record for partyId before loading the UserLogin
entity or remove the createdBy data from the Party entity
3. Heirarchial parent->child relationships.  This occurs with the *Type
entities.  They simply need to be loaded in the correct order.  There
is a JIRA issue which solves this problem for about the *Type entities
where the child is childId and the parent is parentChildId (e.g.
partyTypeId -> parentPartyTypeId)

There may have been other referential integrity issues, but I think
they were self created and not created by OFBiz.

--- Jonathon -- Improov <[EMAIL PROTECTED]> wrote:

MySQL connections in the database connection pool time out (usually
set to 8 hours). Possible workarounds(?):

1. Increase the time out value and hope that someone will connect to
OFBiz
    before the connections time out.

2. Fix OFBiz to allow to a "validateQuery" mechanism.

3. Use PostgreSQL.

In Tomcat, we usually use the "validateQuery" so the DBCP will test
each connection before giving it to the application. If all connections in the pool has timed out (say no one has accessed OFBiz in 8 hours), the DBCP creates new connections for the pool.

If someone will tell me that this doesn't happen for PostgreSQL, I'll
simply make the switch to PostgreSQL rather than fix things in OFBiz for MySQL.

Thanks.

Jonathon




Reply via email to