[Xapian-discuss] Closing a DB

Benny Chan misterchan at gmail.com
Thu Aug 9 03:10:37 BST 2007


I was actually having this similar issue today as well (but using PHP).
Inside a loop, I open certain databases based on a variable, which could
have a re-occuring value. On those occasions that the value re-occurs, it
tries to create a new XapianWriteableDatabase object with that value again
but fails and throws an exception saying there is already a lock on that
database. I was thinking that I needed a way to close the database before
the last lines of the loop.

Anyone know the proper way to close a database?

Benny

On 8/8/07, David Morris <dmorris at sirca.org.au> wrote:
>
> Hi,
>
> As part of my whole indexing thing, I want to move the databases
> around, from within the code. So, I figured that the safest bet
> would be to close the DB before attempting to move it.
>
> But there's no Xapian::Database::close() or even
> Xapian::WritableDatabase::close().
>
> I have a global variable that holds the database, and I open it
> in the main():
>
> // globals
> Xapian::WritableDatabase g_Xap;
>
> int main( int argc, char ** argv )
> {
>     g_Xap = Xapian::WritableDatabase( ... );
> }
>
> So, I was thinking, in order to close it successfully, i
> could do this:
>
> g_Xap = Xapian::WritableDatabase();
>
> But that doesn't force a close, it just does the whole refcount
> thing, which could potentially leave it open if someone still
> has it laying around.
>
> Why is there no close() method? What's the "official" way to
> close a DB?
>
> Cheers.
>
>
> _______________________________________________
> Xapian-discuss mailing list
> Xapian-discuss at lists.xapian.org
> http://lists.xapian.org/mailman/listinfo/xapian-discuss
>


More information about the Xapian-discuss mailing list