02-21-2014 09:37 AM
I need another repository besides the default one. Its role is to be an archive of old documents.
I have defined it as a contribution:
<repository name="documentArchive" factory="org.nuxeo.ecm.core.storage.sql.ra.PoolingRepositoryFactory">
<repository sendInvalidationEvents="true">
<xa-datasource>org.postgresql.xa.PGXADataSource</xa-datasource>
<property name="ServerName">127.0.0.1</property>
<property name="PortNumber">5432</property>
<property name="DatabaseName">nuxeo_archive</property>
<property name="User">nuxeo</property>
<property name="Password">nuxeo</property>
</repository>
</repository>
I have made the nuxeo_archive database to hold this.
What I acctualy wanted was to put this in a specific database schema in the same database as the default repository so they can share the connection. But I could not find a way to define it like this.
/>
Is this possible?
I like the Single-Datasource Mode that comes as default for all connections and I would like to stick to it. Without this I need to fall back to XA transactions that I try to avoid.
Another aproach that I have been looking into is to use the single datasource mode with an exclusion on documentArchive and use compensation on failed transactions to documentArhive. In nuxeo.conf I have put:
nuxeo.db.singleDataSource.exclude=repository_documentArchive
but I get this exception when the default respository connection is beeing closed:
ERROR [http-bio-0.0.0.0-8080-exec-5] [org.nuxeo.ecm.core.storage.sql.jdbc.JDBCLogger] (5) SQL: XA end error on org.apache.geronimo.transaction.manager.XidImpl@76c188fa
java.lang.NullPointerException
at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapper.end(JDBCMapper.java:1317)
at org.nuxeo.ecm.core.storage.sql.SoftRefCachingMapper.end(SoftRefCachingMapper.java:182)
at org.nuxeo.ecm.core.storage.sql.SessionImpl.end(SessionImpl.java:1430)
at org.nuxeo.ecm.core.storage.sql.ra.ConnectionAwareXAResource.end(ConnectionAwareXAResource.java:59)
Questions:
03-18-2014 09:10 AM
nuxeo.db.singleDataSource.exclude
has not been much tested so it's not surprising if there are bugs.
I don't think it's possible to use the same datasource but different databases. Single-datasource mode is mainly designed to share the datasource between VCS and other JDBC accesses in Nuxeo, not for do multi-database.
For the repository definition we don't have a way to specify the schema to use sorry. That would be the solution for you but it's not implemented.
04-20-2015 12:27 PM
In fact, if you try to use nuxeo.db.singleDataSource.exclude in nuxeo.conf, it throws
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.