Re: [sqlite] org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
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
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
Re: [sqlite] org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
Hi, 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? Thanks, Jay On Wed, Dec 7, 2016 at 11:02 AM, R Smith <rsm...@rsweb.co.za> wrote: > Yes, multiple access is a feature, a basic necessity even. > > The answer is here: > http://www.sqlite.org/pragma.html#pragma_busy_timeout > > Explanation: > https://www.sqlite.org/c3ref/busy_timeout.html > > and > http://www.sqlite.org/tclsqlite.html > see the section: The "timeout" method > > > > On 2016/12/07 8:54 PM, Jay Weinstein wrote: > >> Hi, >> >> I’m running two programs, one written in java and one written in C, which >> are both trying to access a sqlite database. I'm getting the error >> org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked >> (database is locked) when I run both as separate processes and when the >> java app launches the c program with ProcessBuilder. Is there away for >> two process to read and write a sqlite database? >> >> Thanks, >> Jay >> >> >> ___ >> 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
Re: [sqlite] org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
Thanks for the info! On Wed, Dec 7, 2016 at 11:02 AM, R Smith <rsm...@rsweb.co.za> wrote: > Yes, multiple access is a feature, a basic necessity even. > > The answer is here: > http://www.sqlite.org/pragma.html#pragma_busy_timeout > > Explanation: > https://www.sqlite.org/c3ref/busy_timeout.html > > and > http://www.sqlite.org/tclsqlite.html > see the section: The "timeout" method > > > > On 2016/12/07 8:54 PM, Jay Weinstein wrote: > >> Hi, >> >> I’m running two programs, one written in java and one written in C, which >> are both trying to access a sqlite database. I'm getting the error >> org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked >> (database is locked) when I run both as separate processes and when the >> java app launches the c program with ProcessBuilder. Is there away for >> two process to read and write a sqlite database? >> >> Thanks, >> Jay >> >> >> ___ >> 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] org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
Hi, I’m running two programs, one written in java and one written in C, which are both trying to access a sqlite database. I'm getting the error org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked) when I run both as separate processes and when the java app launches the c program with ProcessBuilder. Is there away for two process to read and write a sqlite database? Thanks, Jay ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users