Florent Guillaume wrote:
Drawbacks of MySQL when used with Nuxeo:
- loses connections when it decides to,
- poor fulltext support,
- no transactional fulltext tables,
- inefficient ACL checking due to lack of array datatypes,
- no sub-second time datatypes,
- foreign key on delete cascade operations limited to 15 levels deep,
- triggers not activated by cascaded foreign key actions (which we don't use at the moment with MySQL but could prove a big limitation in the future),
- poor query optimizer,
- (not directly nuxeo related) stupid nonstandard syntax, stupid datatypes conversions and lack of proper value checking.

All in all, MySQL should be avoided if you want to keep your sanity, you never know what's going to happen when you do a perfectly normal SQL operations. Please use PostgreSQL instead.

But this is still a configuration for which we provide support, given that these intrinsic deficiencies are know.

Florent


On 4 May 2009, at 13:10, Nel Taurisson wrote:

Hi,

What are the drawbacks if using MySQL with VCS. We have a client that wants us to install nuxeo 5.2 on MySQL, is this "unsupported" or known to cause problems ?

Thanks

Nel

2009/5/4 Florent Guillaume <[email protected]>
Basically MySQL is broken, it shouldn't ever close a connection that's open. Various people have tried various workarounds. But using autoReconnect is not always semantically safe (you lose non-committed stuff). Jackrabbit has implemented a workaround in 1.4 (https://issues.apache.org/jira/browse/JCR-940), but Nuxeo 5.1.6 uses 1.3.3. See also http://wiki.magnolia-cms.com/display/WIKI/MySQL+Persistence for instance.

Your options are:
- upgrade the MySQL timeout to more that the default (8h), to avoid losing connections,
- restart Nuxeo from time to time, before the MySQL timeout,
- try to upgrade to Jackrabbit 1.4.* in Nuxeo 5.1.6, but there will probably be Nuxeo source code changes to do, - upgrade Nuxeo to 5.2.RC1, but there are quite a number of other changes in Nuxeo so it's not a light operation,
- ditch MySQL and use a real database.

Florent


On 23 Apr 2009, at 11:39, Enrique Perez wrote:

Thanks for your answer, Florent.

I also tried with the configuration you say. I configure it with the following line:

<param name="url" value="jdbc:mysql://localhost/mydatabase?autoReconnect=true"/>

But it still fails. Is the previous line correct or I have to add something like the following one?:

<param name="autoReconnect" value="true"/>

Thanks in advance.

Florent Guillaume wrote:
Hi,

The error (simplified below) is a Jackrabbit error. So the connection parameters to modify are those of the Jackrabbit configuration file.

For a blank server the file is in config/repository-config.xml (or config/default-repository-config.xml depending on how you named it). Once the database is created it lives in server/default/data/NXRuntime/repos/default/default.xml. It's the <PersistenceManager> section.

The <connection-url> you mention is for a JDBC datasource, but that's not what Jackrabbit uses for configuration.

See http://www.google.com/search?q=jackrabbit+mysql+autoReconnect for more.

Florent

On 22 Apr 2009, at 09:18, Enrique Perez wrote:

Hi all,

I have a Nuxeo instance (5.1.6-2) using a MySql database. When I start the server it works fine, but if I try to upload a file after a couple of days it crashes. It seems like if the connection with the database is closed.

I try with the autoReconnect property:

<connection-url>jdbc:mysql://localhost/mydatabase?relaxAutoCommit=true&amp;emulateLocators=true&amp;autoReconnect=true</connection-url>

But the platform still crashes.

The exception I get when I upload a file is:


org.nuxeo.ecm.core.api.ClientException

org.nuxeo.ecm.core.api.WrappedException: Exception: org.nuxeo.ecm.core.api.ClientException. message: org.nuxeo.ecm.core.api.WrappedException: Exception: org.nuxeo.ecm.core.api.ClientException. message: Failed to save session

org.nuxeo.ecm.core.api.WrappedException

Exception: com.mysql.jdbc.CommunicationsException. message: The last packet successfully received from the server was88772 milliseconds ago.The last packet sent successfully to the server was 88772 milliseconds ago, which is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1070)
com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3270)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1932)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4916)
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.store(BundleDbPersistenceManager.java:484) org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:688) org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:855) org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326) org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313) org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:302) org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1240)
org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:849)
org.nuxeo.ecm.core.repository.jcr.JCRSession.save(JCRSession.java:146)
org.nuxeo.ecm.core.api.AbstractSession.save(AbstractSession.java:1457)

--
Florent Guillaume, Head of R&D, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87

_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm
To unsubscribe, go to http://lists.nuxeo.com/mailman/options/ecm


Hi,

what about H2 ? Would you recommend it ? Or another one ?

--


Vincent Dutat

for any given software, the moment you manage to master it, a new
version appears.

_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm
To unsubscribe, go to http://lists.nuxeo.com/mailman/options/ecm

Reply via email to