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