[Xapian-discuss] xapian-tcpsrv php in real fastcgi loop

Martin Regner martin.regner at larkos.de
Fri Mar 19 18:25:35 GMT 2010


Hello,

i'm fresh new to xapian (and impressed.. fast, faster, xapian). And so i have 
a problem with no solution at the moment.

I have a webapp based on php5 in a special fastcgi loop environment (thus 
there are some loops spawned handling multiple requests so there is no need 
for php to recreate classes and Objects all the time).

I implemented a xapian wrapper class to access a remote database provided by 
xapian-tcpsrv using this command:

xapian-tcpsrv --port 5050 --writable /var/lib/xapian/objects/

I indexed all ths stuff we need and tested the search. Fast and furious, but i 
randomly get:

REMOTE:Unable to acquire database write lock on /var/lib/xapian/objects/: 
already locked

First, this is a connection tried to open with Xapian::remote_open. So i think 
it should'nt create a write lock. Otherwise, i started xapian-tcpsrv with --
writable, do i have to start to instances on the same directory, one writable 
and one not?

Second, if i understand the examples right i have to unset the database object 
to get the lock released. But i don't want to close the connection. I Just 
want to release the lock if possible. Is there any convenient way to let any 
lock go if everything is done in a process?

Third, if there is a lock why is there a exception thrown? Wouldn't it be 
better to wait for the lock a well defined time similar to database locks for 
example?

I think i do something (or some things) wrong here, but i don't know what it 
is.

Any help greatly appreciated

Greetings so far
DonMartio




More information about the Xapian-discuss mailing list