[Mono-list] Mono.Data.SqliteClient.SqliteSyntaxException: database is locked

Manish Rai Jain manishrjain at gmail.com
Tue Jun 19 16:17:59 EDT 2007

Thanks a lot Kamil. The timeout trick worked :-). I guess I can keep my old
sqlite, its working great now.


On 6/20/07, Kamil Skalski <kamil.skalski at gmail.com> wrote:
> > I had opened up a single connection, and was doing updates/selects
> through
> > that. I ended up with "library sequence out of error" exceptions. So, I
> I do this by caching one connection per thread.
> > modified the code such that each query will open up new connection, and
> then
> > run itself. So, "library sequence" exceptions went away, but got
> overtaken
> > by "database locked" ones. So, to do synchronization at the application
> Try specifying the Timeout for the connection. I set it to 30seconds,
> which is enough for my application. I don't know any other solution
> for this issue - probably the best would be to set timeout to
> infinite, which I will do by increasing the actual value when needed
> ;)
> def conn = SqliteConnection
> ($"URI=file://$path,Version=3,busy_timeout=30000");
> (this works with the old provider)
> > level, I've set the C# locking mechanism to such that
> > 1. each table only runs one query at a time, and
> > 2. only one write query is being run at a time.
> >
> > However, all this has done is just to _reduce_ the number of database
> locked
> I think you cannot even do concurrent reads or maybe there is some
> place you missed in locking, I'm not sure.
> > exceptions. I'm still getting them. Is there a way by which they can be
> > eliminated? Mono database page shows that we can use the new library
> > System.Data.Sqlite, which is version 3 and apparently doesn't have these
> > synchronization issues. However, I've been unable to find the .dll for
> > linux. Any help is appreciated.
> >
> I think I found them at
> http://www.go-mono.com/download-stable/sles-9-i586/  or maybe I just
> compiled them from source... it's quite easy.
> However I experienced a strange (dead) locking issues using the new
> provider, which the same code works fine with old provider. I still
> don't have time to investigate, but it would be great if somebody else
> having concurrent app with sqlite tested it with new provider :D
> --
> Kamil Skalski
> http://nazgul.omega.pl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20070620/a8c62dde/attachment.html 

More information about the Mono-list mailing list