Re: [bdbxml] disappearing default index

John Snelson <[email protected]> Mon, 26 Sep 2005 15:26:12 +0100
Newsgroups gmane.comp.db.dbxml.general
Message-ID <[email protected]>
Does the file cause a crash if it is loaded using the DB XML shell 
(called "dbxml")? If not, then it is something you are doing wrong in 
your program. If it does, can you please send me the file that causes 
the crash, so that I can attempt to reproduce your error.

John

Vries, Willem de (ELS) wrote:
> John,
> Looks like the indexer crashes on xml files with a complex xml structure
> (lot of different tagging). They are valid and well-formed and appr. 100 Kb.
> in size.
> Large files (5-9 Mb) with a lot of same-name tagging seem to go OK.
> Any suggestions how to get more log info on the problem? 
> 
> 
> You have an error in your database - usually due to a crashed 
> application, or not deleting DB XML objects correctly. You can either 
> recreate your database, or if you need to recover the data from it, 
> follow the instructions on this page:
> 
> http://www.sleepycat.com/docs/ref/transapp/recovery.html
> 
> John
> 
> Vries, Willem de (ELS) wrote:
> 
>>Thanks John,
>>I tried both your examples, but they generate the following error:
>>First a lot of these lines: 
>>"Indexer    - test0 - add edge-element-substring-string, key={Size=c
>>Hex=8b61000000090000006d6531}, data={Size=2 Hex=0008}"
>>
>>and finally (error):
>>"Container  - test0 - container closed.
>>Error: DbTxn::abort: DB_RUNRECOVERY: Fatal error, run database recovery in
>>setDefaultIndex.pl, line 9"
>>
>>BTW: there is no difference whether I do use "$containerTxn->commit();" or
>>not use it.
>>
>>------------------script
>>use strict;
>>use warnings;
>>use Sleepycat::DbXml;
>>use IO::File ;
>>    eval {
>>my $env = new DbEnv(0);
>>$env->set_cachesize(0, 64 * 1024, 1);
>>$env->open("/usr/local/dbxml-2.1.8/data",
>> 
>>
> 
> Db::DB_INIT_MPOOL|Db::DB_CREATE|Db::DB_INIT_LOCK|Db::DB_INIT_LOG|Db::DB_INIT
> 
>>_TXN);
>>my $mgr = new XmlManager($env);
>>DbXml::setLogLevel(DbXml::LEVEL_ALL, 1);
>>DbXml::setLogCategory(DbXml::CATEGORY_ALL, 1);
>>my $containerTxn = $mgr->createTransaction();
>>my $container = $mgr->openContainer($containerTxn,"test0");
>>my $ix = $container->getIndexSpecification($containerTxn);
>>$ix->addDefaultIndex("edge-element-substring-string");
>>my $uc = $mgr->createUpdateContext();
>>$container->setIndexSpecification($containerTxn, $ix,$uc);
>>$containerTxn->commit();
>>} ;
>>    if (my $e = catch std::exception)
>>    {
>>        warn $e->what() . "\n";
>>        exit( -1 );
>>    }
>>    elsif ($@)
>>    {
>>        warn $@;
>>        exit( -1 );
>>    }
>>    exit 0 ;
>>/---------------------script
>>
>>
>>With kind regards, 
>>
>>W(im) S. de Vries LL M
>>Information Structure Technologist
>>Electronic Production Department
>>Elsevier Science NL
>>tel. (+31) 20 4852733
>>fax  (+31) 20 4852812
>>
>>Radarweg 29
>>1043 NX Amsterdam
>>The Netherlands 
>>
>>
>>
>>-----Original Message-----
>>From: John Snelson [mailto:[email protected]]
>>Sent: 26 September 2005 12:13
>>To: Vries, Willem de (ELS)
>>Cc: '[email protected]'
>>Subject: Re: [bdbxml] disappearing default index
>>
>>
>>Vries, Willem de (ELS) wrote:
>>
>>
>>>my $ix = $container->getIndexSpecification($containerTxn);
>>>$ix->addDefaultIndex("edge-element-substring-string");
>>>my $uc = $mgr->createUpdateContext();
>>>$container->addDefaultIndex($containerTxn, $ix,$uc);
>>
>>
>>This is your problem. You either need to use 
>>XmlContainer::setIndexSpecification() or XmlContainer::addDefaultIndex() 
>>- not both! Try this:
>>
>>my $ix = $container->getIndexSpecification($containerTxn);
>>$ix->addDefaultIndex("edge-element-substring-string");
>>my $uc = $mgr->createUpdateContext();
>>$container->setIndexSpecification($containerTxn, $ix,$uc);
>>
>>or this:
>>
>>my $uc = $mgr->createUpdateContext();
>>$container->addDefaultIndex($containerTxn, 
>>"edge-element-substring-string", $uc);
>>
>>John
>>
> 
> 
> 


-- 
John Snelson, Berkeley DB XML Engineer
Sleepycat Software, Inc
http://www.sleepycat.com

Contracted to Sleepycat through Parthenon Computing Ltd
http://blog.parthcomp.com/dbxml


------------------------------------------
To remove yourself from this list, send an
email to [email protected]