So, I'll have a hard discussion with the client ;-)

Thanks a lot.
Nel

2009/5/4 Florent Guillaume <[email protected]>

> 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
>>
>>
> --
> 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

Reply via email to