That would be my estimation.

Of course, you could also try setting the busy timeout using the pragma:

https://www.sqlite.org/pragma.html#pragma_busy_timeout

as soon as you open the connection.

On Friday, 9 December, 2016 15:17 Jay Weinstein <jpwe...@gmail.com> said:

> Hi Keith,
> 
> Made sure the timeouts are set to 1000 ms for both C and java
> implementations.  Same error.   So, you are suggesting this is an issue
> with the guys who wrote the driver for sqlite?   Not sure who these guys
> are.
> 
> On Fri, Dec 9, 2016 at 11:22 AM, Keith Medcalf <kmedc...@dessus.com>
> wrote:
> 
> >
> > Sounds like a java problem with the java interface, not an SQLite
> > problem.  Two observations however:
> >
> > 1)  With the C API you set the busy timeout to 1000 ms but with the java
> > api you set it to 100 ms
> > 2)  With the C API you set the busy timeout to the integer 1000 yet in
> the
> > java api you set it to the string "100"
> >
> > In any case, the problem is in the Java API.  You have demonstrated that
> > the problem is not caused by SQLite itself ...
> >
> > Perhaps a chat with the Java wrapper developers is in order.
> >
> >
> > > -----Original Message-----
> > > From: sqlite-users [mailto:sqlite-users-
> boun...@mailinglists.sqlite.org]
> > > On Behalf Of Jay Weinstein
> > > Sent: Friday, 9 December, 2016 11:50
> > > To: SQLite mailing list
> > > Subject: Re: [sqlite] org.sqlite.SQLiteException: [SQLITE_BUSY] The
> > > database file is locked (database is locked)
> > >
> > > When I run the two C programs using
> > >
> > >       rc = sqlite3_busy_timeout(db, 1000);
> > >       if ( rc != SQLITE_OK ) {
> > >                 fprintf(stderr, "SQL error: sqlite3_busy_timeout
> > > failed.\n");
> > >                 exit(0);
> > >       }
> > >
> > > everything works perfectly.  No sqlite busy erros or table locked.
> > >
> > > But, when I to do this using a java app using the following the code
> > > doesn't work.  Basically, config.setBusyTimeout() doesn't seem to be
> > > working as I anticipated --  see below.   Can you advise?
> > >
> > > Thanks, Jay
> > >
> > > Class.forName("org.sqlite.JDBC");
> > > String s = "jdbc:sqlite:"+db;
> > >
> > > config = new SQLiteConfig();
> > > config.setBusyTimeout("100");
> > > conn = DriverManager.getConnection(s, config.toProperties());
> > > conn.setAutoCommit(false);
> > > stmt = conn.createStatement();
> > >
> > > On Wed, Dec 7, 2016 at 4:17 PM, Simon Slavin <slav...@bigfraud.org>
> > wrote:
> > >
> > > >
> > > > On 7 Dec 2016, at 11:28pm, Jay Weinstein <jpwe...@gmail.com> wrote:
> > > >
> > > > > Is it correct to say busy timeout will work for two separate
> > processes
> > > > and
> > > > > I don't have use fork in C/C++ or ProcessBuilder in java to
> execute
> > > one
> > > > as
> > > > > a child and a parent?
> > > >
> > > > The timeout setting is attached to the database connection.  If you
> > > > execute _open() twice you need to set it once for each connection.
> > > >
> > > > Simon.
> > > > _______________________________________________
> > > > sqlite-users mailing list
> > > > sqlite-users@mailinglists.sqlite.org
> > > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> > > >
> > > _______________________________________________
> > > sqlite-users mailing list
> > > sqlite-users@mailinglists.sqlite.org
> > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
> >
> >
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@mailinglists.sqlite.org
> > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to