[odb-users] Re: bug in Android
Lidia Kalinovsky
lidia at lemur-soft.com
Wed Nov 6 01:23:08 EST 2013
Hello Boris,
Do you have some update for this issue ?
Thanks in advance
Lidia.
On Mon, Nov 4, 2013 at 11:07 AM, Lidia Kalinovsky <lidia at lemur-soft.com>wrote:
> Hello
>
> I suspect there is some bug that happens on Android ( ok in Windows).
> I got exception
>
> 14: unable to open database file
>
> if 2 updates are called sequentially in one transaction.
> ( problem is in journal file locking, i guess...)
>
> Could you advice, please ?
> ( erase/persist does work, but it is not option for us, unfortunately :( ).
> Also, I believe, opening/commit transaction is slower than doing
> everything in one transaction.
> Please fix me if I am wrong.
>
> Thanks.
> Lidia.
>
> Code fragment is following:
>
> LOG("SyncManager::FullSync()->","test");
> std::shared_ptr<odb::database> testDB =
> DBHelper::CreateDatabase(fullDatabasePath+"_1.sqlite",true);
> std::shared_ptr<Agent> a(new Agent());
> std::shared_ptr<Agent> b(new Agent());
> a->setWrntyID(25);
> b->setWrntyID(20);
> LOG("SyncManager::FullSync()->","before 2 persist in one transaction");
> odb::transaction testTrans (testDB->begin());
> testDB->persist(a);
> testDB->persist(b);
> testTrans.commit();
> LOG("SyncManager::FullSync()->","after 2 persist in one transaction");
> a->setAccountStatus(1);
> b->setAccountStatus(1);
>
> odb::transaction testTrans1 (testDB->begin());
> LOG("SyncManager::FullSync()->","before 1 updates in one transaction");
> testDB->update(a);
> testTrans1.commit();
>
> odb::transaction testTrans2 (testDB->begin());
> LOG("SyncManager::FullSync()->","before 1 updates in one transaction");
> testDB->update(b);
> testTrans2.commit();
> LOG("SyncManager::FullSync()->","before 2 updates in one transaction");
> try
> {
> odb::transaction testTrans1 (testDB->begin());
> a->setAccountStatus(2);
> b->setAccountStatus(2);
> testDB->update(a);
> testDB->update(b);
> testTrans1.commit();
> }
> catch(odb::exception& e)
> {
> LOG("SyncManager::FullSync()->","exception from 2 updates in one
> transaction");
> }
>
>
> --
> Software integration and outsourcing services,
> Lemur-Soft, Giv'at Nili
> Israel, 37825
> Phone : (+972) 545748325
> Fax : (+972) 775345383
> Email : lidia at lemur-soft.com
> Web: www.lemur-soft.com
>
--
Software integration and outsourcing services,
Lemur-Soft, Giv'at Nili
Israel, 37825
Phone : (+972) 545748325
Fax : (+972) 775345383
Email : lidia at lemur-soft.com
Web: www.lemur-soft.com
More information about the odb-users
mailing list