In point 6, did you replace all references from derby to
DataSourcePersistenceManager ?
And do you clear your MySQL tables of the magnolia database between each
of your tests ?
Perhaps clearing out the work dir of Tomcat could also help.
We've tested the DataSourcePersistenceManager with Tomcat 5.0 and MySQL
5.0.24a-community-nt on Windows XP, and also MySQL 4.1.12 on Red Hat
Enterprise Linux 4.3 and I never had that problem ... and I already
heard of that deadbeef-face-babe-cafe-babecafebabe node somewhere in the
list, but not with our DSPM. It's seems to be a jackrabbit configuration
problem...
Could you also check your MySQL created tables and look for integrity
constraints on tables ?
Anthony
Christian Sylvestre a écrit :
Guillaume Pichenot <[EMAIL PROTECTED]> writes:
Did you see this thread on the ML ?
http://news.gmane.org/gmane.comp.cms.magnolia.user/cutoff=5778
Seems like it is the exact same case.
To put it in a nutshell :
Changing the Persistance Manager after the repository was bootstraped
is usually neither recommanded nor effective.
In order to activate the change, you have got to make magnolia
bootstrap. Here are some basic steps.
- Backup your website, configuration and documents repositories using
the xml export servlets/pages.
- Delete your old repositories folder (but make sure you backup your
whole site first, of course). This will force a bootstrap, therefore
force using the choosen persistance method from the get-go.
- Replace your saved xmls in /web-inf/bootstrap/common (or re-import
them later, as you prefer, there are various restoring strategies)
- Relaunch your magnolia instances, and watch your databases fill (a
3-5 minute task on a fast box for a site the size of the Samples demo
Wars provided with Magnolia).
I did read the threads on backup and on how to use the
DataSourcePersistenceManager. But I am definitely doing something wrong.
I used the magnoliaAuthor and the magnoliaPublic WAR files.
Here are the steps I took.
1- I first launched Tomcat without any changes (so using derby as the
persistence manager).
2- From the magnoliaAuthor export page I then exported websites, users,
config and (not being sure if I had to) I also exported dms, Expressions,
Store, usergroups and userroles...
3- I shutdown Tomcat.
4- I deleted the repository.
5- Just to checked I restarted tomcat without changing the persistence
manager (so using Derby) and the bootstrapping worked fine as far as I could
say.
6- I shutdown tomcat, deleted the repository and changed the persistence
manager to the DataSourcePersistenceManager.
7- I then got an exception while starting up. I then change the debug level
to debug and I step through the code of DataSourcePersistenceManager through
eclipse in order to try to find the source of the problem. And from what I
can see the problem is happening when trying to store a new node:
cause MySQLIntegrityConstraintViolationException (id=101)
failed to write property state:
deadbeef-face-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType
I included a copy of the stdout below.
Ideas on what I am doing wrong would be welcome.
Thanks,
Christian
INFO info.magnolia.jackrabbit.ProviderImpl ProviderImpl.java(init:143)
18.12.2006 17:36:47 Loading repository at
C:\software\apache-tomcat-5.5.20\webapps\magnoliaAuthor\repositories\magnoli
a (config file:
C:\software\apache-tomcat-5.5.20\webapps\magnoliaAuthor\WEB-INF\config\repo-
conf\jackrabbit-mysql-search-mysql-pooled.xml)
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(init:291) 18.12.2006 17:36:47 -
Initializing persistence manager...
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(initializeDataSource:269) 18.12.2006
17:36:47 - Datasource java:comp/env/jdbc/magnolia now available.
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(prepareSchemaObjectPrefix:934) 18.12.2006
17:36:48 - Preparing schema prefix
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:972) 18.12.2006 17:36:48 -
Produit: MySQL 5.0.26-community-nt
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:974) 18.12.2006 17:36:48 -
Supports Statement Pooling: false
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:976) 18.12.2006 17:36:48 -
Checking for schema existance...
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:981) 18.12.2006 17:36:48 -
optimizedServerSidePreparedStatement autodetected, setting to : false
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:996) 18.12.2006 17:36:48 -
schema autodetected, setting to : mysql
WARN com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:1014) 18.12.2006 17:36:48 -
Schema not existing. Starting database objects creation using mysql.ddl
file...
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:1051) 18.12.2006 17:36:49 -
Schema successfully created.
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(initializeDSPMQuery:279) 18.12.2006
17:36:49 - Using server side standard statements.
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(init:328) 18.12.2006 17:36:49 -
Persistance manager successfully initialized.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:619) 18.12.2006 17:36:49 -
Starting storage of changeLog...
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(getBLOBStore:248) 18.12.2006 17:36:49 -
Getting Blob store instance.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:720) 18.12.2006 17:36:49 -
Working on added states...
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:812) 18.12.2006 17:36:49 - Leaving
storage of changeLog method.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(load:384) 18.12.2006 17:36:49 - Loading
node state (id=deadbeef-face-babe-cafe-babecafebabe)
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(init:291) 18.12.2006 17:36:49 -
Initializing persistence manager...
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(initializeDataSource:269) 18.12.2006
17:36:49 - Datasource java:comp/env/jdbc/magnolia now available.
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(prepareSchemaObjectPrefix:934) 18.12.2006
17:36:49 - Preparing schema prefix
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:972) 18.12.2006 17:36:49 -
Produit: MySQL 5.0.26-community-nt
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:974) 18.12.2006 17:36:49 -
Supports Statement Pooling: false
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:976) 18.12.2006 17:36:49 -
Checking for schema existance...
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:981) 18.12.2006 17:36:49 -
optimizedServerSidePreparedStatement autodetected, setting to : false
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:996) 18.12.2006 17:36:49 -
schema autodetected, setting to : mysql
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(initializeDSPMQuery:279) 18.12.2006
17:36:49 - Using server side standard statements.
INFO com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(init:328) 18.12.2006 17:36:49 -
Persistance manager successfully initialized.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:619) 18.12.2006 17:36:49 -
Starting storage of changeLog...
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(getBLOBStore:248) 18.12.2006 17:36:49 -
Getting Blob store instance.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:720) 18.12.2006 17:36:49 -
Working on added states...
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:812) 18.12.2006 17:36:49 - Leaving
storage of changeLog method.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:619) 18.12.2006 17:36:50 -
Starting storage of changeLog...
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(getBLOBStore:248) 18.12.2006 17:36:50 -
Getting Blob store instance.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:684) 18.12.2006 17:36:50 -
Working on modified states...
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:720) 18.12.2006 17:36:50 -
Working on added states...
ERROR com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:801) 18.12.2006 17:37:50 failed to
write property state:
deadbeef-face-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(store:812) 18.12.2006 17:37:50 - Leaving
storage of changeLog method.
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(load:384) 18.12.2006 17:37:50 - Loading
node state (id=cafebabe-cafe-babe-cafe-babecafebabe)
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(load:415) 18.12.2006 17:37:50 - Loading
property state
(id=deadbeef-face-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primary
Type)
DEBUG com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(getBLOBStore:248) 18.12.2006 17:37:50 -
Getting Blob store instance.
ERROR org.apache.jackrabbit.core.RepositoryImpl
RepositoryImpl.java(<init>:248) 18.12.2006 17:37:50 Failed to initialize
workspace 'default'
javax.jcr.ItemNotFoundException:
deadbeef-cafe-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}primaryType
at
org.apache.jackrabbit.core.ItemManager.createItemInstance(ItemManager.java:4
64)
Once again, read the (whole) thread sabout installing
DataSourcePersManager and/or about backuping and restoring Magnolia
instances.
Nice day to you,
G.
Le 14 déc. 06 à 20:15, Christian Sylvestre a écrit :
I am looking forward to use Magnolia for a fairly big web site and for
simplicity of management I would prefer to have the repository
located in
MySQL.
I then follow the procedure describes in some posting to the user
list on
how to change the persistence manager to the one from iorgagroup.com.
It seems to be working fine when I started Tomcat for the first
time since
I could see those messages in the console:
INFO info.magnolia.jackrabbit.ProviderImpl ProviderImpl.java(init:
143)
14.12.2006 20:01:18 Loading repository at
C:\software\apache-tomcat-5.5.20\webapps\magnoliaAuthor\repositories
\magnolia
(config file:
C:\software\apache-tomcat-5.5.20\webapps\magnoliaAuthor\WEB-INF
\config\repo-conf\jackrabbit-mysql-search-mysql-p
ooled.xml)
WARN
com.iorgagroup.jackrabbit.core.state.db.DataSourcePersistenceManager
DataSourcePersistenceManager.java(checkSchema:1014) 14.12.2006
20:01:19
- Schema not existing. Starting database objects creation using
mysql.ddl file...
So that looks fine, the tables have been created in MySQL.
However the tables are empty? Shouldn't the whole content of the
repository be created in MySQL?
And if I look at any of the workspace.xml files I can see this:
<PersistenceManager
class="org.apache.jackrabbit.core.state.db.DerbyPersistenceManager">
Shouldn't the persistence manager be the one I defined in my
repository
configuration file?
Any help would be welcome.
Thanks,
Christian
Note; FYI I am using Magnolia 3.0.1, Java 1.5 and Tomcat 5.5
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------