jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Moseley <...@osafoundation.org>
Subject problem with non-synchronized repository instances
Date Fri, 25 Mar 2005 02:40:24 GMT
i'm having a synchronizing problem accessing my repository filesystem 
through sessions from two separate repository instances. i'll try to 
explain in as much detail as i can in hopes that somebody can offer insight.

i'm running two webapps within a tomcat 5.0.28 server on os x 10.3.8:

   1) a webdav webapp that uses a custom version of jcr-server's 
WebdavServlet which obviously uses jackrabbit underneath it, and

   2) a web ui for managing users (persisting them via Hibernate) and 
their webdav home directories within the same jackrabbit repository

for the repository config, i'm using the repository.xml that comes with 
jackrabbit (maybe from the first-steps example?), with LocalFilesystem 
insteaad of CQFileSystem and XMLPersistenceManager rather than 
ObjectPersistenceManager.

in each webapp, i use a Spring factory bean to instantiate 
RepositoryImpl. the instances are configured identically (same config 
file path, same repository home dir).

to login to each repository instance, i pass an instance of 
SimpleCredentials with username and password that have already been 
authenticated by Acegi Security. both webapps use the same security 
infrastructure, and i log in with the same username to both webapps.

now, the problem:

   1) i establish a repository session in the webui webapp and create a 
node of type "nt:folder" at /test (representing user the homedir of a 
user named test)

   2) i then make a GET request with my browser to the webdav app to 
view the root of the repository, and the only child node i see in the 
listing is jcr:system.

however, when i look in the repository filesystem, i can see that 
several directories and files have been created inside the data dir, 
signifying to me that the node was actually created in the filesystem.

so it seems like session #2 from repository instance #2 (the one in the 
webdav server) is not noticing the change in the filesystem saved by 
session #1 from repository instance #1 (the one in the webui webapp).

how can this be explained? is this not an envisioned way of using 
jackrabbit? doesn't that architecture graphic on the jackrabbit site 
specifically indicate that multiple webapps should be able to access the 
same repository?

what's truly bizarre is that this setup actually does work on my almost 
identical os x machine at home. after creating the node in the webui 
webapp, i can see it in the webdav webapp. it just doesn't work on my 
office machine.

this leads me to believe that there's some environmental difference 
that's causing this behavior, but i can't track the difference down. i'm 
rebuilding jackrabbit fresh every morning and using the exact same jars 
for all dependencies on each machine. so i'm totally stuck on how to 
troubleshoot the problem.

any advice or pointers you all can give me is much appreciated. thanks!

Mime
View raw message