You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Juan Diego Botiva Leon <ju...@hotmail.com> on 2010/05/28 01:39:52 UTC

Problems Migrating Cluster Data

Hi!
We recently moved our production JCR repository to a 2-node jackrabbit cluster with a MySQL backend, everything went Ok. We need to make some testing with production data on other server with no cluster configuration but when we import the MySQL dump into our testing database, the nodes stored after we moved to a cluster configuration are missing. Could you give me some clues on what could be wrong ? Thanks in advance.

Regards.

Juan Diego Botiva
 		 	   		  
_________________________________________________________________
Hotmail has tools for the New Busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_1

RE: Problems Migrating Cluster Data

Posted by Juan Diego Botiva Leon <ju...@hotmail.com>.
Hi,

I'm assigning the Cluster ID by setting the system property org.apache.jackrabbit.core.cluster.node_id. But, as the FileSystem is shared between nodes, is it possible to separate the FileSystems without loosing any data ? and, all FileSystems must be private (Repository, Workspace, Versioning) ? Thanks in advance.

Regards,
Juan Diego Botiva


> Date: Tue, 8 Jun 2010 13:18:10 -0400
> From: justinedelson@gmail.com
> To: users@jackrabbit.apache.org
> Subject: Re: Problems Migrating Cluster Data
> 
> A few things jump out in the configuration below:
> 1) You aren't assigning a Cluster ID. This is required.
> 2) Each cluster node is sharing the same database for the FileSystem
> implementations. This is wrong. Each cluster node needs a private
> FileSystem (as Thomas said below).
> 
> You can find them on the wiki link Thomas sent below, but the clustering
> prerequisties are worth repeating:
> 1) Each cluster node must have its own repository configuration.
> 2) Each cluster node needs its own (private) FileSystem and Search index.
> 3) Every cluster node must be assigned a unique ID.
> 4) A journal type must be chosen, either based on files or stored in a
> database.
> 5) The persistence managers must store their data in the same, globally
> accessible location (see PersistenceManagerFAQ).
> 6) A DataStore must always be shared between nodes, if used.
> 
> You seem to be OK on #4 and #5, but not #1, #2, and #3.
> 
> HTH,
> Justin
> 
> On 6/8/10 1:07 PM, Juan Diego Botiva Leon wrote:
> > 
> > Hi,
> > 
> > In the repository.xml file I sent before, the database is at localhost because our test environment is a single node cluster, JBoss and MySQL run on the same machine. But yesterday I made a test in our production environment (2-node cluster, both using the same persistence manager): I changed the path of the repository folder to a new one and when I started JBoss, the index was regenerated but when I tried to access nodes created after moving to a cluster, they were never found, then I simply changed the path back to how it was and I was able to access the nodes again. So I think it has something to do with what is stored in the repository folder even if we have everything in MySQL except for the search index. What can I do in order to move data between environments with this setup. Below is our repository.xml production file, it is the same in both nodes. Thanks in advance.
> > 
> > Regards,
> > Juan Diego Botiva
> > 
> > 
> > <?xml version="1.0"?>
> > <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
> > <Repository>
> >     <Cluster syncDelay="10000">
> >         <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
> >             <param name="revision" value="${rep.home}/revision.log" />
> >             <param name="driver" value="com.mysql.jdbc.Driver" />
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbutil?autoReconnect=true" />
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >         </Journal>
> >     </Cluster>
> >     <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >         <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >         <param name="user" value="dbroot"/>
> >         <param name="password" value="dbpwd"/>
> >         <param name="driver" value="com.mysql.jdbc.Driver"/>
> >         <param name="schema" value="mysql"/>
> >         <param name="schemaObjectPrefix" value="jcr_repository_fs_"/> 
> >     </FileSystem>
> >     <Security appName="Jackrabbit">
> >         <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager"/>
> >         <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
> >            <param name="anonymousId" value="anonymous"/>
> >            <param name="jruser" value="superuser"/>
> >         </LoginModule>
> >     </Security>
> >     <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="MyWP"/>
> >     <Workspace name="${wsp.name}">
> >         <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schema" value="mysql"/>
> >             <param name="schemaObjectPrefix" value="jcr_${wsp.name}_fs_"/> 
> >         </FileSystem>
> >         <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schemaObjectPrefix" value="jcr_${wsp.name}_pm_"/> 
> >             <param name="externalBLOBs" value="false"/>
> >         </PersistenceManager>
> >         <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
> >             <param name="path" value="${wsp.home}/index"/>
> >             <param name="indexingConfiguration" value="index-config.xml"/>
> >             <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
> >             <param name="extractorPoolSize" value="2"/>
> >             <param name="extractorTimeout" value="5000"/>
> >         </SearchIndex>
> >     </Workspace>
> >     <Versioning rootPath="${rep.home}/version">
> >         <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schema" value="mysql"/>
> >             <param name="schemaObjectPrefix" value="jcr_version_fs_"/> 
> >         </FileSystem>
> >         <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schemaObjectPrefix" value="jcr_version_pm_"/> 
> >             <param name="externalBLOBs" value="false"/>
> >         </PersistenceManager>
> >     </Versioning>
> > </Repository>
> > 
> > 
> > 
> >> Date: Mon, 7 Jun 2010 14:04:31 +0200
> >> Subject: Re: Problems Migrating Cluster Data
> >> From: thomas.mueller@day.com
> >> To: users@jackrabbit.apache.org
> >>
> >> Hi,
> >>
> >> I think the main problem is that each cluster node uses it's own
> >> persistence manager (database on localhost). See
> >> http://wiki.apache.org/jackrabbit/Clustering "That means all
> >> Jackrabbit cluster nodes need access to the SAME persistent storage
> >> (persistence manager and data store)." By the way, this is not the
> >> case for the file system: "However, each cluster node needs its own
> >> (private) FileSystem  and Search index."
> >>
> >> Regards,
> >> Thomas
> >  		 	   		  
> > _________________________________________________________________
> > The New Busy is not the old busy. Search, chat and e-mail from your inbox.
> > http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
> 
 		 	   		  
_________________________________________________________________
The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with Hotmail. 
http://www.windowslive.com/campaign/thenewbusy?tile=multicalendar&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_5

RE: Problems Migrating Cluster Data

Posted by Juan Diego Botiva Leon <ju...@hotmail.com>.
Hi!

I finally managed to get the full data of our database, the problem was with mysqldump. But I still have both nodes FileSystems pointing to the same database. Which would be the right way to have a separate FileSystem for each node without loosing any data ? 

Thanks in advance.

Regards

Juan Diego B.



> Date: Tue, 8 Jun 2010 13:18:10 -0400
> From: justinedelson@gmail.com
> To: users@jackrabbit.apache.org
> Subject: Re: Problems Migrating Cluster Data
> 
> A few things jump out in the configuration below:
> 1) You aren't assigning a Cluster ID. This is required.
> 2) Each cluster node is sharing the same database for the FileSystem
> implementations. This is wrong. Each cluster node needs a private
> FileSystem (as Thomas said below).
> 
> You can find them on the wiki link Thomas sent below, but the clustering
> prerequisties are worth repeating:
> 1) Each cluster node must have its own repository configuration.
> 2) Each cluster node needs its own (private) FileSystem and Search index.
> 3) Every cluster node must be assigned a unique ID.
> 4) A journal type must be chosen, either based on files or stored in a
> database.
> 5) The persistence managers must store their data in the same, globally
> accessible location (see PersistenceManagerFAQ).
> 6) A DataStore must always be shared between nodes, if used.
> 
> You seem to be OK on #4 and #5, but not #1, #2, and #3.
> 
> HTH,
> Justin
> 
> On 6/8/10 1:07 PM, Juan Diego Botiva Leon wrote:
> > 
> > Hi,
> > 
> > In the repository.xml file I sent before, the database is at localhost because our test environment is a single node cluster, JBoss and MySQL run on the same machine. But yesterday I made a test in our production environment (2-node cluster, both using the same persistence manager): I changed the path of the repository folder to a new one and when I started JBoss, the index was regenerated but when I tried to access nodes created after moving to a cluster, they were never found, then I simply changed the path back to how it was and I was able to access the nodes again. So I think it has something to do with what is stored in the repository folder even if we have everything in MySQL except for the search index. What can I do in order to move data between environments with this setup. Below is our repository.xml production file, it is the same in both nodes. Thanks in advance.
> > 
> > Regards,
> > Juan Diego Botiva
> > 
> > 
> > <?xml version="1.0"?>
> > <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
> > <Repository>
> >     <Cluster syncDelay="10000">
> >         <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
> >             <param name="revision" value="${rep.home}/revision.log" />
> >             <param name="driver" value="com.mysql.jdbc.Driver" />
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbutil?autoReconnect=true" />
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >         </Journal>
> >     </Cluster>
> >     <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >         <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >         <param name="user" value="dbroot"/>
> >         <param name="password" value="dbpwd"/>
> >         <param name="driver" value="com.mysql.jdbc.Driver"/>
> >         <param name="schema" value="mysql"/>
> >         <param name="schemaObjectPrefix" value="jcr_repository_fs_"/> 
> >     </FileSystem>
> >     <Security appName="Jackrabbit">
> >         <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager"/>
> >         <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
> >            <param name="anonymousId" value="anonymous"/>
> >            <param name="jruser" value="superuser"/>
> >         </LoginModule>
> >     </Security>
> >     <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="MyWP"/>
> >     <Workspace name="${wsp.name}">
> >         <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schema" value="mysql"/>
> >             <param name="schemaObjectPrefix" value="jcr_${wsp.name}_fs_"/> 
> >         </FileSystem>
> >         <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schemaObjectPrefix" value="jcr_${wsp.name}_pm_"/> 
> >             <param name="externalBLOBs" value="false"/>
> >         </PersistenceManager>
> >         <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
> >             <param name="path" value="${wsp.home}/index"/>
> >             <param name="indexingConfiguration" value="index-config.xml"/>
> >             <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
> >             <param name="extractorPoolSize" value="2"/>
> >             <param name="extractorTimeout" value="5000"/>
> >         </SearchIndex>
> >     </Workspace>
> >     <Versioning rootPath="${rep.home}/version">
> >         <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schema" value="mysql"/>
> >             <param name="schemaObjectPrefix" value="jcr_version_fs_"/> 
> >         </FileSystem>
> >         <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
> >             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
> >             <param name="user" value="dbroot"/>
> >             <param name="password" value="dbpwd"/>
> >             <param name="driver" value="com.mysql.jdbc.Driver"/>
> >             <param name="schemaObjectPrefix" value="jcr_version_pm_"/> 
> >             <param name="externalBLOBs" value="false"/>
> >         </PersistenceManager>
> >     </Versioning>
> > </Repository>
> > 
> > 
> > 
> >> Date: Mon, 7 Jun 2010 14:04:31 +0200
> >> Subject: Re: Problems Migrating Cluster Data
> >> From: thomas.mueller@day.com
> >> To: users@jackrabbit.apache.org
> >>
> >> Hi,
> >>
> >> I think the main problem is that each cluster node uses it's own
> >> persistence manager (database on localhost). See
> >> http://wiki.apache.org/jackrabbit/Clustering "That means all
> >> Jackrabbit cluster nodes need access to the SAME persistent storage
> >> (persistence manager and data store)." By the way, this is not the
> >> case for the file system: "However, each cluster node needs its own
> >> (private) FileSystem  and Search index."
> >>
> >> Regards,
> >> Thomas
> >  		 	   		  
> > _________________________________________________________________
> > The New Busy is not the old busy. Search, chat and e-mail from your inbox.
> > http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
> 
 		 	   		  
_________________________________________________________________
Hotmail has tools for the New Busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_1

Re: Problems Migrating Cluster Data

Posted by Justin Edelson <ju...@gmail.com>.
A few things jump out in the configuration below:
1) You aren't assigning a Cluster ID. This is required.
2) Each cluster node is sharing the same database for the FileSystem
implementations. This is wrong. Each cluster node needs a private
FileSystem (as Thomas said below).

You can find them on the wiki link Thomas sent below, but the clustering
prerequisties are worth repeating:
1) Each cluster node must have its own repository configuration.
2) Each cluster node needs its own (private) FileSystem and Search index.
3) Every cluster node must be assigned a unique ID.
4) A journal type must be chosen, either based on files or stored in a
database.
5) The persistence managers must store their data in the same, globally
accessible location (see PersistenceManagerFAQ).
6) A DataStore must always be shared between nodes, if used.

You seem to be OK on #4 and #5, but not #1, #2, and #3.

HTH,
Justin

On 6/8/10 1:07 PM, Juan Diego Botiva Leon wrote:
> 
> Hi,
> 
> In the repository.xml file I sent before, the database is at localhost because our test environment is a single node cluster, JBoss and MySQL run on the same machine. But yesterday I made a test in our production environment (2-node cluster, both using the same persistence manager): I changed the path of the repository folder to a new one and when I started JBoss, the index was regenerated but when I tried to access nodes created after moving to a cluster, they were never found, then I simply changed the path back to how it was and I was able to access the nodes again. So I think it has something to do with what is stored in the repository folder even if we have everything in MySQL except for the search index. What can I do in order to move data between environments with this setup. Below is our repository.xml production file, it is the same in both nodes. Thanks in advance.
> 
> Regards,
> Juan Diego Botiva
> 
> 
> <?xml version="1.0"?>
> <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
> <Repository>
>     <Cluster syncDelay="10000">
>         <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
>             <param name="revision" value="${rep.home}/revision.log" />
>             <param name="driver" value="com.mysql.jdbc.Driver" />
>             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbutil?autoReconnect=true" />
>             <param name="user" value="dbroot"/>
>             <param name="password" value="dbpwd"/>
>         </Journal>
>     </Cluster>
>     <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
>         <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
>         <param name="user" value="dbroot"/>
>         <param name="password" value="dbpwd"/>
>         <param name="driver" value="com.mysql.jdbc.Driver"/>
>         <param name="schema" value="mysql"/>
>         <param name="schemaObjectPrefix" value="jcr_repository_fs_"/> 
>     </FileSystem>
>     <Security appName="Jackrabbit">
>         <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager"/>
>         <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
>            <param name="anonymousId" value="anonymous"/>
>            <param name="jruser" value="superuser"/>
>         </LoginModule>
>     </Security>
>     <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="MyWP"/>
>     <Workspace name="${wsp.name}">
>         <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
>             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
>             <param name="user" value="dbroot"/>
>             <param name="password" value="dbpwd"/>
>             <param name="driver" value="com.mysql.jdbc.Driver"/>
>             <param name="schema" value="mysql"/>
>             <param name="schemaObjectPrefix" value="jcr_${wsp.name}_fs_"/> 
>         </FileSystem>
>         <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
>             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
>             <param name="user" value="dbroot"/>
>             <param name="password" value="dbpwd"/>
>             <param name="driver" value="com.mysql.jdbc.Driver"/>
>             <param name="schemaObjectPrefix" value="jcr_${wsp.name}_pm_"/> 
>             <param name="externalBLOBs" value="false"/>
>         </PersistenceManager>
>         <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
>             <param name="path" value="${wsp.home}/index"/>
>             <param name="indexingConfiguration" value="index-config.xml"/>
>             <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
>             <param name="extractorPoolSize" value="2"/>
>             <param name="extractorTimeout" value="5000"/>
>         </SearchIndex>
>     </Workspace>
>     <Versioning rootPath="${rep.home}/version">
>         <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
>             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
>             <param name="user" value="dbroot"/>
>             <param name="password" value="dbpwd"/>
>             <param name="driver" value="com.mysql.jdbc.Driver"/>
>             <param name="schema" value="mysql"/>
>             <param name="schemaObjectPrefix" value="jcr_version_fs_"/> 
>         </FileSystem>
>         <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
>             <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
>             <param name="user" value="dbroot"/>
>             <param name="password" value="dbpwd"/>
>             <param name="driver" value="com.mysql.jdbc.Driver"/>
>             <param name="schemaObjectPrefix" value="jcr_version_pm_"/> 
>             <param name="externalBLOBs" value="false"/>
>         </PersistenceManager>
>     </Versioning>
> </Repository>
> 
> 
> 
>> Date: Mon, 7 Jun 2010 14:04:31 +0200
>> Subject: Re: Problems Migrating Cluster Data
>> From: thomas.mueller@day.com
>> To: users@jackrabbit.apache.org
>>
>> Hi,
>>
>> I think the main problem is that each cluster node uses it's own
>> persistence manager (database on localhost). See
>> http://wiki.apache.org/jackrabbit/Clustering "That means all
>> Jackrabbit cluster nodes need access to the SAME persistent storage
>> (persistence manager and data store)." By the way, this is not the
>> case for the file system: "However, each cluster node needs its own
>> (private) FileSystem  and Search index."
>>
>> Regards,
>> Thomas
>  		 	   		  
> _________________________________________________________________
> The New Busy is not the old busy. Search, chat and e-mail from your inbox.
> http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3


RE: Problems Migrating Cluster Data

Posted by Juan Diego Botiva Leon <ju...@hotmail.com>.
Hi,

In the repository.xml file I sent before, the database is at localhost because our test environment is a single node cluster, JBoss and MySQL run on the same machine. But yesterday I made a test in our production environment (2-node cluster, both using the same persistence manager): I changed the path of the repository folder to a new one and when I started JBoss, the index was regenerated but when I tried to access nodes created after moving to a cluster, they were never found, then I simply changed the path back to how it was and I was able to access the nodes again. So I think it has something to do with what is stored in the repository folder even if we have everything in MySQL except for the search index. What can I do in order to move data between environments with this setup. Below is our repository.xml production file, it is the same in both nodes. Thanks in advance.

Regards,
Juan Diego Botiva


<?xml version="1.0"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
<Repository>
    <Cluster syncDelay="10000">
        <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
            <param name="revision" value="${rep.home}/revision.log" />
            <param name="driver" value="com.mysql.jdbc.Driver" />
            <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbutil?autoReconnect=true" />
            <param name="user" value="dbroot"/>
            <param name="password" value="dbpwd"/>
        </Journal>
    </Cluster>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
        <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
        <param name="user" value="dbroot"/>
        <param name="password" value="dbpwd"/>
        <param name="driver" value="com.mysql.jdbc.Driver"/>
        <param name="schema" value="mysql"/>
        <param name="schemaObjectPrefix" value="jcr_repository_fs_"/> 
    </FileSystem>
    <Security appName="Jackrabbit">
        <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager"/>
        <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
           <param name="anonymousId" value="anonymous"/>
           <param name="jruser" value="superuser"/>
        </LoginModule>
    </Security>
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="MyWP"/>
    <Workspace name="${wsp.name}">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
            <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
            <param name="user" value="dbroot"/>
            <param name="password" value="dbpwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schema" value="mysql"/>
            <param name="schemaObjectPrefix" value="jcr_${wsp.name}_fs_"/> 
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
            <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
            <param name="user" value="dbroot"/>
            <param name="password" value="dbpwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schemaObjectPrefix" value="jcr_${wsp.name}_pm_"/> 
            <param name="externalBLOBs" value="false"/>
        </PersistenceManager>
        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${wsp.home}/index"/>
            <param name="indexingConfiguration" value="index-config.xml"/>
            <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
            <param name="extractorPoolSize" value="2"/>
            <param name="extractorTimeout" value="5000"/>
        </SearchIndex>
    </Workspace>
    <Versioning rootPath="${rep.home}/version">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
            <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
            <param name="user" value="dbroot"/>
            <param name="password" value="dbpwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schema" value="mysql"/>
            <param name="schemaObjectPrefix" value="jcr_version_fs_"/> 
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
            <param name="url" value="jdbc:mysql://192.168.1.144:3306/dbrep?autoReconnect=true"/>
            <param name="user" value="dbroot"/>
            <param name="password" value="dbpwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schemaObjectPrefix" value="jcr_version_pm_"/> 
            <param name="externalBLOBs" value="false"/>
        </PersistenceManager>
    </Versioning>
</Repository>



> Date: Mon, 7 Jun 2010 14:04:31 +0200
> Subject: Re: Problems Migrating Cluster Data
> From: thomas.mueller@day.com
> To: users@jackrabbit.apache.org
> 
> Hi,
> 
> I think the main problem is that each cluster node uses it's own
> persistence manager (database on localhost). See
> http://wiki.apache.org/jackrabbit/Clustering "That means all
> Jackrabbit cluster nodes need access to the SAME persistent storage
> (persistence manager and data store)." By the way, this is not the
> case for the file system: "However, each cluster node needs its own
> (private) FileSystem  and Search index."
> 
> Regards,
> Thomas
 		 	   		  
_________________________________________________________________
The New Busy is not the old busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3

Re: Problems Migrating Cluster Data

Posted by Thomas Müller <th...@day.com>.
Hi,

I think the main problem is that each cluster node uses it's own
persistence manager (database on localhost). See
http://wiki.apache.org/jackrabbit/Clustering "That means all
Jackrabbit cluster nodes need access to the SAME persistent storage
(persistence manager and data store)." By the way, this is not the
case for the file system: "However, each cluster node needs its own
(private) FileSystem  and Search index."

Regards,
Thomas

RE: Problems Migrating Cluster Data

Posted by Juan Diego Botiva Leon <ju...@hotmail.com>.
Hi,

I'm using Jackrabbit 1.6.0 the following is the repository.xml file in the destination server. When I imported the MySQL dump files I deleted the repository folder to get Jackrabbit to regenerate the indexes again (so the workspace.xml file is regenerated also). We have the journal database in a different machine, could this be the problem ? Thanks in advance for all your help.

Regards.

<Repository>
    <Cluster id="jdbl" syncDelay="5000">
        <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
            <param name="revision" value="${rep.home}/revision.log" />
            <param name="driver" value="com.mysql.jdbc.Driver" />
            <param name="url" value="jdbc:mysql://localhost:3306/util?autoReconnect=true" />
            <param name="user" value="repo"/>
            <param name="password" value="repopwd"/>
        </Journal>
    </Cluster>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
        <param name="url" value="jdbc:mysql://localhost:3306/repository?autoReconnect=true"/>
        <param name="user" value="repo"/>
        <param name="password" value="repopwd"/>
        <param name="driver" value="com.mysql.jdbc.Driver"/>
        <param name="schema" value="mysql"/>
        <param name="schemaObjectPrefix" value="jcr_repository_fs_"/> 
    </FileSystem>
    <Security appName="Jackrabbit">
        <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager"/>
        <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
           <param name="anonymousId" value="anonymous"/>
           <param name="repo" value="superuser"/>
        </LoginModule>
    </Security>
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="myRepo"/>
    <Workspace name="${wsp.name}">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
            <param name="url" value="jdbc:mysql://localhost:3306/repository?autoReconnect=true"/>
            <param name="user" value="repo"/>
            <param name="password" value="repopwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schema" value="mysql"/>
            <param name="schemaObjectPrefix" value="jcr_${wsp.name}_fs_"/> 
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
            <param name="url" value="jdbc:mysql://localhost:3306/repository?autoReconnect=true"/>
            <param name="user" value="repo"/>
            <param name="password" value="repopwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schemaObjectPrefix" value="jcr_${wsp.name}_pm_"/> 
            <param name="externalBLOBs" value="false"/>
        </PersistenceManager>
        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${wsp.home}/index"/>
            <param name="indexingConfiguration" value="index-config.xml"/>
            <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
            <param name="extractorPoolSize" value="2"/>
            <param name="extractorTimeout" value="5000"/>
        </SearchIndex>
    </Workspace>
    <Versioning rootPath="${rep.home}/version">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
            <param name="url" value="jdbc:mysql://localhost:3306/repository?autoReconnect=true"/>
            <param name="user" value="repo"/>
            <param name="password" value="repopwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schema" value="mysql"/>
            <param name="schemaObjectPrefix" value="jcr_version_fs_"/> 
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
            <param name="url" value="jdbc:mysql://localhost:3306/repository?autoReconnect=true"/>
            <param name="user" value="repo"/>
            <param name="password" value="repopwd"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="schemaObjectPrefix" value="jcr_version_pm_"/> 
            <param name="externalBLOBs" value="false"/>
        </PersistenceManager>
    </Versioning>
</Repository>


> Date: Mon, 31 May 2010 09:16:05 +0200
> Subject: Re: Problems Migrating Cluster Data
> From: thomas.mueller@day.com
> To: users@jackrabbit.apache.org
> 
> Hi,
> 
> This sounds like a configuration problem. If you change the
> persistence location, please ensure you change the repository.xml as
> well as all workspace.xml files.
> 
> See also see http://wiki.apache.org/jackrabbit/Clustering
> 
> If the problem persists please post the configuration (all
> repository.xml and workspace.xml files). We also need to know the
> versions of the jackrabbit jar files you use.
> 
> Regards,
> Thomas
 		 	   		  
_________________________________________________________________
Hotmail is redefining busy with tools for the New Busy. Get more from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_2

Re: Problems Migrating Cluster Data

Posted by Thomas Müller <th...@day.com>.
Hi,

This sounds like a configuration problem. If you change the
persistence location, please ensure you change the repository.xml as
well as all workspace.xml files.

See also see http://wiki.apache.org/jackrabbit/Clustering

If the problem persists please post the configuration (all
repository.xml and workspace.xml files). We also need to know the
versions of the jackrabbit jar files you use.

Regards,
Thomas