You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Sonu Vijay <so...@yahoo.com> on 2008/05/14 02:28:49 UTC

Running Repository completely off of a RDBMS

Hi Everybody,

I'm a newbie and I came to Jackrabbit via JBoss Rules.

I need to run my repository completely off of a RDBMS.
I can't have anything stored on the local file
system.I'm able to make this work partially but still
some stuff is being stored in local file system. If I
delete the local repository folder, my application
stops working. 

I'm trying to understand the Jackrabbit configuration
properties and would appreciate some help. I'm
including my repository.xml below. I have following
questions.

1. What configurations in my repository.xml are still
keeping stuff on my local file system. 

2. When I try to use a DataStore with a
BundleDbPersistenceManager instead of just using
SimpleDbPersistenceManager, I get an error which says
that the repository has been locked by another
application. I'm running against MS SQL Server. Has
anybody faced this issue ? This issue doesn't happen
with SimpleDBPersistanceManager.


Thanks in advance for your help.

Sonu

----------Repository.xml---------------
<Repository>
    <Security appName="Jackrabbit">
        
        <AccessManager
class="org.apache.jackrabbit.core.security.SimpleAccessManager">
            
        </AccessManager>

        <LoginModule
class="org.apache.jackrabbit.core.security.SimpleLoginModule">
           
           <param name="anonymousId"
value="anonymous"/>
           
        </LoginModule>
    </Security>
    <Workspaces rootPath="${rep.home}/workspaces"
defaultWorkspace="MyRepo"/>
    <Workspace name="MyRepo">
        
        <FileSystem
class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
		       <param name="driver"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
		      	       <param name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
		      	       <param name="schema" value="mssql"/>
		      	       <param name="user" value="duser"/>
		      	       <param name="password"
value="dsadmin"/>
		       <param name="schemaObjectPrefix"
value="${wsp.name}_FS_"/>
	   </FileSystem>
        
        
         <PersistenceManager
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager">
	       <param name="driver"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
	       <param name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
	       <param name="schema" value="mssql"/>
	       <param name="user" value="dadmin"/>
	       <param name="password" value="dadmin"/>
	       <param name="schemaObjectPrefix"
value="${wsp.name}_"/>
	       <param name="externalBLOBs" value="false"/>
	   </PersistenceManager>

        
        
        
        <SearchIndex
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path"
value="${wsp.home}/index"/>
        </SearchIndex>
    </Workspace>


    <Versioning rootPath="${rep.home}/version">


        <FileSystem
class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
		       <param name="driver"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
		      	       <param name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
		      	       <param name="schema" value="mssql"/>
		      	       <param name="user" value="dadmin"/>
		      	       <param name="password"
value="dadmin"/>
		       <param name="schemaObjectPrefix"
value="version_FS_"/>
	   </FileSystem>
                
        <PersistenceManager
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager">
		       <param name="driver"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
		       <param name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
		       <param name="schema" value="mssql"/>
		       <param name="user" value="dadmin"/>
		       <param name="password" value="dadmin"/>
		       <param name="schemaObjectPrefix"
value="version_"/>
		       <param name="externalBLOBs" value="false"/>
	   </PersistenceManager>
        
        
    </Versioning>


    <SearchIndex
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path"
value="${rep.home}/repository/index"/>
    </SearchIndex>
</Repository>



      

Re: Running Repository completely off of a RDBMS

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

>  1. What configurations in my repository.xml are still
>  keeping stuff on my local file system.

The SearchIndex doesn't currently support databases. That means you
need to disable the search index.

>  2. When I try to use a DataStore with a
>  BundleDbPersistenceManager instead of just using
>  SimpleDbPersistenceManager, I get an error which says
>  that the repository has been locked by another
>  application.

Sometimes I get this problem as well when running tests with maven.
Most likely the repository was still running when you tried to
re-connect. The DataStore and the BundleDbPersistenceManager don't use
the repository lock. Could please make sure the repository is really
stopped before starting it again (using the Task Manager in Windows,
or ps -ef | grep java if not).

By the way, the database URL is a bit strange. I don't think if this
is the problem, but instead of
jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;
try
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDB;SelectMethod=Cursor

Regards,
Thomas

Re: Running Repository completely off of a RDBMS

Posted by Sonu Vijay <so...@yahoo.com>.
Stefan and Thomas,

Thanks a lot for your help.

Using a DataStore with a BundleDbPersistenceManager
has been consistently giving me that repository
locking error. As I mentioned in my last email, I'm
using Drools which internally uses JackRabbit. So I
found out that Drools is using JackRabbit 1.3 and
JackRabbit wiki mentions that to use DataStore you
must use 1.4. 

So I tried to use just the BundleDbPersistencManager (
without the DataStore ), cause the wiki FAQ indicates
that BundleManager might still be faster than
SimpleDbPersistenceManager. But the locking issue
still occurs.

Anyways, since I'm still using 1.3, I'm gonna stick to
SimpleDbPersistenceManager.

About the stuff that was being stored in my local file
system, I found that those indexes  are created if
they don't exist, when the repository starts. So
that'll work fine for me, I won't have to copy those
indexes  over from one environment to another.

Thanks again for your help.
Sonu


--- Stefan Guggisberg <st...@day.com>
wrote:

> hi sonu
> 
> you have to specify the "configRootPath" attribute
> of the
> <wokspaces/> element. you can find more information
> here:
> http://markmail.org/message/kewjulasgtys3uzo
> 
> cheers
> stefan
> 
> 
> On Wed, May 14, 2008 at 2:28 AM, Sonu Vijay
> <so...@yahoo.com> wrote:
> > Hi Everybody,
> >
> >  I'm a newbie and I came to Jackrabbit via JBoss
> Rules.
> >
> >  I need to run my repository completely off of a
> RDBMS.
> >  I can't have anything stored on the local file
> >  system.I'm able to make this work partially but
> still
> >  some stuff is being stored in local file system.
> If I
> >  delete the local repository folder, my
> application
> >  stops working.
> >
> >  I'm trying to understand the Jackrabbit
> configuration
> >  properties and would appreciate some help. I'm
> >  including my repository.xml below. I have
> following
> >  questions.
> >
> >  1. What configurations in my repository.xml are
> still
> >  keeping stuff on my local file system.
> >
> >  2. When I try to use a DataStore with a
> >  BundleDbPersistenceManager instead of just using
> >  SimpleDbPersistenceManager, I get an error which
> says
> >  that the repository has been locked by another
> >  application. I'm running against MS SQL Server.
> Has
> >  anybody faced this issue ? This issue doesn't
> happen
> >  with SimpleDBPersistanceManager.
> >
> >
> >  Thanks in advance for your help.
> >
> >  Sonu
> >
> >  ----------Repository.xml---------------
> >  <Repository>
> >     <Security appName="Jackrabbit">
> >
> >         <AccessManager
> > 
>
class="org.apache.jackrabbit.core.security.SimpleAccessManager">
> >
> >         </AccessManager>
> >
> >         <LoginModule
> > 
>
class="org.apache.jackrabbit.core.security.SimpleLoginModule">
> >
> >            <param name="anonymousId"
> >  value="anonymous"/>
> >
> >         </LoginModule>
> >     </Security>
> >     <Workspaces rootPath="${rep.home}/workspaces"
> >  defaultWorkspace="MyRepo"/>
> >     <Workspace name="MyRepo">
> >
> >         <FileSystem
> > 
>
class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >                        <param name="driver"
> > 
>
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
> >                                <param name="url"
> > 
>
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
> >                                <param
> name="schema" value="mssql"/>
> >                                <param name="user"
> value="duser"/>
> >                                <param
> name="password"
> >  value="dsadmin"/>
> >                        <param
> name="schemaObjectPrefix"
> >  value="${wsp.name}_FS_"/>
> >            </FileSystem>
> >
> >
> >          <PersistenceManager
> > 
>
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager">
> >                <param name="driver"
> > 
>
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
> >                <param name="url"
> > 
>
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
> >                <param name="schema"
> value="mssql"/>
> >                <param name="user" value="dadmin"/>
> >                <param name="password"
> value="dadmin"/>
> >                <param name="schemaObjectPrefix"
> >  value="${wsp.name}_"/>
> >                <param name="externalBLOBs"
> value="false"/>
> >            </PersistenceManager>
> >
> >
> >
> >
> >         <SearchIndex
> > 
>
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
> >             <param name="path"
> >  value="${wsp.home}/index"/>
> >         </SearchIndex>
> >     </Workspace>
> >
> >
> >     <Versioning rootPath="${rep.home}/version">
> >
> >
> >         <FileSystem
> > 
>
class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
> >                        <param name="driver"
> > 
>
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
> >                                <param name="url"
> > 
>
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
> >                                <param
> name="schema" value="mssql"/>
> >                                <param name="user"
> value="dadmin"/>
> >                                <param
> name="password"
> >  value="dadmin"/>
> >                        <param
> name="schemaObjectPrefix"
> >  value="version_FS_"/>
> >            </FileSystem>
> >
> >         <PersistenceManager
> > 
>
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager">
> >                        <param name="driver"
> > 
>
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
> >                        <param name="url"
> > 
>
value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
> >                        <param name="schema"
> value="mssql"/>
> >                        <param name="user"
> value="dadmin"/>
> >                        <param name="password"
> value="dadmin"/>
> >                        <param
> name="schemaObjectPrefix"
> >  value="version_"/>
> >                        <param name="externalBLOBs"
> value="false"/>
> >            </PersistenceManager>
> >
> >
> >     </Versioning>
> >
> >
> >     <SearchIndex
> > 
>
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
> >         <param name="path"
> >  value="${rep.home}/repository/index"/>
> >     </SearchIndex>
> >  </Repository>
> >
> >
> >
> >
> >
> 



      

Re: Running Repository completely off of a RDBMS

Posted by Stefan Guggisberg <st...@day.com>.
hi sonu

you have to specify the "configRootPath" attribute of the
<wokspaces/> element. you can find more information here:
http://markmail.org/message/kewjulasgtys3uzo

cheers
stefan


On Wed, May 14, 2008 at 2:28 AM, Sonu Vijay <so...@yahoo.com> wrote:
> Hi Everybody,
>
>  I'm a newbie and I came to Jackrabbit via JBoss Rules.
>
>  I need to run my repository completely off of a RDBMS.
>  I can't have anything stored on the local file
>  system.I'm able to make this work partially but still
>  some stuff is being stored in local file system. If I
>  delete the local repository folder, my application
>  stops working.
>
>  I'm trying to understand the Jackrabbit configuration
>  properties and would appreciate some help. I'm
>  including my repository.xml below. I have following
>  questions.
>
>  1. What configurations in my repository.xml are still
>  keeping stuff on my local file system.
>
>  2. When I try to use a DataStore with a
>  BundleDbPersistenceManager instead of just using
>  SimpleDbPersistenceManager, I get an error which says
>  that the repository has been locked by another
>  application. I'm running against MS SQL Server. Has
>  anybody faced this issue ? This issue doesn't happen
>  with SimpleDBPersistanceManager.
>
>
>  Thanks in advance for your help.
>
>  Sonu
>
>  ----------Repository.xml---------------
>  <Repository>
>     <Security appName="Jackrabbit">
>
>         <AccessManager
>  class="org.apache.jackrabbit.core.security.SimpleAccessManager">
>
>         </AccessManager>
>
>         <LoginModule
>  class="org.apache.jackrabbit.core.security.SimpleLoginModule">
>
>            <param name="anonymousId"
>  value="anonymous"/>
>
>         </LoginModule>
>     </Security>
>     <Workspaces rootPath="${rep.home}/workspaces"
>  defaultWorkspace="MyRepo"/>
>     <Workspace name="MyRepo">
>
>         <FileSystem
>  class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
>                        <param name="driver"
>  value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
>                                <param name="url"
>  value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
>                                <param name="schema" value="mssql"/>
>                                <param name="user" value="duser"/>
>                                <param name="password"
>  value="dsadmin"/>
>                        <param name="schemaObjectPrefix"
>  value="${wsp.name}_FS_"/>
>            </FileSystem>
>
>
>          <PersistenceManager
>  class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager">
>                <param name="driver"
>  value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
>                <param name="url"
>  value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
>                <param name="schema" value="mssql"/>
>                <param name="user" value="dadmin"/>
>                <param name="password" value="dadmin"/>
>                <param name="schemaObjectPrefix"
>  value="${wsp.name}_"/>
>                <param name="externalBLOBs" value="false"/>
>            </PersistenceManager>
>
>
>
>
>         <SearchIndex
>  class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
>             <param name="path"
>  value="${wsp.home}/index"/>
>         </SearchIndex>
>     </Workspace>
>
>
>     <Versioning rootPath="${rep.home}/version">
>
>
>         <FileSystem
>  class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
>                        <param name="driver"
>  value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
>                                <param name="url"
>  value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
>                                <param name="schema" value="mssql"/>
>                                <param name="user" value="dadmin"/>
>                                <param name="password"
>  value="dadmin"/>
>                        <param name="schemaObjectPrefix"
>  value="version_FS_"/>
>            </FileSystem>
>
>         <PersistenceManager
>  class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager">
>                        <param name="driver"
>  value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
>                        <param name="url"
>  value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=MyDB;SelectMethod=Cursor;"/>
>                        <param name="schema" value="mssql"/>
>                        <param name="user" value="dadmin"/>
>                        <param name="password" value="dadmin"/>
>                        <param name="schemaObjectPrefix"
>  value="version_"/>
>                        <param name="externalBLOBs" value="false"/>
>            </PersistenceManager>
>
>
>     </Versioning>
>
>
>     <SearchIndex
>  class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
>         <param name="path"
>  value="${rep.home}/repository/index"/>
>     </SearchIndex>
>  </Repository>
>
>
>
>
>